citadelgrad Asked: 2010-08-06 06:42:44 +0800 CST2010-08-06 06:42:44 +0800 CST 2010-08-06 06:42:44 +0800 CST 安装用户应用程序时,“最佳实践”建议它们位于何处? 772 有时我手动安装应用程序,而不是使用apt或其他包管理器。 “最佳实践”建议安装用户应用程序的位置(/usr/、/usr/local/、/opt/、等)?/home/ software-installation application-development 6 个回答 Voted Best Answer Umang 2010-08-06T06:53:43+08:002010-08-06T06:53:43+08:00 这取决于,真的。如果应用程序有一个 makefile,或者对于 Python 应用程序,如果应用程序使用distutils(例如,有一个setup.py文件),或者类似的构建/安装系统,你应该将它安装到/usr/local/. 这通常是默认行为。 据我了解,/usr/local/其层次结构类似于/usr/. 但是,像/usr/bin/和之类的目录/usr/lib/通常是为通过apt. 因此,期望被“安装”到的程序/usr/应该可以在/usr/local/. 如果您只需要解压 tarball 并直接运行(例如 Firefox),则将其放入/opt/. 只需要一个目录并获取与该目录相关的所有文件/库的程序可以在/opt/. Walt Stoneburner 2010-09-18T09:39:11+08:002010-09-18T09:39:11+08:00 请记住,/usr它不代表用户,而是代表unix 系统资源。 因此,我倾向于认为任何发行版都有权对 s 的内容进行全面检查,/usr,并且我对系统的特定添加进入/usr/local,我在升级之前保留了这些内容。 同时,应用程序和其他东西进入/opt。 有些人觉得把东西放进去很舒服/home,尽管我很少遵循这个约定。 综上所述,我让分发包管理器先按自己的方式做事,然后在手动滚动时执行上述操作。 LassePoulsen 2010-08-08T00:40:14+08:002010-08-08T00:40:14+08:00 在 /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 文件夹名称应该是您需要运行的可执行文件所在的位置。 popey 2010-08-06T06:45:10+08:002010-08-06T06:45:10+08:00 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 中的软件。 Javier Rivera 2010-08-06T06:57:03+08:002010-08-06T06:57:03+08:00 我通常在家里有一个名为“程序”的文件夹,我在其中安装这些程序,很奇怪(或不是)它们现在都是 java 的东西。 它对我来说有一个很大的优势,当我重新安装或更换计算机时,它们会与我家的其他部分一起移动。它有一个明显的缺点,这些应用程序仅供我的用户使用。 A Student at a University 2010-08-16T17:41:34+08:002010-08-16T17:41:34+08:00 使用“checkinstall”将您的外星人包转换为 deb,以便可以使用包管理器将其卸载。 请注意,配置文件通常不会作为配置文件处理(可能被忽略,或者可能被视为应用程序的一部分),并且安装前和安装后脚本有时会出错,尽管它通常会在认为deb 将有一个错误的安装前或安装后脚本。
这取决于,真的。如果应用程序有一个 makefile,或者对于 Python 应用程序,如果应用程序使用distutils(例如,有一个
setup.py
文件),或者类似的构建/安装系统,你应该将它安装到/usr/local/
. 这通常是默认行为。据我了解,
/usr/local/
其层次结构类似于/usr/
. 但是,像/usr/bin/
和之类的目录/usr/lib/
通常是为通过apt
. 因此,期望被“安装”到的程序/usr/
应该可以在/usr/local/
.如果您只需要解压 tarball 并直接运行(例如 Firefox),则将其放入
/opt/
. 只需要一个目录并获取与该目录相关的所有文件/库的程序可以在/opt/
.请记住,
/usr
它不代表用户,而是代表unix 系统资源。因此,我倾向于认为任何发行版都有权对 s 的内容进行全面检查,
/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 中添加这样的行
文件夹名称应该是您需要运行的可执行文件所在的位置。
Linux 文件系统层次结构标准指示
/usr/local
.从http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html:
我通常在家里有一个名为“程序”的文件夹,我在其中安装这些程序,很奇怪(或不是)它们现在都是 java 的东西。
它对我来说有一个很大的优势,当我重新安装或更换计算机时,它们会与我家的其他部分一起移动。它有一个明显的缺点,这些应用程序仅供我的用户使用。
使用“checkinstall”将您的外星人包转换为 deb,以便可以使用包管理器将其卸载。
请注意,配置文件通常不会作为配置文件处理(可能被忽略,或者可能被视为应用程序的一部分),并且安装前和安装后脚本有时会出错,尽管它通常会在认为deb 将有一个错误的安装前或安装后脚本。