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つ用意して、同じ方法で利用できる(と思われるが、試していない)。
以上。