/usr/sbin、/usr/local/sbin 和 /usr/local/bin 的含义是什么?

Ser*_*gey 24 linux

让我们弄清楚所有 bin 和 sbin 文件夹(来自文件系统层次结构标准):

  • /bin 用于系统级二进制文件
  • /sbin 用于其他系统级二进制文件,主要用于引导加载程序和系统管理员
  • /usr/bin 用于非必要的二进制文件
  • /usr/sbin- 这是混乱开始的地方 - 不是系统管理员必不可少的工具?这是什么意思?为了实验?
  • /usr/local/bin - 没有关于这个文件夹的消息
  • /usr/local/sbin- 本地安装的系统管理程序。再次?怎么样/usr/sbin

所以问题是:为什么有这么多目录,/usr/sbin,/usr/local/sbin和的含义是/usr/local/bin什么?

许多程序通过档案分发,我们必须从源代码构建它们。通常他们有makefile,所以很容易。此过程涉及在 usr/local/lib、usr/local/bin... usr/local/whatever 中创建文件,而不为给定程序创建特定文件夹。

为什么会这样?

我认为这是不对的,因为如果我们需要删除程序,如果程序的创建者没有照顾它,我们必须手动删除它的每个文件。

Red*_*ick 24

1. 目录结构

这应该包含在文件系统层次结构标准 ( 2.3 PDF ) 中

/bin/ 需要在单用户模式下可用的基本命令二进制文件;
            对于所有用户,例如 cat、ls、cp

/sbin/ 基本系统二进制文件,例如 init、ip、mount。

/usr/bin/ 非必要的命令二进制文件(单用户模式下不需要); 
            对于所有用户

/usr/sbin/ 非必要的系统二进制文件,例如各种网络服务的守护进程。

/usr/local/ 本地数据的三级层次结构,特定于该主机。 
            通常还有更多子目录,例如 bin/、lib/、share/

2. 安装

我尽可能使用包管理器(例如 yum 或 apt-get)。这对于大量应用程序是可能的,在少数情况下,您可能需要添加存储库。我的第二个选择是较低级别的包,例如 RPM,从源代码编译将是我最后的选择(但有些人更喜欢这个)

一些包管理器可以从 RPM 安装(例如yum install oddity.rpm

如果您是从源代码编译,那么创建自己的包可能不是一个很大的步骤,以便系统安装程序知道您做了什么。

然后你的问题减少到例如 yum remove packagename

另一种方法是保留有关所有系统管理员活动的良好文档(无论如何我将日记保存在文本文件中)

  • 我仍然不明白 usr/sbin、usr/local/bin 和 usr/local/sbin 之间的区别。usr/local 据说是特定于这个主机的,那么usr/sbin、usr/bin 不也是特定于该主机的吗?第二个问题是关于那些不在 repos 中的程序 - make uninstall 并不总是有效 - 所以我问如何删除那些程序? (3认同)
  • @Sergey 这是历史性的。`/usr/(s)bin` 倾向于从网络文件系统挂载。这就是为什么启动机器所需的一切都必须在`/(s)bin`中。在大多数情况下,`/usr/local` 现在用于安装在包管理器之外的程序(你不应该这样做)。 (3认同)