Wednesday, September 17, 2014

How to install teamviewer 9 on ubuntu 14.04

Below are the steps:

  1. Download the installer (please download the 32 bit / 64 bit multiarch version):
    $ wget http://www.teamviewer.com/download/teamviewer_linux.deb
  2. Add i386 architecture, if you are on 64 bit ubuntu:
    $ sudo dpkg --add-architecture i386; sudo apt-get update
  3. Install teamviewer, but it will failed, because of unmet dependencies:
    $ sudo dpkg -i teamviewer_linux.deb

    Reading package lists... Done
    ...
    The following packages have unmet dependencies:
     libc6 : Breaks: libc6:i386 (!= 2.19-0ubuntu6) but 2.19-0ubuntu6.3 is to be installed
     libc6:i386 : Breaks: libc6 (!= 2.19-0ubuntu6.3) but 2.19-0ubuntu6 is to be installed
     libc6-dbg : Depends: libc6 (= 2.19-0ubuntu6.3) but 2.19-0ubuntu6 is to be installed
     libc6-dev : Depends: libc6 (= 2.19-0ubuntu6.3) but 2.19-0ubuntu6 is to be installed
     teamviewer9:i386 : Depends: libasound2:i386 but it is not going to be installed
                        Depends: libfreetype6:i386 but it is not going to be installed
                        Depends: zlib1g:i386 but it is not going to be installed
                        Depends: libsm6:i386 but it is not going to be installed
                        Depends: libxdamage1:i386 but it is not going to be installed
                        Depends: libxext6:i386 but it is not going to be installed
                        Depends: libxfixes3:i386 but it is not going to be installed
                        Depends: libxrandr2:i386 but it is not going to be installed
                        Depends: libxrender1:i386 but it is not going to be installed
                        Depends: libxtst6:i386 but it is not going to be installed
    E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

  4. Run "apt-get install -f" to fix the dependencies:
    $ sudo apt-get install -f
    Reading package lists... Done
    Building dependency tree      
    Reading state information... Done
    Correcting dependencies... Done
    The following extra packages will be installed:
      libasound2:i386 libc6 libfreetype6:i386 libice6:i386 libpng12-0:i386
      libsm6:i386 libuuid1 libuuid1:i386 libx11-6:i386 libxau6:i386 libxcb1:i386
      libxdamage1:i386 libxdmcp6:i386 libxext6:i386 libxfixes3:i386
      libxrandr2:i386 libxrender1:i386 libxtst6:i386 zlib1g:i386
    ... 
    Setting up libc6-dbg:amd64 (2.19-0ubuntu6.3) ... 
    Processing triggers for libc-bin (2.19-0ubuntu6) ...
  5. Install teamviewer:
    $ sudo dpkg -i teamviewer_linux.deb 
    (Reading database ... 170140 files and directories currently installed.)
    Preparing to unpack teamviewer_linux.deb ...
    Unpacking teamviewer9 (9.0.32150) over (9.0.32150) ...
    Setting up teamviewer9 (9.0.32150) ...
  6. Done, now you can find teamviewer in your list of application

Wednesday, August 13, 2014

Checking installed python modules

To check the installed python modules, there are 2 ways:

  1. run help('modules') command in the python shell, as below:
    • $ python
      Python 2.6.6 (r266:84292, Sep 11 2012, 08:28:27)
      [GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2
      Type "help", "copyright", "credits" or "license" for more information.
      >>> help ('modules')
      
      Please wait a moment while I gather a list of all available modules...
      
      BaseHTTPServer      cProfile            imghdr              robotparser
      Bastion             cStringIO           imp                 rpm
      CDROM               cairo               imputil             rpmUtils
  2. and if you need to filter your search, running it directly from linux shell is the best, where you can use grep as below to filter your search, where -c is the flag for running a python command
    • $ python -c "help('modules')" | grep token
      _socket             future_builtins     pipes               token
      _sqlite3            gc                  pkg_resources       tokenize
      

Thursday, July 10, 2014

How to refresh your ldap name database in an ldap client

This is useful when, you have a server that is authenticated by ldap. After you have edited something in your ldap server, let's say you have edited a gid for a user, you would find out that it won't be reflected immediately on the client side. So in this case, how would you force your client to accept your newly changed settings? The answer is you need to restart nscd (name service cache daemon):

$ getent passwd pauld

pauld:x:1987:1987:Paul Daniels:/home/pauld:/bin/bash
So after you have made your changes in the server, let's say you want to change pauld's gid to 4000, run the above command again:

$ getent passwd pauld

pauld:x:1987:1987:Paul Daniels:/home/pauld:/bin/bash

Still the changes are not being reflected there. To solve this, simply restart nscd:

$ sudo /etc/init.d/nscd restart

Stopping nscd:                                             [  OK  ]

Starting nscd:                                             [  OK  ]

You should be seeing your change is now updated in the user database:

$ getent passwd pauld

pauld:x:1987:4000:Paul Daniels:/home/pauld:/bin/bash


PS: If for some reason you are still not seeing the new data, you can invalidate the nscd database by:
$ sudo nscd --invalidate=passwd 

where passwd is the name of the table name in nscd database. You can see all available table name in /var/db/nscd 

To look into what is the content of each table, please use strings command:
$ sudo strings /var/db/nscd/passwd




Tuesday, July 1, 2014

How to install custom upstart script

To install custom upstart script, please follow below steps (in this example, I'll be using a service call cat):

  1. Copy the script into /etc/init 
  2. To make upstart distinguish the new service, run: 
    • $ initctl reload-configuration 
  3. Check whether your script is already in upstart by running:
    • $ initctl list | grep cat 
      cat stop/waiting
  4. And you are done, you can check the status of your service by running:
    • $ service cat status 
      cat stop/waiting
  5. You can also do the same with start, stop and restart
    • $ service cat start
      * Starting cat .... [OK]
    • $ service cat stop
      * Stopping cat .... [OK]
    • $ service cat restart * Restarting cat .... [OK]

Thursday, June 5, 2014

How to check which package a file belongs to in Redhat or Centos

If the package is not installed, run below commands (in this example, i use mkpasswd as an example):
$ yum whatprovides "*/mkpasswd" 
OR
$ repoquery -q --file */mkpasswd


If the package is installed:
$ rpm -qf /usr/bin/mkpaswd