web-dev-qa-db-ja.com

MacPortsでMacのBashを更新できません

MacPortsでBashを3.2.48に更新できませんでした。

私はそれをアクティブにしていないようです

echo $BASH_VERSION
3.2.17(1)-release

最新のBashをアクティブにするにはどうすればよいですかログインシェル用に取得できるようにしますか?

次のコードを実行します。たとえば、シェルをMacPortsによってインストールされた最新のBashに変更します。

chsh -s /opt/local/bin/bash

それがあなたにメッセージを与えるなら、

"non-standard Shell "

追加する必要があります

/opt/local/bin/bash

/etc/shells

ご了承ください /etc/shellsは単なるテキストファイルなので、rootとして認証すれば直接編集できます。コマンドでプログラムで変更できます

Sudo -s
Password:
# echo /opt/local/bin/bash >> /etc/shells

最初のchshコマンドが失敗した場合、上記のファイルを変更できた場合は、今すぐ実行してください。

74
Nicholas Riley

ログインシェルは、既存のMac OS Xログインシェルから切り替えることができます(デフォルトでは、その/bin/bash Mac OS Xに同梱)、MacPortsへ/opt/local/bin/bash次のシェルスクリプトを使用するだけです:

#!/opt/local/bin/bash
if [ `grep /opt/local/bin/bash /etc/shells` ]; 
then 
    echo /opt/local/bin/bash | chsh -s /opt/local/bin/bash;     
else 
    echo /opt/local/bin/bash | Sudo tee -a /etc/shells; 
    chsh -s /opt/local/bin/bash; 
fi
2
Uwe Günther

インストールされていると思いますが、ログインシェルとしては使用されていません。

コマンドラインでdsclを使用してシェルを変更できます。

Dsclプロンプトで、次のように入力します。

list Local/Default/Users
read Local/Default/Users/<your username here>
change Local/Default/Users/<your username here> UserShell /bin/bash /opt/local/bin/bash

私の blog でdsclを使用する別の例があります。

2
segy