rcmdnk's blog

肆‐SHI‐(シ)

Shellshock が世間を賑わせてますが、 Macでは依然としてデフォルトの/bin/bash及び/bin/sh についてはオフィシャルなアップデートがありませんが、 Homebrewで配られているbashはすぐにアップデートされました。

ただ、そのアップデートを行った後に少しおかしくなったのでそれについて。

Sponsored Links

bashを使おうとするとエラーが出る

何故かターミナルとかで開くとbash自体は立ち上がるのですが、 その後bashを使おうとすると次の様なエラーが出ます。

dyld: Library not loaded: @@HOMEBREW_PREFIX@@/opt/readline/lib/libreadline.6.dylib
  Referenced from: /usr/local/bin/bash
  Reason: image not found

これはサブシェルでbashを立ち上げたりするときにも出るので、 bashをシェバングで指定している様な物は全てダメな感じ。

一番面倒なのはbrewコマンド自体がこのエラーで使えなくなること。

これはどうも問題になってるreadlineをインストールしなおせば良い、 とのこと1

確かにreadlineをHomebrewでインストールしてあったのでそれを 再インストールしようとしましたが、Bashのままでは上のエラーが出て brewコマンド自体出来ない状態。

仕方がないので、zshを一度起動してzshからbrewコマンドを実行しました。

$ zsh
% brew reinstall readline
% brew reinstall bash

一応bashも再インストール。

ここで、readlineの再インストール時に、

Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.

みたいなエラーが。Xcodeが1ヶ月程前にアップデートされてその後起動してなかったので、 その際に必要な承認を行っていなかった模様。

なので、一度Xcodeを起動して最初に出てくるプロンプトでagreeしておいて、 その後上のコマンドを実行します。

bashの方は一応再インストール。

これで上のエラーが出なくなりました。

ちょっと良くわかってないのはbrewコマンド自体は #!/bin/shというシェバングの設定になっていて、 どのbashからでもzshからでも同じ様に思いますが、 上のエラーがどの時点で出てるのかがちょっと理解不足。

Sponsored Links
Sponsored Links

« Macのホスト名の設定 brew-fileのデフォルトをpython versionにした »