MacPorts をアンインストールして Homebrew に戻す
スポンサーリンク
Inkscapeは仮想マシンでビルドすることにしたので、MacPortsからHomebrewへ。
継続的にメンテナンスされているパッケージと、そうでないパッケージの落差が激しいので。
Homebrewも問題がないとは言わないが、Bazaarとか一年前に2.7が出ているのに2.6のままだったり、しかもPythonのバージョンとの組み合わせでバグに遭遇するとか踏んだり蹴ったり。
あとは日本語のMacPortsの情報についてのWikiがちゃんと表示されないまま放置されていたりとか*1。
ツールなりライブラリをインストールしたいのであって、issueトラッカーへのバグ報告がしたいわけじゃないので。
もちろんライブラリの共存機構やコンパイラの切り替えなどMacPortsにも長所はあります。ただ、それは私の求めているものではないいという話。
MacPorts のアンインストール
下記の公式の説明通りにすればよい。
$ sudo port -fp uninstall installed
いつも通りパスワードを訊いてくるので素直に入力。
続いて残りの関連ファイルを削除。
$ sudo rm -rf \ /opt/local \ /Applications/DarwinPorts \ /Applications/MacPorts \ /Library/LaunchDaemons/org.macports.* \ /Library/Receipts/DarwinPorts*.pkg \ /Library/Receipts/MacPorts*.pkg \ /Library/StartupItems/DarwinPortsStartup \ /Library/Tcl/darwinports1.0 \ /Library/Tcl/macports1.0 \ ~/.macports
最後に.bash_profile
などの設定ファイルをチェックする。 MacPortsをインストールする前の.bash_profile
が.bash_profile.macports-saved_<日付>_at_<時刻>
という形式のフィアイルに保存されているので比較したうえでMacPorts向けの設定を削除する。
私の環境ではファイルの末尾にコメントとともに記載されていたPATH
を設定するためのexport
で始まる行を削除しただけ。
Homebrew のインストール
数ヶ月ぶりに復帰、です。
これも公式ページのとおりに。
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
内部でsudo
が実行されてパスワードを聞いてくるので素直に入力。
最終的に以下のメッセージが表示されるはず。
==> Installation successful! ==> Homebrew has enabled anonymous aggregate user behaviour analytics. Read the analytics documentation (and how to opt-out) here: https://git.io/brew-analytics ==> Next steps: - Run `brew help` to get started - Further documentation: https://git.io/brew-docs
メッセージの内容通り、ユーザーの行動についての情報を収集しているそうなのでオプトアウトする。
$ brew analytics off
もしくは環境変数HOMEBREW_NO_ANALYTICS
に"1"をセット。
環境によっては/usr/local
配下に管理者権限で作成されたファイル、ディレクトリが存在する場合があるので権限を変更しておく。
$ sudo chown -R $(whoami):admin /usr/local/
追加でインストールするもの
よく使うものをインストール。
$ brew update $ brew install lv the_silver_searcher tmux git cmake p7zip hub wget bash nkf
Python
Pythonはpyenv
で切り替える。
$ brew install pyenv pyenv-virtualenv
ついでにpyenv-virtualenv
もインストールしておく。
~/.bash_profile
に下記を追加する(環境によっては~/.profile
)。
export PATH="$HOME/.pyenv/bin:$PATH" eval "$(pyenv init -)"
$ pyenv install --list
Bash の入力補完
/usr/local/etc/bash_completion.d/
配下に補完用の設定ファイルがインストールされるので、~/.bashrc
に設定を追加。
インストール済みのパッケージによって存在するもののみ読み込むようにする。
[2017/03/03 追記]
bash-completion
というパッケージを入れておかないとタブキーで入力補完を実行するたびに下記のようにエラーが出る。
-bash: _get_cword: command not found -bash: _expand: command not found
日本語の場合:
bash: _get_cword: コマンドが見つかりません bash: _expand: コマンドが見つかりません
パッケージを追加でインストール。
$ brew install bash-completion
出力されるメッセージのの内容を~/.bash_profile
もしくは~/.bashrc
に追加。
[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion
c.f. Go 付属のcompletion使うと _get_cword: command not found
エラーになる - libqtkmz
[追記ここまで]
$ vim ~/.bashrc
source /usr/local/etc/bash_completion.d/ag.bashcomp.sh source /usr/local/etc/bash_completion.d/brew source /usr/local/etc/bash_completion.d/git-completion.bash source /usr/local/etc/bash_completion.d/git-prompt.sh source /usr/local/etc/bash_completion.d/tmux source /usr/local/etc/hub.bash_completion.sh
私の環境では~/.bash_profile
から~/.bashrc
を読み込むようにしています。RedHat系Linuxを使っていた頃の名残というか癖というか。
alias
とか環境変数周りは.bashrc
に設定するようにしています(bashの起動時に設定したいもの)。
まとめ
それぞれ一長一短あるように思いますが、