web-dev-qa-db-ja.com

shのupdate-alternativesはbashが使用されていると報告しますが、まだダッシュが表示されます

Ubuntu 17.10からUbuntu 18.10にアップグレードしました。

デフォルトのbashではなく、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ではalternativesshメカニズムが許可されなくなったか、少なくともアップグレード中に代替手段が壊れたようです。 / bin/shが/ bin/bashを指すようにする方法 からわかるように、代わりにダッシュを再構成することをお勧めします。

alternativesが機能しないのはなぜですか?この変更はどこに文書化されていますか?私はUbuntuで少なくとも3年間shの代替を使用してきましたが、アップグレード中に破損したことはありませんでした。次のようなことを示唆する多くのガイドがあります: https://jwaghetti.blogspot.com/2015/09/changing-dash-to-bash.html

4

update-alternativesシステム/bin/shの管理に使用できましたが、bashおよびdashのDebianパッケージにそのように実装する必要がありました。

パッケージャーは、dpkg-configureを管理するために/bin/shを含む現在のスキームを使用する代わりに、それに対して決定しました。 この優れた答え を参照して、その選択の詳細と根拠を確認してください。

リンク先の記事 は、update-alternatives/bin/shを使用することを推奨しています。手動で設定します。それはひどいアドバイスです。実際には、同じシンボリックリンクを異なる方法で管理しようとする2つの別個のシステムがあり、おそらくそれぞれを踏むことになります。他のつま先。 (Ubuntuのアップグレード中に問題を引き起こしたのはおそらくこれです。)

3
filbranden