bash-static 有什么用?

Nik*_* R. 17 bash static-linking

与常规 bash 相比,bash-static 的目的是什么?它作为救援壳好还是有什么用?

xhi*_*nne 27

你可能指的是.deb包装bash-static这是一个静态链接的版本bash,这意味着它是一个独立的程序,它不依赖于磁盘上的其他任何东西(特别是库)。

我在两个不同的场合使用过它:

  • 安装在服务器上,以便我始终有一个工作bash,即使在灾难性的情况下ld.solibc不工作(缺席、损坏、配置不当……)
  • 连同我自己的 shell 脚本一起交付给客户,以便我确定他们拥有正确版本的bash.

  • 啊,所以*这就是为什么 Linux 有一个 `/lib` 目录(在 BSD 系统上不存在)而不是 `/usr/lib`... (5认同)
  • @Kusalananda 对,除了,不是。FHS 指出“`/lib` 目录包含引导系统和运行根文件系统中的命令所需的那些共享库映像,即通过`/bin` 和`/sbin` 中的二进制文件。(脚注)共享库只对 `/usr` 中的二进制文件(例如任何 X Window 二进制文件)是必需的,不能在 `/lib` 中。” (5认同)
  • 典型的情况是`/` 挂载正常,但`/usr` 因某种原因挂载失败。因此,BSD 系统通常避免在 `/bin` 和 `/sbin` 中动态链接可执行文件。 (4认同)
  • @Kusalananda 不确定这实际上是一个典型的场景。`/usr` 不应该在第一个引导阶段可用。根据 FHS,您不希望 `/bin`(尤其是 `/bin/*sh`)中的任何内容依赖于 `/usr/lib` 中的任何内容。 (2认同)