Answers:
经验法则,至少在基于Debian的系统上:
/usr/local
对于东西,这是“全系统” -即/usr/local
往往是在发行版的默认$PATH
,并遵循与标准UNIX目录层次结构/usr/local/bin
,/usr/local/lib
等等。
/opt
对于您不信任的东西,您将无法在全系统范围内使用每个应用程序的前缀/opt/firefox-3.6.8
(例如/opt/mono-2.6.7
,等等)。存放在这里需要进行更仔细的管理,但是也不太可能破坏系统—并且因为删除文件夹而已被删除,因此删除起来更容易。
/opt
如果您确实要安装,许多程序/应用程序会自动建议安装到该程序/应用程序sudo
。
如果您真的不想让它完全干扰,请不要将其放在您的中的任何位置$PATH
。
如果要安装它$PATH
,至少请确保不要安装到/usr/local
。我发现即使发行版已将其安装在其中,也可以找到许多软件/usr
。
我最喜欢的安装定制编译软件的方法是在我的$HOME
目录中。这样,您就无需使用sudo
任何东西,并且它与系统的其余部分非常隔离。例如:
mkdir ~/stage
./configure --prefix=/home/username/stage && make && make install
如果需要,可以将其添加/home/username/stage/bin
到中$PATH
。
/usr/local
。
FHS表示将其放在/ usr / local中,发行版不应该使用它。 /usr/local/bin
用于/usr/local/src
源代码和/usr/local/lib
库的二进制文件。有关更多信息,请参见FHS规范
/etc/mysql
该配置?
/usr/local/etc
默认情况下有一个文件夹,我想我应该使用它... :-)
大多数时候,我喜欢将自己的已编译内容放入中/opt
。这有点伪标准。您也可以考虑/usr/local
,但我更希望100%保持隔离。
/opt
,不过我见过很多次,/usr/local
散落着垃圾,它来自于发行
/usr/local
是与标准树中的目录并行的目录层次结构,甚至还有诸如TeX之类的索引文件。
把它们放到/usr/local/src
。
我要做的是在此目录中提取源代码。它将创建一条类似
/usr/local/src/postgresql-8.3.7
然后创建一个符号链接到它:
/usr/local/src # ln -s postgresql-8.3.7 postgresql
把你所有的建筑都做完/usr/local/src/postgresql
。
当您需要在版本和文档之间弹出时,这种方式很有用。
根据FHS,/usr/local/
用于从源代码编译的应用程序,而/opt/
用于操作系统供应商不支持的第三方应用程序。
我建议两件事:
系统范围:使用stow并安装在/ usr / local / stow / package-version下。然后,您可以轻松地在版本之间切换。
在我的家中,或者如果我没有/ usr / local的写许可权,我会亲自在〜/ .local下安装程序,这由XDG standard提示。
您也可以在本地使用存储,尽管我从未使用过:)
我的设置与大多数人有所不同,因为我做了很多开发工作。我有一个/ home / jackson / bin /目录,我将东西安装到其中,并且我编辑了.bashrc并添加了以下内容:
export PATH=/home/jackson/bin/bin::$PATH
export LD_LIBRARY_PATH=/home/jackson/bin/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/home/jackson/bin/lib/pkgconfig:$PKG_CONFIG_PATH
我不会为所有事情都这样做,但是在开发过程中会很好。
如果正在编译应用程序,则可以在PATH env变量中添加其可执行文件路径。这不会影响其他用户。
如果希望您的应用程序对系统上的所有用户可用,并且您具有必要的权限,请使用/ opt。如果希望该应用程序仅对您(和root)可用,请使用/ home / username