【2019年6月版】Erlang OPT 17 が Mac に入ってたので駆逐した


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 してみましたが、そんなの知らないけど?っていうご回答。わかってましたよ。。。


インストーラーから入れたみたい?

たぶん、どっかのインストーラーで入れたんでしょう・・・以下のサイトのような・・・

https://www.erlang-solutions.com/resources/download.html

今回も一旦、上記サイトからインストーラパッケージが含まれた .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 いってみたいと思います!


まとめ

手順をまとめると以下のようになります。



  1. https://www.erlang-solutions.com/resources/download.html からインストーラーを含む .dmg をダウンロード

  2. ダウンロード完了後、ダブルクリックか開くなどで /Volumes/Erlang にマウントされるはず。(Erlang はバージョンによって変わるかもしれない?)

  3. 念のため /usr/sbin/pkgutil --files "com.erlang-solutions.Erlang" コマンドでインストールファイルの有無を確認


  4. $ sudo /Volumes/Erlang/uninstall.tool でアンインストーラーを実行

以上です。