从源代码安装到前缀后,我的/usr/bin/vlc
二进制文件被破坏了。根据我的经验,安装到前缀不会影响二进制文件,但也许这只是偶然。vlc
/usr/local
/usr/local
/usr/bin/[binary]
据我所知,安装的效果/usr/local
可能是(不稳定的)共享库在(稳定的)共享库之前从 加载/usr/
。那么,Ubuntu 是否强制软件包维护者仅从 加载动态库/usr/
?
类似资源此处的手册页,BLSF 在 /usr/local 与 /usr 上的位置和FHS 对 Debian 的解释我认为回答了这个问题,因为它没有定义不同前缀的二进制文件之间的互操作性。
这与路径查找优先级(对于二进制文件、共享库等)的功能无关,这对我来说很清楚,而是与它们在 Ubuntu 中的使用(约束、定义、(伪)标准)有关。
答案1
根据我的经验,安装
/usr/local
不会影响二进制文件/usr/bin/[binary]
,但也许这只是偶然。
你应该多去 Ask Ubuntu 逛逛。:)
使用sudo pip install
(安装到 )/usr/local
会破坏各种 Python 应用程序,这是 IME 迄今为止看到的最常见的 Python 问题。如果您安装的 PyPi 包已经包含系统包,则可能会破坏使用系统包的任何程序。就在几周前,我遇到了由于-installed插件而导致的apt-get
-installed中断的情况。certbot
pip
certbot
软件包不应该正式安装任何东西/usr/local
(CA 证书除外),因为这是系统管理员的领域 - 但这是唯一的限制。显然,如果系统管理员要充分利用所/usr/local
提供的权力,那么其他地方的东西/usr
就必须能够影响他们。这并不是说他们被“允许被破坏”通过源安装;而是系统管理员被信任知道他们安装的东西/usr/local
会产生什么影响。