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ではalternatives
のsh
メカニズムが許可されなくなったか、少なくともアップグレード中に代替手段が壊れたようです。 / bin/shが/ bin/bashを指すようにする方法 からわかるように、代わりにダッシュを再構成することをお勧めします。
alternatives
が機能しないのはなぜですか?この変更はどこに文書化されていますか?私はUbuntuで少なくとも3年間shの代替を使用してきましたが、アップグレード中に破損したことはありませんでした。次のようなことを示唆する多くのガイドがあります: https://jwaghetti.blogspot.com/2015/09/changing-dash-to-bash.html
update-alternatives
システムは/bin/sh
の管理に使用できましたが、bashおよびdashのDebianパッケージにそのように実装する必要がありました。
パッケージャーは、dpkg-configure
を管理するために/bin/sh
を含む現在のスキームを使用する代わりに、それに対して決定しました。 この優れた答え を参照して、その選択の詳細と根拠を確認してください。
リンク先の記事 は、update-alternatives
で/bin/sh
を使用することを推奨しています。手動で設定します。それはひどいアドバイスです。実際には、同じシンボリックリンクを異なる方法で管理しようとする2つの別個のシステムがあり、おそらくそれぞれを踏むことになります。他のつま先。 (Ubuntuのアップグレード中に問題を引き起こしたのはおそらくこれです。)