rcmdnk's blog

The Cask of Amontillado II (English Edition)

Brew-caskでインストールするアプリは通常 HOME下の~/Applicationsの方へリンクが貼られますが、 一部のアプリは/Applicationsの方に無いと動かないので 強制的にそこにもコピーを作ったりすることがあります。

今更移動させるのもあれだな、と思ってましたが、 色々不便が増える前に移しておこう、ということで 全部移動させました。

HOMEBREW_CASK_OPTS

Brew-caskでは--appdir=/path/to/dirの様にしてコマンドに直接引数として渡すか、 HOMEBREW_CASK_OPTSという環境変数にそのような引数を書いておくと ~/Applicationsの代わりにそちらにアプリのリンクを貼るようになります 1

ということで、~/.bashrc等に

export HOMEBREW_CASK_OPTS="--appdir=/Applications"

を追加しておけば、今後Brew-caskでインストールされるアプリは /Applicationsにリンクが貼られる様になります。

すでにインストールされたアプリの移動

一度全部アンインストールしてインストールし直すかな、とか思いましたが、 通常の実体の場合でもただ移動させただけでも不具合が起こることは 殆どないでしょうし、 Brew-caskは単にリンクを置いてるだけなので、そのリンクを直接手で移動させました。

こんな感じのコマンド:

for a in ~/Applications/*.app;do link=$(readlink "$a");if [ $? -eq 0 ];then app=$(basename "$a");if [ -e "/Applications/$app" ];then printf "\e[31m/Applications/$app already exists!\n\e[m";else ln -s "$link" /Applications/"$app";fi;fi;done

基本、リンクなのはBrew-caskのアプリなのでリンクを削除して /Applicationsに作り直し。 (単にmvでも良かったかも。)

行ごとに直すとこんな感じ。

moveCaskApp.sh
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/env bash
for a in ~/Applications/*.app;do
  link=$(readlink "$a")
  if [ $? -eq 0 ];then
    app=$(basename "$a")
    if [ -e "/Applications/$app" ];then
      printf "\e[31m/Applications/$app already exists!\n\e[m"
    else
      ln -s "$link" /Applications/"$app"
    fi
  fi
done

1つ、 HyperSwitch/Applicationsに在ることが必須で、最初にアプリを起動後に そこにコピーを作っていたので上のalreaady exists が出ましたが、 それ以外は移動出来ました。

HyperSwitchに関してもできてたコピーは消して、

$ ln -s /opt/homebrew-cask/Caskroom/hyperswitch/latest/HyperSwitch.app  /Applications/HyperSwitch.app

と手動で設定。

取り敢えず何かおかしくなったら入れなおしたりすれば良いとして、 今のところ問題なく動いてます。

Sponsored Links
Sponsored Links

« Macのデフォルトメーラーをブラウザ上のGmailにする Travis CIを使ってブログのリンクチェックを自動化する »

}