sh 的 update-alternatives 报告使用了 bash,但我仍然得到 dash

sh 的 update-alternatives 报告使用了 bash,但我仍然得到 dash

我刚刚从 Ubuntu 17.10 升级到 Ubuntu 18.10。

我已将我的盒子配置bash为默认 shell,而不是默认的dash。我对此进行了以下更改,并sudo update-alternatives --config sh报告:

  Selection    Path            Priority   Status
------------------------------------------------------------
  0            /bin/dash        200       auto mode
* 1            /bin/bash        100       manual mode
  2            /bin/dash        200       manual mode

不过,/bin/sh仍然指向dash而不是指向bash

实际上,在以前的 Ubuntu 版本中,我相信曾经指向/bin/sh -> /etc/alternatives/sh

看起来最新的 Ubuntu 不再允许这种alternatives机制,sh或者至少在升级过程中破坏了替代方案。我看到如何使 /bin/sh 指向 /bin/bash?现在建议重新配置 dash。

为什么不再alternatives起作用了?这个更改记录在哪里?我在 Ubuntu 中使用 sh 的替代方案至少三年了,以前在升级过程中从未出现过故障。有许多指南建议这样做,例如:https://jwaghetti.blogspot.com/2015/09/changing-dash-to-bash.html

答案1

系统update-alternatives可以已经被用来管理/bin/sh,但它必须在 Debian 的 bash 和 dash 包中以这种方式实现。

打包人员决定不这样做,而是使用当前的方案来dpkg-configure管理/bin/sh。参见这个优秀的答案了解该选择的详情和理由。

您链接到的文章建议使用update-alternatives/bin/sh手动设置。也就是说糟糕的建议。因为实际上,您将有两个独立的系统尝试以不同的方式管理相同的符号链接,并且可能互相干扰。(这可能是导致 Ubuntu 升级期间出现问题的原因。)

相关内容