On Thu, 18 May 2006 23:03:11 -0700 (PDT) Tamkang <power_station_2...@yahoo.com> wrote:
> 1. why in /usr/lib/sane has 2 files (ie: libsane-sm3600.so.1 , > libsane-sm3600.so.1.0.17) as i know that libsane-sm3600.so.1 is > symbolic link to libsane-sm3600.so.1.0.17, but why > in /usr/local/lib/sane has 4 files (ie: libsane-sm3600.la , > libsane-sm3600.so , libsane-sm3600.so.1 , > libsane-sm3600.so.1.0.17) ? why not only one file > libsane-sm3600.so.1.0.17 files to let xsane to link to this > driver ? The .so files are shared object libraries (DLLs). The symbolic links are to eliminate "DLL Hell". Programs should link to the .so which is linked to .so.1 etc. This means you can upgrade to a newer library and your program will automatically use it without having to be changed. It also allows different versions of a library to coexist for the cases where different programs need specific library versions. > the questions is why the > source not default to /usr/lib/sane directory? Is there any > different between /usr/local/lib/sane and /usr/lib/sane directory ? Packages provided by the distro get installed in /usr as they are considered a part of the system. Programs you build yourself default to /usr/local as they are not part of the system and if they were installed in /usr it might mess up the package system. With SANE you should remove your distro's package before installing from source as the versions can interfere with each other. Alternatively, if you are confident it won't break anything, you can specify --prefix=/usr to configure and SANE will be installed in /usr. Martin