Redmine から full_text_search プラグインをアンインストールする手順
目的
apt upgrade に失敗するようになった復旧対応
- エラー内容
Redmineのプラグインが原因で apt = dpkg が壊れることがある
dpkg: error processing package python-pkg-resources (--remove):
dependency problems - not removing
Errors were encountered while processing:
gyp
python-pkg-resources
上記のエラーでaptアップデートに失敗する場合は、mroonga関連のパッケージとRedmineのmroongaプラグインを削除後に、再度アップデート(apt update / apt upgrade)すれば解決した。
インターネットで検索してもアンインストール手順が纏められた情報がなかったので、備忘録としてブログにしておく。
※ ubuntu のパッケージで Redmine インストールした前提の手順です
sudo 権限のあるユーザーでログイン
ubuntuの場合は 「ubuntu」ユーザー等の sudo権限のあるユーザーでログインしている前提とする。
Redmineはデフォルトのインストール場所 /usr/share/redmine に格納されている前提とする
cd /usr/share/redmine
bundle exec 実行
依存関係を更新する。
sudo bundle exec rake redmine:plugins:migrate NAME=full_text_search VERSION=0 RAILS_ENV=production
pluginのファイルをディレクトリごと移動する
不具合が発生したときに戻せるように、下記はHOMEディレクトリにバックアップする。
cd plugins
mkdir -p ~/backup/redmine-plugins
sudo mv full_text_search ~/backup/redmine-plugins
Mroongaを継続利用する場合は再インストール
- Mroonga
Mroonga のインストール手順は公式等で公開されている
Mroongaブログ
- full_text_search プラグイン公式
https://www.redmine.org/plugins/full_text_search
追記:Mroongaのインデックスが生成されたテーブルをSelectやmysqldumpで出力するとエラーになる場合の対策
Mroongaをアンインストールした後も、既存のテーブルがMroongaで印デックスされているとSelectやmysqldumpでテーブル参照(射影)ができなくなる場合がある。
対策
- テーブルに登録されたEngine(Mroonga)を、AlterやUpdateで強制的に上書きしてもエラーは修復できない
- Mroongaを再インストールすると再度テーブル参照できるようになる
- mysqldumpで対象のDBを出力してから、mysql(or mariadb)をアンインストールして、データディレクトリ(/var/lib/mysql等)を物理削除してから、mysqlを再インストールする