it-swarm.cn

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

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

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

206
citadelgrad

这完全取决于。如果应用程序具有makefile,或者例如对于python apps,如果应用程序使用distutils(例如,具有setup.py文件)或类似的构建/安装系统,则应将其安装到/usr/local/中。这通常是默认行为。

据我所知,/usr/local/的层次结构类似于/usr/。但是,/usr/bin//usr/lib/等目录通常通过apt保留给包安装。因此,希望“安装”到/usr/中的程序在/usr/local/中可以正常工作。

如果您只需要提取tarball并直接运行(例如Firefox),那么将其放入/opt/。一个只需要一个目录并将获得相对于该目录的所有文件/库的程序可以在/opt/中为自己获取一个目录。

182
Umang

记住/usr不代表用户而是nix系统资源

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

同时,应用程序和其他东西都在/opt中。

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

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

116
Walt Stoneburner

在/ 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

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

34
LassePoulsen

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中的软件。

26
popey

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

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

6
Javier Rivera

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

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

1