Mac で brew install erlang
したらエラー
手元の対象環境は以下です。
- OS : macOS High Sierra 10.13.6
かくかくしかじかありまして、brew install erlang
してみたらエラーが出てしまいました。
```console
$ brew update
$ brew install erlang
...
<</usr/bin/erl にシンボリックリンクが貼れないエラー>>
...
$ erl -eval 'erlang:display(erlang:system_info(otp_release)), halt().' -noshell
17
$ brew uninstall erlang
...
<<そんなもん知らんってエラー>>
...
あら?と思って一応 erl -eval 'erlang:display(erlang:system_info(otp_release)), halt().' -noshell
でバージョン確認してみたところ、17
という衝撃のアンサーが帰ってきました。
OPT 17 !!
OPT 17 入れたの誰だよ!!(自分しかいないけど。)
ダメ元で brew uninstall erlang
してみましたが、そんなの知らないけど?っていうご回答。わかってましたよ。。。
インストーラーから入れたみたい?
たぶん、どっかのインストーラーで入れたんでしょう・・・以下のサイトのような・・・
今回も一旦、上記サイトからインストーラパッケージが含まれた .dmg
をダウンロードしてきました。
この中に含まれる uninstall.tool
を実行すればOKのようです。
ですが念のために、本当にこのインストーラーでインストールしたのか?が気になるので、uninstall.tool
をちょっとのぞいて見たところ、以下のようなコードを発見しました。
for p in "com.erlang-solutions.Erlang" "com.erlang-solutions.MacUpdaterSwift"; do
FILES=`/usr/sbin/pkgutil --files ${p} 2>/dev/null`
...
おー、/usr/sbin/pkgutil --files {p}
でここのインストーラーからインストールされたファイルのリストが取れるのね!
というわけで以下のコマンドを実行し、本当にこのインストーラーからインストールされたファイルが存在するのか確認して見ました。
$ /usr/sbin/pkgutil --files "com.erlang-solutions.Erlang"
...
<<大量のファイルリスト>>
...
あ〜出るわ出るわ大量のファイルが。。。はい、確定です!
アンインストール実行
というわけで uninstall.tool
を実行します。
$ sudo /Volumes/Erlang/uninstall.tool
Password:
Do you wish to uninstall EslErlang (Yes/No)?
yes
Removing files
Cleaning up
Forgot package 'com.erlang-solutions.Erlang' on '/'.
Cleaning up
Uninstallation completed
$ erl -eval 'erlang:display(erlang:system_info(otp_release)), halt().' -noshell
-bash: /usr/local/bin/erl: No such file or directory
はい、アンインストール完了です。
念のため、erl
がちゃんと消えているかどうか先ほどのバージョン確認コマンドを叩いて見ましたが、しっかりと /usr/local/bin/erl: No such file or directory
でエラーが出てので PATH
で見えている範囲に erl
はなくなっているのが確認できました。
気を取り直して、 brew install erlang
いってみたいと思います!
まとめ
手順をまとめると以下のようになります。
-
https://www.erlang-solutions.com/resources/download.html からインストーラーを含む
.dmg
をダウンロード - ダウンロード完了後、ダブルクリックか
開く
などで/Volumes/Erlang
にマウントされるはず。(Erlang
はバージョンによって変わるかもしれない?) - 念のため
/usr/sbin/pkgutil --files "com.erlang-solutions.Erlang"
コマンドでインストールファイルの有無を確認 -
$ sudo /Volumes/Erlang/uninstall.tool
でアンインストーラーを実行
以上です。