失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Linux 系统关于应该把程序安装在目录 /usr 还是目录 /usr/local 下的思考

Linux 系统关于应该把程序安装在目录 /usr 还是目录 /usr/local 下的思考

时间:2018-11-24 20:31:36

相关推荐

Linux 系统关于应该把程序安装在目录 /usr 还是目录 /usr/local 下的思考

对于一个以 LFS(Linux From Scratch 大意:自己做出来的 Linux) 为基础的系统来说,这是一个没有明确答案的问题。什么是 LFS?

在传统的 Unix 系统中,/usr 通常只包含系统发行时自带的程序,而 /usr/local 则是本地系统管理员用来自由添加程序的目录。这里有一条严厉而牢固的规则:除非在里面创建目录,否则 Unix 发行版不得使用 /usr/local。

对于 Linux 发行版,如 RedHat, Debian 等等,一个可能的规定是:/usr 目录只能由发行版的软件包管理工具负责管理,而对 /usr/local 却没有这样做。正是因为采用这种方式,软件包管理工具的数据库才能知道在 /usr 目录内的每一个文件。

LFS 的用户是自己建立系统的,所以能自己决定系统文件和用户文件的放置方式。因此,应该按照有利于系统管理员使用的方式作出选择。这里有几个把文件安装到 /usr 或者是 /usr/local 的理由:

如果网络上的计算机都运行 LFS 或者是混合使用 LFS 和其它 Linux 发行版,所有连网计算机共用的软件应该安装在 /usr/local 内。这样可以通过 NFS 文件系统共享该目录或者从一个服务器上镜象过来。此时 /usr/local 表示本地服务器提供的软件的目录。

如果网络上的计算机都运行同样的LFS系统,/usr/local 应该安装各台计算机之间不相同的软件。这时 /usr/local 表示本地计算机提供的软件的目录。

如果你在一台计算机上同时安装了几个 Linux 发行版,并希望在某个目录存放它们共享的软件,这时 /usr/local 目录就能发挥作用了。

或者你想要经常重建 LFS 系统,但又希望把不想每次重复编译的软件存放在某处,你也可以把软件安装在 /usr/local 目录。这样你就可以在不丢失数据的情况下删去 LFS 系统并从一个干净的分区重新开始。

一些人会问为什么不使用你自己的目录树,也就是使用 /usr/site 而不是 /usr/local?

没有什么能阻止你,确实可以在很多地方创建自己的目录树,但这会使得安装新软件更加麻烦。自动化的安装程序通常要到 /usr 或 /usr/local 目录下寻找所依赖的文件,如果要找的文件不在 /usr 目录里面,安装可能会失败,除非你指定目录让安装程序查找所依赖的文件。

那么在 BLFS 中软件的安装位置在那里?

除非特别声明,所有 BLFS 中的软件都安装在 /usr 目录下。也有一些文件被放在 /usr/local 目录下,但它们只是文档并且有足够的理由这样做。

个人建议

你自己安装的应用类程序,经常使用的,安装在 /usr/local/lib 目录下

你自己安装的系统类程序,建议安装在 /usr/lib 目录下

你自己安装的应用类程序,不经常使用,或者临时安装的,不久就要卸载掉,建议安装在 /opt/lib 目录下

程序源码放在 /usr/local/src 目录下

如果觉得《Linux 系统关于应该把程序安装在目录 /usr 还是目录 /usr/local 下的思考》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。