LoginSignup
24
27

More than 5 years have passed since last update.

brew-cask でのインストール先を変更する際に発生するシンボリックリンクの問題

Last updated at Posted at 2016-06-14

Caskroom の場所の変更

Caskroom の場所が /opt/homebrew-cask/Caskroom から /usr/local/Caskroom へ変更

brew cask doctor などで以下の Warning を確認.

==> Homebrew-cask Install Location:
<NONE>
Warning: The default Caskroom location has moved to /usr/local/Caskroom.

Please migrate your Casks to the new location, 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.

Warningの内容から対応としては以下の二択.

  • --caskroom=/opt/homebrew-cask/Caskroom オプションを付けて従来の場所(/opt/homebrew-cask/Caskroom)を使用
  • /opt/homebrew-cask/Caskroom から /usr/local/Caskroom へファイルを移行

ファイル移行時に生じた問題

GitHubのIssues では簡単な移行方法として

mv /opt/homebrew-cask/Caskroom /usr/local

を紹介していたが,実行すると brew-cask で入れたものが使用不可.

目に見えた症状としては,以下の通り.

  • Lanchpad,Dock で app が見つからない
  • Alfred から app が見つからず,はてなマークが出ている

brew-cask で入れた app のシンボリックリンクの参照先を変更していないのが原因.

解決策

以下の手順により,問題は解決.

シンボリックリンクを修正.

以下のシェルスクリプトを実行.
IFS(区切り文字)を関数のスコープの中で収めて無名関数として実行(zsh).

() {
  local IFS=$'\n'
  local cask_app_symboliclink_dir=$HOME/Applications
  local old_room=/opt/homebrew-cask
  local new_room=/usr/local

  for dest in `\ls -d $cask_app_symboliclink_dir/*.app`; do
    if [ -h $dest ]; then
      src=`readlink $dest | sed -e "s@$old_room@$new_room@"`
      sudo ln -sf $src $dest
    fi
  done
}

Lanchpad および Dock の正常動作確認.

Alfred の設定を修正

次に Alfred を起動.Lanchpadから,またはopen "/usr/local/Caskroom/alfred/<お使いのversion>/Alfred 2.app/Contents/Preferences/Alfred Preferences.app" で Alfred Preferences が起動.

  1. Features -> Search Scope の +ボタン をクリック
  2. Command + Shift + G で /usr/local/Caskroom を入力,追加
  3. /opt/homebrew-cask/Caskroom にカーソルを合わせて delete キーで削除

Alfred の正常動作確認.

以上で新しい Caskroom への移行完了.

24
27
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
27