Ano*_*223 9 directory-structure
我发现了这个话题:/opt 和 /usr/local 之间有什么区别?
这个链接:http : //www.pathname.com/fhs/pub/fhs-2.3.html
为了帮助我了解的惯例/home
,/root
,/usr/local
,/usr/bin
和/opt
,我仍然有一个问题,因为我有点糊涂了解他们每个人之间的差异。
对于我想安装必须由用户本地使用的应用程序的系统,将应用程序放在/home
或/usr/bin
或 中更好/root
?是否有我应该知道的“良好做法”?
Tom*_*unt 12
嗯,有各种各样的考虑。
你什么都不放进去/root
。这仅用于 uid 0 和系统管理;它通常甚至不能被非 root 用户遍历。
下安装/home/<username>
,如果你的机器,你在一个非特权用户,个人,需要能够使用该软件正在安装。如果你是管理员,你通常不应该弄乱用户的 homedirs。
安装在/usr/local
普通软件包下,无论出于何种原因,您都是从本地源安装(而不是通过包管理器安装)。如果您./configure && make && make install
从源 tarball运行标准的 autoconf咒语,这通常是放置事情的地方。/usr/local/bin
如果我希望它们普遍可用,我还会将我在本地开发的小实用程序放在 下。
在安装/opt
第三方预捆绑软件(这方面的一个很好的例子是口径,如果你用自己的二进制安装包)。这/opt
为您安装的每个包创建了一个单独的目录,该目录具有该包的所有必需品(与/usr
或 不同/usr/local
,其中所有包的二进制文件都在 下bin
,所有包的库都在lib
, &c. 下)。一般来说,如果您自己编写或打包需要许多不同组件的软件,那么将它放在这里可能会很好,但如果不是他们的建议,尝试在那里安装其他人的软件包可能不是最佳选择。不过,这可能是一个意见问题。
如果您正在创建用户或管理员将手动安装的包,您需要/opt
或/usr/local
. 如果您要安装其他人的软件包,请遵循他们的建议。如果您要为某个发行版打包一些东西(您可能不是),请使用/usr
.
一个表现良好的系统集成包将其:
/usr/bin
/usr/lib
/usr/share
/etc
$HOME
或 in$HOME/.config
如果你的包是不是系统集成(例如,你从源代码编译),你的前缀是/usr/local
不是只是/usr
。
如果你的包不遵循这个数据分离约定,它应该进入/opt
.
如果您没有权限到您的写入外$HOME
,您可以复制bin
,lib
并share
在$HOME/.local
但大多数用户级封装管理者没有按照这个(在我的经验)。
/root
只是root用户的家。您通常不必担心/root
是否要将软件放在系统上。