安装用户应用程序时,“最佳实践”表明它们位于何处?

偶尔我会手动安装应用程序,而不是使用apt或其他包管理器。

用于安装用户应用程序的“最佳实践”建议使用什么位置( /usr//usr/local//opt//home/等)?

这完全取决于。 如果应用程序有makefile,(对于python应用程序)使用distutils(有一个setup.py文件)或类似的构建/安装系统,请将其放入/usr/local/ (默认行为)。

如果您只需要提取tarball并直接运行(例如Thunderbird,Firefox),那么将其放入/opt/

为什么? 据我所知, /usr/local/的层次结构与/usr/类似。 因此,期望“安装”到/usr/应该在/usr/local/正常工作。 一个只需要一个目录并将获得相对于该目录的所有文件/库的程序可以在/opt/获得一个目录。

记住/usr不代表用户而是unix系统资源是件好事。

因此,我倾向于认为任何发行版都有权遍历/usr,内容/usr,并且我对系统的特定添加进入/usr/local ,我在进行升级之前保留了这些内容。

同时,应用程序和其他东西进入/opt

有些人觉得把东西放在/home很舒服,尽管我很少遵循这个惯例。

所有这一切,我让分发包管理器先做事情,然后在手工滚动时做上述事情。

在/ home / user / opt /中安装像firefox devel这样的不稳定程序,使其更容易删除,并且对于其他用户不应该混淆他们应该使用的版本……所以如果它不是全球使用的程序,请安装它位于主目录的子文件夹中。

永远不要在/ usr /中安装程序,它可能会导致混乱,/ usr /中安装的东西只适用于分发包。 / usr / local /用于本地编译的包。 这个结构的工作原理完全相同! / usr / local /中的文件将优先于/ usr /中的文件

/ opt /应该用于安装预编译(二进制)包(Thunderbird,Eclipse,Netbeans,IBM NetSphere等)等。 但如果它们仅适用于单个用户,则应将它们放在您的主目录中。

如果你想能够运行安装在“怪异”位置的程序(比如/ home / user / opt / firefox /)而不输入你需要将它添加到$ PATH变量的整个路径,你可以这样做在/home/user/.profile中添加这样的一行

 export PATH=/home/user/opt/firefox:$PATH 

文件夹名称应该是您需要运行的可执行文件所在的文件夹名称。

Linux文件系统层次结构标准指示/usr/local

来自http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html :

‘/ usr / local’背后的原始想法是在’/ usr’之外的每台机器上都有一个单独的(’local’)’/ usr’目录,它可能只是从其他地方以只读方式挂载。 它复制’/ usr’的结构。 如今,’/ usr / local’被广泛认为是保存自编或第三方程序的好地方。 / usr / local层次结构供系统管理员在本地安装软件时使用。 系统软件更新时,需要保护它不被覆盖。 它可用于可在一组主机之间共享但在/ usr中找不到的程序和数据。 本地安装的软件必须放在/ usr / local而不是/ usr中,除非安装它以替换或升级/ usr中的软件。

我家里通常有一个名为“程序”的文件夹,我安装这些程序,非常奇怪(或不是)它们现在都是java的东西。

它对我来说有一个很大的好处,当我重新安装或更换电脑时,他们会和我家的其他人一起搬家。 它有一个明显的缺点,这些应用程序仅供我的用户使用。

使用“checkinstall”将您的外星人包转换为deb,以便使用包管理器将其卸载。

请注意,配置文件通常不会作为配置文件处理(可能被忽略,或者可能被视为应用程序的一部分),并且安装前和安装后的脚本有时会被搞砸,但它通常会在它认为时发出警告deb将有一个糟糕的安装前或安装后脚本。