软件包可以安装到/bin吗?

软件包可以安装到/bin吗?

根据我的业余知识,我知道 /bin 是所有系统所需的软件包都存在的地方,如果系统遇到任何问题,可以使用这些软件包进行调试和工作,简而言之,系统所需的软件包是最低限度的。

  1. 在 Ubuntu 上安装 ex: 的软件包时,我可以直接在哪里安装该软件包吗?比如我希望它安装在哪个目录中?
  2. 另外,安装时什么样的包会出现在 /bin 中?

答案1

一般来说,由维护者(而不是用户)决定包安装到哪个目录。给定的 Linux 发行版通常有一个关于什么应该放在哪里的策略。

许多发行版(包括 Ubuntu)将用户安装的软件包/usr放入/usr/bin.相比之下,/usr/bin/bin在 Arch Linux 中位于同一位置,因此几乎每个包都将其可执行文件安装到/bin.

在确实保持/bin独立的发行版中,它通常保留用于某种最小的基本系统,包括: shell;检查、挂载和卸载文件系统的工具;以及系统认为重要的任何其他内容。

答案2

Ubuntu 软件包不可重定位。他们的文件会随包裹的指示而去往任何地方。大多数发行版也是如此。

当您拥有打包系统时,拥有可重定位的包就没有多大意义了。包管理器跟踪每个包的文件所在的位置,因此不需要以任何特定方式对它们进行分组。系统管理员不需要控制每个包的去向:包管理器管理的文件有一个位置,并且管理员不直接操作这些文件,只能通过包管理器操作。

在 Linux 上,规范就是把包管理器管理的程序放在/usr(省略/usr/local)、、、/bin/lib再加/sbin上几个,就不细说了)下。系统管理员在不使用包管理器的情况下安装的程序位于/usr/local或下/opt。 (有些发行版也把东西放在 下/opt,但 Ubuntu 不是。)

/bin和 兄弟姐妹及其对应者之间的区别/usr在于,使系统运行所需的东西都需要位于 . 之外/usr。这种区别可以追溯到创建/usr单独分区相对常见的时代:安装该分区所需的任何东西,或者系统管理员登录和修复内容所需的任何东西,都必须位于根文件系统之外/usr,直接位于根文件系统上。如今,磁盘已经变得足够大,以至于网络安装/usr在大多数设置中不再有意义,并且文件系统也取得了进步,因此/usr只读安装不再具有优势。因此,/usr/bin兄弟姐妹之间的区别是没有意义的。一些发行版(例如 Ubuntu)保留它,其他发行版则不保留(并建立/bin符号链接,/usr/bin反之亦然)。

根文件系统和根文件系统之间的划分/usr是按文件而不是按包。每个 Ubuntu 软件包至少包含几个位于/usr/share/doc.大多数将文件放入其中的软件包/bin也会将文件放入 下/usr,例如不太重要的可执行文件、手册页等。

相关内容