経緯
久しぶりに brew cask を使用しましたら、警告が出ていました。
$ brew cask list Warning: The default Caskroom location has moved to /usr/local/Caskroom. Please migrate your Casks to the new location and delete /opt/homebrew-cask/Caskroom, or if you would like to keep your Caskroom at /opt/homebrew-cask/Caskroom, add the following to your HOMEBREW_CASK_OPTS: --caskroom=/opt/homebrew-cask/Caskroom For more details on each of those options, see https://github.com/caskroom/homebrew-cask/issues/21913. adobe-photoshop-lightroom evernote skitch android-studio filezilla sophos-anti-virus-home-edition (!) appcleaner google-chrome vagrant coconutbattery google-japanese-ime virtualbox $
これに対処したいと存じます。
手順概要
- brew cask 管理のアプリをアンインストール
- brew cask をアンインストール
- brew cask をインストール
- brew cask 管理のアプリをインストール
上記手順に至るまでの調査
Warning を見ますと、/opt/homebrew-cask/Caskroom を /usr/local/Caskroom に移動すれば良さそうです。そのコマンドは、mv /opt/homebrew-cask/Caskroom /usr/local
となりますわね。
警告にある参考ページにもそのような記述がございます。
ですけれども、このページを読みますと brew cask uninstall
で問題が発生したり、その他に工夫が必要だったりと、複雑です。
ですので、brew cask 自身と管理しているアプリを入れなおすことといたしました。
1. brew cask 管理のアプリをアンインストール
を参考に進めました。
# 削除される場所の状態を確認 ls -al /opt/homebrew-cask/Caskroom/ # 強制的にでもアンインストール brew cask uninstall --force # アンインストールできないなら関連ファイルの全削除 brew cask zap # 削除されたことを確認 ls -al /opt/homebrew-cask/Caskroom/
1-2. brew cask によるアンインストールの結果
例えば、Android Studio をアンインストールした時は次のようになりました。
$ # brew cask でインストールされているものの一覧を確認 $ brew cask list ... Warning 省略 ... adobe-photoshop-lightroom evernote sophos-anti-virus-home-edition (!) android-studio google-chrome vagrant appcleaner google-japanese-ime virtualbox coconutbattery skitch $ $ # 削除される場所の状態を確認 $ ls -al /opt/homebrew-cask/Caskroom/ ... 略 ... drwxr-xr-x 5 oki2a24 staff 170 12 11 2015 android-studio ... 略 ... $ $ # 通常のアンインストールを試すが、ダメ $ brew cask uninstall android-studio ... Warning 省略 ... Error: android-studio is not installed $ $ # --force オプションを付けても、ダメ $ brew cask uninstall --force android-studio ... Warning 省略 ... $ $ # zap で関連ファイルをすべて削除 $ brew cask zap android-studio ... Warning 省略 ... ==> Dispatching zap stanza ==> Running zap process for android-studio; your password may be necessary ==> Removing files: ["~/Library/Preferences/AndroidStudio2.1", "~/Library/Preferences/com.google.android.studio.p ==> Removing directory if empty: /Users/oki2a24/AndroidStudioProjects ==> Removing all staged versions of Cask 'android-studio' $ $ # 削除されたことを確認 $ ls -al /opt/homebrew-cask/Caskroom/ ... android-studio がなくなっていることを確認した ... $
- brew cask uninstall で削除できたアプリ: skitch, google-chrome, googlce-japanese-ime
- brew cask uninstall –force で削除できたアプリ: evernote, sophos-anti-virus-home-edition
また、adobe-photoshop-lightroom は brew cask zap
後もアプリケーションディレクトリに Adobe Photoshop Lightroom 5.app が残ってしまいました。ですので直にこのファイルのみ削除いたしました。
sophos-anti-virus-home-edition では、上部メニューやサービスが残ったりと不完全でした。次のページの方法で、無事にアンインストールすることができましたわ♪
なお、いずれの方法でアンインストールしても、Launchpad には残ってしまいました。
1-3. 特別難しかった virtualbox と vagrant のアンインストール
また、virtualbox はとても苦労しました。brew cask zap でも、次のように失敗してしまいましたの><。
$ brew cask zap virtualbox ==> Implied "brew cask uninstall virtualbox" ==> Running uninstall process for virtualbox; your password may be necessary ==> Running uninstall script VirtualBox_Uninstall.tool ... Warning 省略 ... ==> sudo: /opt/homebrew-cask/Caskroom/virtualbox/5.1.2-108956/VirtualBox_Uninstall.tool: command not found Error: Command failed to execute! ==> Failed command: ["/usr/bin/sudo", "-E", "--", "#<Pathname:/opt/homebrew-cask/Caskroom/virtualbox/5.1.2-108956/VirtualBox_Uninstall.tool>", "--unattended"] ==> Standard Output of failed command: ==> Standard Error of failed command: sudo: /opt/homebrew-cask/Caskroom/virtualbox/5.1.2-108956/VirtualBox_Uninstall.tool: command not found ==> Exit status of failed command: #<Process::Status: pid 6231 exit 1> $
アンインストール用のシェルが見つからないとのことで、ディレクトリを探ってみますと、次のアンインストールシェルならば見つかりました。ですので、こちらを実行して無事アンインストール完了できました♪
$ opt/homebrew-cask/Caskroom/virtualbox/5.0.20-106931/VirtualBox_Uninstall.tool Welcome to the VirtualBox uninstaller script. The following files and directories (bundles) will be removed: /usr/local/bin/VirtualBox /usr/local/bin/VBoxManage /usr/local/bin/VBoxVRDP /usr/local/bin/VBoxHeadless /usr/local/bin/vboxwebsrv /usr/local/bin/VBoxBalloonCtrl /usr/local/bin/VBoxAutostart /usr/local/bin/VBoxDTrace /usr/local/bin/vbox-img /Library/LaunchDaemons/org.virtualbox.startup.plist /Library/Python/2.6/site-packages/vboxapi/VirtualBox_constants.py /Library/Python/2.6/site-packages/vboxapi/VirtualBox_constants.pyc /Library/Python/2.6/site-packages/vboxapi/__init__.py /Library/Python/2.6/site-packages/vboxapi/__init__.pyc /Library/Python/2.6/site-packages/vboxapi-1.0-py2.6.egg-info /Library/Python/2.7/site-packages/vboxapi/VirtualBox_constants.py /Library/Python/2.7/site-packages/vboxapi/VirtualBox_constants.pyc /Library/Python/2.7/site-packages/vboxapi/__init__.py /Library/Python/2.7/site-packages/vboxapi/__init__.pyc /Library/Python/2.7/site-packages/vboxapi-1.0-py2.7.egg-info /Library/Application Support/VirtualBox/LaunchDaemons/ /Library/Application Support/VirtualBox/VBoxDrv.kext/ /Library/Application Support/VirtualBox/VBoxUSB.kext/ /Library/Application Support/VirtualBox/VBoxNetFlt.kext/ /Library/Application Support/VirtualBox/VBoxNetAdp.kext/ /Applications/VirtualBox.app/ /Library/Python/2.6/site-packages/vboxapi/ /Library/Python/2.7/site-packages/vboxapi/ And the following KEXTs will be unloaded: org.virtualbox.kext.VBoxUSB org.virtualbox.kext.VBoxNetFlt org.virtualbox.kext.VBoxNetAdp org.virtualbox.kext.VBoxDrv And the traces of following packages will be removed: org.virtualbox.pkg.vboxkexts org.virtualbox.pkg.virtualbox org.virtualbox.pkg.virtualboxcli Do you wish to uninstall VirtualBox (Yes/No)? Yes The uninstallation processes requires administrative privileges because some of the installed files cannot be removed by a normal user. You may be prompted for your password now... Please enter oki2a24's password: unloading org.virtualbox.kext.VBoxUSB unloading org.virtualbox.kext.VBoxNetFlt unloading org.virtualbox.kext.VBoxNetAdp unloading org.virtualbox.kext.VBoxDrv Successfully unloaded VirtualBox kernel extensions. Forgot package 'org.virtualbox.pkg.vboxkexts' on '/'. Forgot package 'org.virtualbox.pkg.virtualbox' on '/'. Forgot package 'org.virtualbox.pkg.virtualboxcli' on '/'. Done. $
結果、アプリケーションディレクトリからは消えたのですけれども、/opt/homebrew-cask/Caskroom にはまだ残っていました。試しに再度 VirtualBox_Uninstall.tool を実行してみますと、削除対象がすでに無くなっていると表示されました。
ですので、問題ないであろうと考え、rm -rf /opt/homebrew-cask/Caskroom/virtualbox
で削除いたしました。
同様のことが vagrant でも発生いたしましたので、同様に次のコマンドでアンインストールいたしました。
/opt/homebrew-cask/Caskroom/vagrant/1.8.1/uninstall.tool rm -rf /opt/homebrew-cask/Caskroom/vagrant/
2. brew cask をアンインストール
- brew tapとは – Qiita
- brew/brew-tap.md at master · Homebrew/brew
- Homebrew CaskのCaskroomの場所が変わったり色々変更があった
を参考に次のようにして削除いたしましたの。
なお、最後の /opt/homebrew-cask/ を行いませんと、再度 brew cask をインストールしても同じ警告が発生する状態となってしまいましたので、ご注意!
$ # 一覧表示 $ brew tap caskroom/cask homebrew/core $ $ # cask を削除 $ brew untap caskroom/cask Untapping caskroom/cask... (3,914 files, 73.7M) Untapped 1 formula $ $ # 今までの cask 管理場所を削除 $ sudo rm -rf /opt/homebrew-cask/
3. brew cask をインストール
# brew cask インストール brew tap caskroom/cask # brew を cask も含めアップデート brew update brew upgrade
4. brew cask 管理のアプリをインストール
# 検索 brew cask search <app> # インストール brew cask install <app>
インストールしたアプリは見直して、次としました。
- evernote
- google-japanese-ime
- vagrant
- virtual box
- visual-studio-code ← New! Atom を brew cask 管理での苦い思い出は、こちらではどうか?試してみたくなった。
おわりに
以前から試行錯誤でしたけれども、やっぱり brew cask は使いづらいですの><。
今回のアップデートで使いやすくなったのかしら?
以上です。