根据我的业余知识,我知道 /bin 是所有系统所需的软件包都存在的地方,如果系统遇到任何问题,可以使用这些软件包进行调试和工作,简而言之,系统所需的软件包是最低限度的。
- 在 Ubuntu 上安装 ex: 的软件包时,我可以直接在哪里安装该软件包吗?比如我希望它安装在哪个目录中?
- 另外,安装时什么样的包会出现在 /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
,例如不太重要的可执行文件、手册页等。