LoginSignup
2
0

More than 5 years have passed since last update.

homebrewでrabbitmqのクリーンアップ

Last updated at Posted at 2017-12-18

homebrewでrabbitmqのバージョンアップをしようと思ったら、かなりつまづいたので、homebrew環境における環境のクリーンアップに簡単に触れておく。

発生した前後関係

brew upgrade rabbitmq

でrabbitmq3.6.6 -> rabbitmq3.7.0へのアップグレードを行いました。また、そこから、gitを使って、3.6.14や3.6.12などのバージョンを入れ、複数の環境が混在する環境が出来上がってしまっていました。

エラーの内容

brew services start rabbitmq

では正常にスタートしたように見えるのですが、/usr/local/sbinの下にあるユーティリティを使うとnodeが動いていないことがわかる。実際に、brewを使わず、rabbitmq-serverだけを動かすと

$ /usr/local/sbin/rabbitmq-server

  ##  ##
  ##  ##      RabbitMQ 3.7.0. Copyright (C) 2007-2017 Pivotal Software, Inc.
  ##########  Licensed under the MPL.  See http://www.rabbitmq.com/
  ######  ##
  ##########  Logs: /usr/local/var/log/rabbitmq/rabbit@localhost.log
                    /usr/local/var/log/rabbitmq/rabbit@localhost_upgrade.log

              Starting broker...
{"Kernel pid terminated",application_controller,"{application_start_failure,rabbit,{{schema_integrity_check_failed,[{table_attributes_mismatch,rabbit_exchange,[name,type,durable,auto_delete,internal,arguments,scratches,policy,operator_policy,decorators,options],[name,type,durable,auto_delete,internal,arguments]}]},{rabbit,start,[normal,[]]}}}"}

Crash dump is being written to: /usr/local/var/log/rabbitmq/erl_crash.dump...done

上記のように"Kernel pid terminated"というエラーが出ます。/usr/local/var/log/rabbitmq/err_crash.dumpをみても、同じエラーが見つかるだけでこれ以上の情報がでてきません。

/usr/local/var/log/rabbitmq/rabbit@localhost.logというファイルもあり、こちらを見ると、"schema_integrity_check_failed"というエラーメッセージが出てきます。

結局、バージョン情報が錯綜していることが原因っぽいので、brewでのrabbitmqのクリーンインストールをする必要が出てきました。

brewにおけるrabbitmqのクリーンインストール

Stack Overflow等で解決策を探すも、情報が色々なところに散らばっていたので、トライアンドエラーで環境をクリーンアップすることに・・。結局、以下を実行したらうまく動きました。

$ brew uninstall rabbitmq
$ brew cleanup -s
$ rm -rf /usr/local/var/rabbitmq/
$ rm -rf /usr/local/var/lib/rabbitmq
$ rm -ff /usr/local/var/log/rabbitmq
$ rm -rf /usr/local/etc/rabbitmq
$ brew install rabbitmq

ポイントは、/usr/local/var(特にlib)の下に色々と展開されていて、それらはuninstall後も残ること。これらをちゃんと削除しないと上記のようなエラーが出る場合があるようです。

brew cleanup -sは一回ダウンロードしたインストールパッケージを削除するコマンド、これを実行するとパッケージのダウンロードから再度やり直すことができます(が、今回のエラーとは関係なさそうです)。

他のパッケージでもクリーンインストールしたいときに参考になるかも。。。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0