カテゴリー
Apple

Home-brew Cask の管理ディレクトリ変更の警告に対処した記録

経緯

久しぶりに 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
$

これに対処したいと存じます。

手順概要

  1. brew cask 管理のアプリをアンインストール
  2. brew cask をアンインストール
  3. brew cask をインストール
  4. 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 をアンインストール

を参考に次のようにして削除いたしましたの。

なお、最後の /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 は使いづらいですの><。

今回のアップデートで使いやすくなったのかしら?

以上です。

コメントを残す