/home、/root 和 /usr 之间的差异

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

嗯,有各种各样的考虑。

  1. 你什么都不放进去/root。这仅用于 uid 0 和系统管理;它通常甚至不能被非 root 用户遍历。

  2. 下安装/home/<username>,如果你的机器,你在一个非特权用户,个人,需要能够使用该软件正在安装。如果你是管理员,你通常不应该弄乱用户的 homedirs。

  3. 安装在/usr/local普通软件包下,无论出于何种原因,您都是从本地源安装(而不是通过包管理器安装)。如果您./configure && make && make install从源 tarball运行标准的 autoconf咒语,这通常是放置事情的地方。/usr/local/bin如果我希望它们普遍可用,我还会将我在本地开发的小实用程序放在 下。

  4. 在安装/opt第三方预捆绑软件(这方面的一个很好的例子是口径,如果你用自己的二进制安装包)。这/opt为您安装的每个包创建了一个单独的目录,该目录具有该包的所有必需品(与/usr或 不同/usr/local,其中所有包的二进制文件都在 下bin,所有包的库都在lib, &c. 下)。一般来说,如果您自己编写或打包需要许多不同组件的软件,那么将它放在这里可能会很好,但如果不是他们的建议,尝试在那里安装其他人的软件包可能不是最佳选择。不过,这可能是一个意见问题。

如果您正在创建用户或管理员将手动安装的包,您需要/opt/usr/local. 如果您要安装其他人的软件包,请遵循他们的建议。如果您要为某个发行版打包一些东西(您可能不是),请使用/usr.


PSk*_*cik 5

一个表现良好的系统集成包将其:

  • 可执行文件/usr/bin
  • 的.so和.A库/usr/lib
  • 与架构无关的数据(包括文档)/usr/share
  • 系统范围的配置数据/etc
  • 点文件中的用户配置数据in$HOME或 in$HOME/.config

如果你的包是不是系统集成(例如,你从源代码编译),你的前缀是/usr/local不是只是/usr

如果你的包不遵循这个数据分离约定,它应该进入/opt.

如果您没有权限到您的写入外$HOME,您可以复制binlibshare$HOME/.local但大多数用户级封装管理者没有按照这个(在我的经验)。

/root只是root用户的家。您通常不必担心/root是否要将软件放在系统上。