cmded – 提供免费VPN以及免费SSH和免费网站空间多项免费服务
转CHINAZ:国外优秀免费网站空间推荐
日本YCM提供15天免费的独立IP VPS
Xoom.it提供免费的PHP空间

现在的位置: 首页Linux>正文

安装包或者编译时/sbin/ldconfig出错的解决方法
发表于:2010年11月19日  分类:Linux  添加评论  1966 views 
在安装rpm包或者编译时报错
/sbin/ldconfig: /usr/lib/libmcrypt.so.4 is not a symbolic link
解决办法如下:

#ln -sf /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4

Idconfig的用法:

NAME
/sbin/ldconfig – configure dynamic linker run time bindings

SYNOPSIS
/sbin/ldconfig [ -nNvXV ] [ -f conf ] [ -C cache ] [ -r root ] directory …
/sbin/ldconfig -l [ -v ] library …
/sbin/ldconfig -p

DESCRIPTION
ldconfig  creates the necessary links and cache to the most recent shared libraries found in the directo-
ries specified on the command line, in the file /etc/ld.so.conf, and in the trusted directories (/lib and
/usr/lib).   The  cache is used by the run-time linker, ld.so or ld-linux.so.  ldconfig checks the header
and filenames of the libraries it encounters when determining which  versions  should  have  their  links
updated.

ldconfig  will attempt to deduce the type of ELF libs (ie. libc5 or libc6/glibc) based on what C libs, if
any, the library was linked against.  Therefore, when making dynamic libraries, it is wise to  explicitly
link against libc (use -lc).

Some existing libs do not contain enough information to allow the deduction of their type. Therefore, the
/etc/ld.so.conf file format allows the specification of an expected type.  This is only  used  for  those
ELF  libs  which  we  can  not work out. The format is “dirname=TYPE”, where TYPE can be libc4, libc5, or
libc6.  (This syntax also works on the command line.)  Spaces are not allowed.  Also see the  -p  option.
ldconfig  should  normally  be run by the superuser as it may require write permission on some root owned
any, the library was linked against.  Therefore, when making dynamic libraries, it is wise to  explicitly
link against libc (use -lc).

Some existing libs do not contain enough information to allow the deduction of their type. Therefore, the
/etc/ld.so.conf file format allows the specification of an expected type.  This is only  used  for  those
ELF  libs  which  we  can  not work out. The format is “dirname=TYPE”, where TYPE can be libc4, libc5, or
libc6.  (This syntax also works on the command line.)  Spaces are not allowed.  Also see the  -p  option.
ldconfig  should  normally  be run by the superuser as it may require write permission on some root owned
LDCONFIG(8)                Linux Programmer鈥檚 Manual               LDCONFIG(8)

NAME
/sbin/ldconfig – configure dynamic linker run time bindings

SYNOPSIS
/sbin/ldconfig [ -nNvXV ] [ -f conf ] [ -C cache ] [ -r root ] directory …
/sbin/ldconfig -l [ -v ] library …
/sbin/ldconfig -p

DESCRIPTION
ldconfig  creates the necessary links and cache to the most recent shared libraries found in the directo-
ries specified on the command line, in the file /etc/ld.so.conf, and in the trusted directories (/lib and
/usr/lib).   The  cache is used by the run-time linker, ld.so or ld-linux.so.  ldconfig checks the header
and filenames of the libraries it encounters when determining which  versions  should  have  their  links
updated.

ldconfig  will attempt to deduce the type of ELF libs (ie. libc5 or libc6/glibc) based on what C libs, if
any, the library was linked against.  Therefore, when making dynamic libraries, it is wise to  explicitly
link against libc (use -lc).

Some existing libs do not contain enough information to allow the deduction of their type. Therefore, the
/etc/ld.so.conf file format allows the specification of an expected type.  This is only  used  for  those
ELF  libs  which  we  can  not work out. The format is “dirname=TYPE”, where TYPE can be libc4, libc5, or
libc6.  (This syntax also works on the command line.)  Spaces are not allowed.  Also see the  -p  option.
ldconfig  should  normally  be run by the superuser as it may require write permission on some root owned
directories and files.

OPTIONS
-v     Verbose mode.  Print current version number, the name of each directory as it is scanned, and  any
links that are created.  Overrides quiet mode.

-n     Only  process  directories  specified  on the command line.  Don鈥檛 process the trusted directories
(/lib and /usr/lib) nor those specified in /etc/ld.so.conf.  Implies -N.

-N     Don鈥檛 rebuild the cache.  Unless -X is also specified, links are still updated.

-X     Don鈥檛 update links.  Unless -N is also specified, the cache is still rebuilt.

-f conf
Use conf instead of /etc/ld.so.conf.

-C cache
Use cache instead of /etc/ld.so.cache.

-r root
Change to and use root as the root directory.

-l     Library mode. Manually link individual libraries. Intended for use by experts only.

-p     Print the lists of directories and candidate libraries stored in the current cache.

FILES
/lib/ld.so          run-time linker/loader
/etc/ld.so.conf     File containing a list of colon, space, tab, newline, or comma-separated  directories
in which to search for libraries.
/etc/ld.so.cache    File  containing  an  ordered list of libraries found in the directories specified in
/etc/ld.so.conf.

1. 往/lib和/usr/lib里面加东西,是不用修改/etc/ld.so.conf的,但是完了之后要调一下ldconfig,不然这个library会找不到
2. 想往上面两个目录以外加东西的时候,一定要修改/etc/ld.so.conf,然后再调用ldconfig,不然也会找不到
比 如安装了一个mysql到/usr/local/mysql,mysql有一大堆library在/usr/local/mysql/lib下面,这时就 需要在/etc/ld.so.conf下面加一行/usr/local/mysql/lib,保存过后ldconfig一下,新的library才能在程 序运行时被找到。
3. 如果想在这两个目录以外放lib,但是又不想在/etc/ld.so.conf中加东西(或者是没有权限加东西)。那也可以,就是export一个全局变 量LD_LIBRARY_PATH,然后运行程序的时候就会去这个目录中找library。一般来讲这只是一种临时的解决方案,在没有权限或临时需要的时 候使用。
4. ldconfig做的这些东西都与运行程序时有关,跟编译时一点关系都没有。编译的时候还是该加-L就得加,不要混淆了。
5. 总之,就是不管做了什么关于library的变动后,最好都ldconfig一下,不然会出现一些意想不到的结果。不会花太多的时间,但是会省很多的事

给我留言


快捷键:Crel+Enter

留言没头像?这里教你设置头像!

Switch to our mobile site