経緯
久しぶりに 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 は使いづらいですの><。
今回のアップデートで使いやすくなったのかしら?
以上です。
