PDA

View Full Version : symlinks in Linux



mikebartnz
04-08-2004, 12:19 AM
Hi there all.
Say you require a library file libguile.so.6 and you have libguile.so.12. Assuming liguile.so.12 is a later file can you simlink to it.

Chilling_Silence
04-08-2004, 12:44 AM
I dont see why not - you can always rm the symlink later.
Use:
ln -s libguile.so.12 libguile.so.6

Let us know how you get on


Chill.

Graham L
04-08-2004, 01:32 PM
It is a Bad Idea to mess with the library system. It is very carefully arranged and maintained so that things work. Usually. :D

If you have a look at /lib (ln -s /lib) you will see that all the libraries are called by symbolic links. This is so executables (and the linker) can refer to a known constant "name" which will be changed to point to the actual, current, version of the library. The links are set up when you install a package containing a new version of a library.

"man ldconfig" will tell you about some of this ...

How did you get libguile.so.12? Was it installed with the system? I suspect so, because you don't give any versioning with the name (like, e.g, random, "libguile.so.12-2.5-6"). I suspect that
ls -l libguile* will show libguile.so.12 as a symbolic link.

It's unusual for missing libraries to cause a request for an earlier version of library ... usually the requirement is for, e.g, "libguile.so.6 or later".

mikebartnz
04-08-2004, 11:45 PM
Hi there Chill. It was the rpm db I needed to confuse anyway. Problem will be solved shortly because a local Linux guru is downloading Fedora 2 and I'm going to get a copy from him. Frdora 2 has the latest GNUCash so it will save a lot of mucking around. GNUCash is quite a good double entry open source accounting program. I wish when a program has dependencies they would provide them on their site so you didn't have to travel all over the net to get them.

Chilling_Silence
04-08-2004, 11:56 PM
That's why Fedora / Redhat have "up2date" ;-)

mikebartnz
05-08-2004, 12:11 AM
Hi there Graham. Lesson learnt. :D
It's interesting running ls -l libguile.so.* shows libguile.so.12 not installed but pointing to libguile.so.12.3.0. I would assume libguile.so.12.3.0 was part of the Fedora 1 install. I have installed qtparted, firefox, mozilla,kylix and they all installed beautifully especially kylix which is to be expected of Borland. This has been my first taste of dependency hell which is a similar beast to dll hell. ?:|

mikebartnz
05-08-2004, 12:18 AM
Tried up2date and can't remember if it was a slow night on the net or there was confusion over what version was installed. I originaly installed ver 1.8.4 and tried to install 1.8.7 but had trouble and the program kept showing as 1.8.7 and I could not do an uninstall.

Chilling_Silence
05-08-2004, 12:26 AM
Okay.
Ive not run up2date myself, I just heard it was redhat's tool for keeping systems "up2date" (Hence the name).

I guess Im lucky - I dont get dependancy hell with gentoo :D

Let us know how you get on with FC2


Chill.

Jen C
05-08-2004, 07:27 AM
Red Hat / Fedora's up2date program is for updating any programs that you have currently installed that are part of the up2date's rpm database (the officially included packages of FC only). It will sort out the dependencies and update them as well. When you get your Fedora Core 2 installed, have a look at yum as well. You can also search for programs which are not part of the official FC package and it will install them (plus any required dependencies) automatically. Yum is a command line program, but they have recently developed a GUI for it called gyum which is really nice and makes searching for what is available much easier. With yum/gyum you can update, install or remove packages.

FedoraNEWS (http://fedoranews.org/) - how-to articles on yum and gyum (plus many more!)

mikebartnz
05-08-2004, 02:36 PM
Had a go with yum but it was short on something so would not run. Didn't have time to investigate more. Will have a look at gyum thank JenC. Things are coming together better with each release so was going to get Fedora 2 anyway but this has forced the issue.