brew-fileの各コマンド
BREWFILE
: brew
でインストールされるアプリのリスト。デフォルトで/usr/local/Library/Brewfile
にある。
こんなときは...
新しいアプリを入れるとき
brew file install <Application>
OR
brew file brew cask install <Application>
アップデートをチェックするとき
brew file update && brew file cask_upgrade
現在のアプリ情報をもとに、BREWFILE
を初期化したいとき
brew file init
各コマンドの意味
brew file install
パッケージをインストールする。
--preupdate
オプションを付けると、インストール前にbrew update
する。
brew file brew
通常のbrew
コマンドを実行した後、BREWFILE
をアップデートする
brew file init / -i / --init
現在のインストール済みパッケージをもとにBREWFILE
を初期化し、アップデートする。
brew file set_repo / -s / --set_repo
BREWFILE
のレポジトリをGitHubなどにセットする。
例: brew file set_repo -r <repository>
<repository>
にはgithub
のレポジトリ名を書く(e.g. joker8phoenix/Brewfile)。
brew file pull
レポジトリのBREWFILE
を落としてくる。
brew file push
レポジトリに、ローカルのBREWFILE
をアップする。
brew file clean / -c / --clean
リストにないインストールパッケージ、リストにないタップ、キャッシュを削除する。
より強くクリーンアップしたい場合は、-C
オプションをつける。
brew file update / -u / --update
以下の一連を実行する。
1. brew file pull
: BREWFILE
を落としてくる。
2. brew file install
: リストから不足分をインストール。
3. brew update/upgrade
: パッケージのアップデート
4. brew file init
: ローカルのインストールパッケージ分を足してリストを初期化。
5. brew file push
: リストをレポジトリにアップ
6. brew file clean -C
: クリーンアップ
brew file edit / -e / --edit
ローカルのBREWFILE
を編集する。
brew file casklist
Applications
, /Applications/Utilities
, ~/Applications/
にインストールされているアプリを、Caskに存在しているかどうかでチェックして、リスト表示する。
同時に~/
にリストを保存する。
brew file cask_upgrade
cask
アプリをアップグレード。
-C
オプションを付けると、古いバージョンを削除する。
参考
sshのプロキシ環境を自動切り替え
1. 目的
自宅と職場(あるいは学校など)でノートPCを持ち歩いていると、職場のプロキシ環境に設定したりする。
たとえば、プログラム言語R
はプロキシの設定を書いておかないと、install.packages()
を使えなかったりする。
ssh
も例外ではない。プロキシ環境では、それに合わせて~/.ssh/config
などに設定をしておかなければならない。
しかし、いちいちネットワーク環境が変わるたびに設定ファイルを書き換えていては面倒である。ネットワーク環境に合わせて自動で切り替えてくれると便利だ。
特に、以前紹介した、homebrew-file
を利用する場合、この設定は有効である。
2. 方法
以前の記事
Mac のターミナルで、プロキシ設定を環境に合わせて自動切替 - joker8phoenix's diary
を拡張する。
ここでは、ターミナルを起動するたびに読み込まれる~/.bashrc
を利用する。
2.1. 準備
ここでは、例として、github.com
にssh
接続する場合を考える。
例として、
- プロキシ環境を設定したネットワーク接続名: proxy
- プロキシのアドレス: proxy.example.com
- プロキシのポート: 8080
とする。
2.1.1. ~/.ssh/config
ファイルの準備
まず、ssh
のconfig
ファイルに対して、プロキシ環境でない場合とプロキシ環境の場合の2つを準備する。
ターミナルにて
vi ~/.ssh/config_no_proxy
とし、config_no_proxy
の内容を
Host github.com
User git
Port 22
Hostname github.com
IdentityFile ~/.ssh/id_rsa
とする。
ssh
の鍵をid_rsa
としている。自身の鍵に合わせて、適宜書き換えていただきたい。
さらに、続けてターミナルにて
vi ~/.ssh/config_proxy
とし、config_proxy
の内容を
Host github.com User git Port 443 Hostname ssh.github.com IdentityFile ~/.ssh/id_rsa ProxyCommand corkscrew proxy.example.com 8080 %h %p
とする。
もし
corkscrew
をインストールしていない場合は、ターミナルにて
brew install corkscrew
として、インストールしておこう。
なお、プロキシのアドレスとポートは環境に合わせて適宜書き換えていただきたい。
さらに、ターミナルにて
cp ~/.ssh/config_no_proxy ~/.ssh/config
ln -fs ~/.ssh/config_no_proxy ~/.ssh/config
としておく。こうすることで、ssh
はconfig
を経由してconfig_no_proxy
を読み込むようになる。
2.1.2. ~/.bashrc
に記述
ターミナルにて
vi ~/.bashrc
として、その内容に以下を記述する。
############################# ### proxy trigger setting ### ############################# # 例として、 # システムのネットワーク接続環境の名前が、proxy # プロキシのアドレス: proxy.example.com # プロキシのポート: 8080 # の場合 proxy=http://proxy.example.com:8080 switch_trigger=proxy # ネットワーク接続の名前 # プロキシ環境ではない場合の設定ファイルにリンクを貼る ln -fs ~/.ssh/config_no_proxy ~/.ssh/config if [ "`networksetup -getcurrentlocation`" = "$switch_trigger" ]; then export HTTP_PROXY=$proxy export HTTPS_PROXY=$proxy export ALL_PROXY=$proxy # プロキシ環境の設定ファイルにリンクを貼る ln -fs ~/.ssh/config_proxy ~/.ssh/config fi
ターミナルを起動するたびに、
.bashrc
が読み込まれて、そのときのネットワーク環境を取得し、もしもプロキシ環境であればif
からfi
までに記述した内容が実行される。
これにより、~/.ssh/config
のシンボリックリンクは、ネットワーク環境に合わせて、適切な設定ファイルへとリンク付けされる。
以後、ssh
を利用するときにネットワーク環境を意識する必要はない。とても便利。
なお、
R
でプロキシ環境に合わせる場合は、~/.Renviron
に
http_proxy=http://proxy.example.com:8080/
を記述すると良い。これも、プロキシ用とそうでないものを2つ用意して、同じ方法で利用できる(と思われるが、試していない)。
以上。