カテゴリー
Apple

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

経緯

久しぶりに brew cask を使用しましたら、警告が出ていました。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ 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 管理のアプリをアンインストール

を参考に進めました。

1
2
3
4
5
6
7
8
# 削除される場所の状態を確認
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 をアンインストールした時は次のようになりました。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
$ # 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 でも、次のように失敗してしまいましたの><。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$ 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>
$

アンインストール用のシェルが見つからないとのことで、ディレクトリを探ってみますと、次のアンインストールシェルならば見つかりました。ですので、こちらを実行して無事アンインストール完了できました♪

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
$ 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 でも発生いたしましたので、同様に次のコマンドでアンインストールいたしました。

1
2
/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 をインストールしても同じ警告が発生する状態となってしまいましたので、ご注意!

1
2
3
4
5
6
7
8
9
10
11
12
$ # 一覧表示
$ 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 をインストール

1
2
3
4
5
# brew cask インストール
brew tap caskroom/cask
# brew を cask も含めアップデート
brew update
brew upgrade

4. brew cask 管理のアプリをインストール

1
2
3
4
# 検索
brew cask search <app>
# インストール
brew cask install <app>

インストールしたアプリは見直して、次としました。

  • evernote
  • google-japanese-ime
  • vagrant
  • virtual box
  • visual-studio-code ← New! Atom を brew cask 管理での苦い思い出は、こちらではどうか?試してみたくなった。

おわりに

以前から試行錯誤でしたけれども、やっぱり brew cask は使いづらいですの><。

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

以上です。

コメントを残す