そういえばそんな話もありましたね(苦笑)
書いた本人が忘れてるくらいだから誰も覚えてないと思うけど、「Mac OS X向けのパッケージ管理ソフトっていろいろあるよね〜」ってブログエントリを年初に書いたんだ。
で、パッケージ管理アプリをインストールする前準備(*1)までやって、満足したまま放置プレイしてしまっていたのに最近気づいた。
何事も中途半端なのは良くないよね……ってことで、とりあえず何とか完結させてみようと思うこのエントリ。とりあえずこの2エントリの続きって感じでお届けするので、このエントリの内容をお試しの際は先にそちらをご参照くださいませ。
あと全てを網羅するというより、よく使いそうなものを抜粋してまとめておくってスタンスなのでそれもヨロピク。
Macports
一番歴史があってメジャーなものを挙げろ……といわれれば、ほとんどの人がその名を挙げることだろう「Macports」。もうとりあえずMac系のネタでブログ書いてるなら、誰しも一度は書いてるんじゃないかってくらいアレなんだけど、まあ自分用メモだし書いておくよ。
Macportsをインストールするには
インストールの前提として、Xcodeがインストールされている必要がある。あとは公式サイトから自分の環境に合ったpkgファイルをダウンロードすればOK。
ボクの場合はMavericsだから「OS X 10.9 Mavericks」のリンクをクリック。
適当な場所にpkgファイルを保存する。
ダウンロードしたpkgファイルをダブルクリックしてインストーラを実行する。「続ける」をクリック。
大切な情報が表示されるのでよく読む。そして「続ける」をクリック。
使用許諾契約が表示されるのでよく読む。そして「続ける」をクリック。
同意を求められるので「同意する」をクリック。
インストール先を指定しろと言われるけど、特にこだわりがないのでそのまま「続ける」をクリック。
「インストール」をクリック。
パスワードを入れろと言われるので、素直に入れて「ソフトウェアをインストール」をクリック。
しばらく待つ。結構時間がかかるので待つ。
インストールが完了したら「閉じる」をクリック。
これで後はターミナル(*2)あたりからゴニョゴニョすればOK
Macportsでインストール可能なパッケージの一覧を確認するには
下記コマンドを実行すればOK。沢山出てくるのでgrepとかとの併用が必要。
$ port list
Macportsのパッケージを探すには
下記のコマンドを実行すればOK。たとえば、「PHP」関連のパッケージを探したければ、「port search php*」とすれば出てくる(*3)。一杯出てくるからgrepとかとの併用を推奨。
$ port search {検索したいパッケージ名(一部でもOK)}
Macportsのパッケージについて詳細を調べるには
下記のコマンドを実行すればOK。例えば、「port info php」とかすればいい。
$ port info {詳細を知りたいパッケージ名}
Macportsのパッケージをインストールするには
下記コマンドを実行するだけ。例えば「sudo port install php」ってかんじ。
$ sudo port install {インストールしたいパッケージ名}
Macportsのパッケージをアップデートするには
下記のコマンドを実行すればいい。ただし、これは更新可能な全てのパッケージを更新する点に注意。
$ sudo port upgrade outdated
古いバージョンのパッケージは残ったままなので、ディスク容量が気になる場合は下記のコマンドを実行すればいい
$ sudo port uninstall inactive
Macportsのインストール済みパッケージの一覧を確認するには
下記のコマンドを実行すればOK。場合によってはgrepとかを合わせて使った方がいいかも。
$ port installed
Macportsのパッケージをアンインストールするには
下記のコマンドを実行すればOK。
$ sudo port uninstall {アンインストールしたいパッケージ名}
Macports自体をアップデートするには
下記のコマンドを実行すればOK。
$ sudo port selfupdate
Macports自体をアンインストールするには
まずはインストール済みのパッケージを削除する。
$ sudo port -fp uninstall installed
続いて下記コマンドでMacports自体を削除。
$ 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によって変更されたdotfilesは別名でコピーされる形でバックアップされているので、簡単に戻せる。
Homebrew
ちょっと調べた限りだとここ最近人気なのはこれかな。ボクがいろんな人にオススメされるのも大抵はこれ。一応Macportsよりもパッケージ数は少ないとかあるみたい(*4)だけど、普段使いには気にならない範囲っぽいね。
Homebrewをインストールするには
下記のコマンドを実行すればOK。途中でキー入力を求められたりするけど、基本的には見てるだけ。
$ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
その後に下記のコマンドを実行しろと言われるので実行する。あと、表示される内容に従って必要な作業があれば実施する。
$ brew doctor
Homebrewでインストール可能なパッケージの一覧を確認するには
下記コマンドを実行すればOK。沢山出てくるのでgrepとかとの併用が必要。
$ brew search
Homebrewのパッケージを探すには
下記のコマンドを実行すればOK。例えば「brew search nmap」のようにすればOK。
$ brew search {パッケージ名}
Homebrewのパッケージについて詳細を調べるには
下記のコマンドを実行すればOK。例えば「brew info nmap」的な。
$ brew info{パッケージ名}
Homebrewのパッケージをインストールするには
下記コマンドを実行するだけ。
$ brew install {パッケージ名}
ただし、場合によってはパッケージ名が「josegonzalez/php/php56」みたいに表示されているものがあって、それをインストールしようとすると「Please tap it and then try again: brew tap josegonzalez/php」的なメッセージが表示されてインストールできなかったりする。メッセージの通りのコマンドを実行してからやればうまくいくはず。
CentOS脳なボクの理解だと、このtapコマンドとやらはレポジトリの追加ってところか。CentOS-Baseだけじゃ足りないからEPELとかRPMForgeとかを追加する的な。
Homebrewのパッケージをアップデートするには
下記のコマンドを実行すればいい。ただし、これは更新可能な全てのパッケージを更新する点に注意。
$ brew upgrade
Homebrewのインストール済みパッケージの一覧を確認するには
下記のコマンドを実行すればOK。場合によってはgrepとかを合わせて使った方がいいかも。
$ brew list
Homebrewのパッケージをアンインストールするには
下記のコマンドを実行すればOK。例えば「brew uninstall nmap」的な感じ。ただし、依存関係にあるパッケージはアンインストールされないっぽい。例示すれば「nmap」との依存関係でインストールされる「openssl」は別途アンインストールする必要がある(*5)。
$ brew uninstall {パッケージ名}
Homebrew自体をアップデートするには
下記のコマンドを実行すればOK。
$ brew update
Homebrew自体をアンインストールするには
gistでアンインストール用のコードが公開されているのでそれを使う。
他にもあるっぽいけども……
だいたいMacportsかHomebrewかの2択な訳なんだけど、一応他にもあるみたいだね。さすがにボクは手を出さないけど、興味ある人は冒頭に載っけた別エントリとかを辿って調べてみるとイイよ。
*1:Xcodeのインストールまでってことね
*2:いわゆる黒い画面ね
*3:「*」なしで検索すると、とにかく「PHP」という文字が説明とかに含まれているものが表示されてくるので結構アレ
*4:冒頭に掲載した過去のエントリを参照すると、ボクじゃ無い人が作った各パッケージ管理アプリの違いについてまとめられたスライドをチェックできるよ!
*5:先にopensslをアンインストールしてもnmapは削除されないっぽいので、その当たりがメンドイね(´・ω・`)