我正在迁移到 OSX,需要弄清楚何时保留我的脚本和库。我有 Perl 和 Python 代码,以及用这两种语言编写的库。我是这台机器的唯一用户,所以我想 ~/bin/ 和 /usr/local/bin/ 之间的区别不如在多用户机器上那么明显。
我不确定在 Unix 下这些文件的正确布局是什么样的(即使我研究了一下,例如,这里)甚至更少OSX 的非标准布局。
我应该把实际运行的脚本放在哪里?在 ~/bin/ 中?在 /usr/local/bin/ 中?我应该将 Python 和 Perl 分开,比如说,在 ~/bin/python/ 和 ~/bin/perl/ 中吗?
而且(我觉得更难)我应该把库放在哪里?在 ~/lib/ 中?在 ~/lib/python/ 和 lib/perl/ 中?还是在 ~/Library/ 中的某个地方?
答案1
如果您想要保持与其他 Unix/Linux 系统的兼容性,您应该使用/usr/local/bin
和/usr/local/lib
,即使您是机器上唯一的用户。文件系统层次标准表明/usr/local
等级制度:
供系统管理员在本地安装软件时使用。它需要确保在系统软件更新时不会被覆盖。它可用于可在主机组之间共享但在 中找不到的程序和数据
/usr
。本地安装的软件必须放在 内,
/usr/local
而不是内/usr
,除非是为了替换或升级 中的软件而安装的/usr
。
从技术上讲,如果这些程序仅供您自己使用,您可以使用~/bin
、~/lib
等,但我通常会将这些目录保留给共享机器(例如,在我的网络主机上)上的非管理员用户使用。
至于基于语言的分类,二进制文件应该全部在 中/usr/local/bin
,但库可以位于/usr/local/lib/perl5
、/usr/local/lib/python3.3
等中。