对readlink /usr/lib/libpcre.so感到困惑

时间:2015-10-09 17:42:37

标签: linux

我正在关注

http://www.linuxfromscratch.org/blfs/view/svn/general/pcre.html

安装pcrc(OS:CentOS 6.6)。

我对此行感到困惑

ln -sfv ../../lib/$(readlink /usr/lib/libpcre.so) /usr/lib/libpcre.so

我知道它正在创建一个软链接但不确定为什么它需要readlink以及为什么 它是../../lib而不是/ lib?

希望很清楚。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

小心。

这些是通用指令,它们假定非CentOS / fedora发行版。在CentOS / fedora中,/ lib是/ usr / lib的符号链接(/ lib64是/ usr / lib64的符号链接)。因此,说明不会起作用。

在其他发行版上,/ lib和/ usr / lib是不同的目录。该命令正在尝试从/ usr / lib创建一个符号链接到/ lib,这样:

/usr/lib/libpcre.so - > /lib/libpcre.so
并且,/ lib / libcpre.so是真正的文件。

在CentOS / fedora上,这将创建一个符号链接循环:

/usr/lib/libpcre.so - > /usr/lib/libpcre.so

除非你有特殊的理由不这样做,否则只需要安装pcre"让发行版安装处理它。您可能还需要开发包:" yum install pcre-devel"

另请注意,这些说明适用于32位系统。如果你的是64位,那么我们就是在讨论/ lib64和/ usr / lib64。如果你的系统是64位,但你想创建32位应用程序,那么你需要安装pcre.i686"

IMO,在说明中,使用"&&"是"变得可爱"并且让我对它们不信任(例如./configure-blah&& make)在技术上是正确的,但通常最好将它们作为单独的步骤来执行:
- ./configure-blah
- 检查错误
- 制作 - 检查错误

它的相对(使用../ ..)的原因是你可以安装在/ usr / local或其他(例如/ usr / local / lib和/ usr / local / usr / lib) )