Creating Symbolic Lynks


After an upgrade I was unable to run some KDE appz, the error message that I recieved was "Can't find libkdefakes.so.0 ". After checking the /usr/lib directory, I found that the upgrade had replaced libkdefakes.so.0 with libkdefakes.so.3.0.0.

The solution was to create a symbolic link to the new libkdefakes.so.3.0.0 file, and name that symbolic link the same as the old file (libkdefakes.so.0). This way when the application looks for the needed libkdefakes.so.0 it will find the link to the new libkdefakes.so.3.0.0 and will then run as usuall, hopefully.

In the above example you would (as root), open a console and type:

cd /usr/lib
ln -s libkdefakes.so.3.0.0 libkdefakes.so.0

Hit enter and you should be able to run those appz now.


The ln-s is the link command and the format should be like this:

ln-s [name of current file] [name of old file]



Soft links vs Hard links:

Unix/Linux files consist of two parts: the data part and the filename part

The data part is associated with something called an 'inode'. The inode carries the map of where the data is, and the permissions, etc for the data.

The filename part carries a name and an associated inode number.

More than one filename can reference the same inode number; these files are said to be 'hard linked' together.

With hard links you can remove the original file you hard-link to and still have the data, whereas with softlinks, if you remove the original file, you are removing the data and the softlink which remains, points to nothing.

Hard links must be on the same partition whereas soft links can span across partitions and networks for that matter.