我正在一个LXC容器中构建Spice的新版本,主要是为了实验。然而,我遇到的一个奇怪问题是,
无论如何,这让我想到了一个问题:除了
我理解为什么需要分开的`/usr/lib/i386-linux-gnu`和`/usr/lib/x86_64-linux-gnu`目录,因为Debian没有使用其他发行版中使用的`/usr/lib`和`/usr/lib32`层次结构。但是,直接放在`/usr/lib`中的库是否具有特殊意义,还是只是为了向后兼容性呢?
make install
将libspice-server.so.1.9.0
安装到了/usr/lib
目录下。结果是,在使用QXL驱动时出现了一个令人讨厌的段错误,因为仓库中的libspice-server.so.1.8.0
位于/usr/lib/x86_64-linux-gnu
目录下,而这个目录在ldconfig
中具有更高的优先级。所以,它在动态链接时将旧版本的库与新代码进行了链接,这是不好的。无论如何,这让我想到了一个问题:除了
ldconfig
的顺序(我认为与此无关)之外,将库放在/usr/lib
和将库放在/usr/lib/{x86_64,i386}-linux-gnu
之间是否存在功能或哲学上的区别?我理解为什么需要分开的`/usr/lib/i386-linux-gnu`和`/usr/lib/x86_64-linux-gnu`目录,因为Debian没有使用其他发行版中使用的`/usr/lib`和`/usr/lib32`层次结构。但是,直接放在`/usr/lib`中的库是否具有特殊意义,还是只是为了向后兼容性呢?
/usr/lib
目录下的库文件直接属于*:amd64
包(本地包,我使用的是64位安装),我只检查了几个,没有一个同名的*:i386
包(外部架构)。所以这些库文件只存在于本地架构中,无需将它们移动到特定架构的文件夹中。我还没有验证Debian政策,所以我写成了评论形式,等我找到参考资料后再确认。 - user.dz