&tag(Mac, MacPorts);
*目次 [#y271b7ce]
#contents

*参考情報 [#s1144ec4]
-[[Lion]]
-[[MacPortsの使い方まとめ | karakaram-blog:http://www.karakaram.com/mac/macports-howto/?utm_source=rss&utm_medium=rss&utm_campaign=macports-howto]]
-[[Mac OS 10.6 でMacportsを使って環境構築( Apache + MySQL + PHP +phpMyadmin) - c_mutoh’s Diary:http://d.hatena.ne.jp/c_mutoh/20110110/1294678976]]
*関連ページ [#f36e138b]
-[[./セットアップ_2011-11-05]]
-[[launchctl]]
-[[./mysql5]]
-[[./mysql5.5]]
-[[./apache2]]
-[[./php5]]
-[[./php54]]
-[[./subversion]]
-[[./python26]]
-[[./python27]]
-[[./ruby19]]
-[[./rbenv]]
-[[./rails3]]
-[[./git-core]]
-[[./zsh]]
-[[./emacs]]
-[[./tomcat6]]
-[[./Mecab]]
*インストール [#m6792b16]
-[[The MacPorts Project -- Download & Installation:http://www.macports.org/install.php]]からSnowLeopard用のdmgファイルをダウンロード。)。
-MacPorts-1.9.2-10.6-SnowLeopard.dmgをダブルクリックしてインストール。
-selfupdate実行
 sudo port selfupdate

*再インストール [#p4737967]
-削除する前にインストールされているパッケージ一覧をlist.txtに保存しておく。
-/opt/localにはカスタマイズした設定ファイルが残っている可能性があるのでリネームしたほうが安全。
#pre{{
$ port installed > list.xt
$ sudo port deactivate active
$ sudo port -f uninstall installed
$ sudo port clean all
$ sudo rm -rf /Library/Tcl/macports1.0
$ sudo mv /opt/local /opt/local.old
}}

*MacPorts自体をアンインストールする [#m29b21f6]
-[[2.5. Uninstall:http://guide.macports.org/chunked/installing.macports.uninstalling.html]]に従ってUninstallする。
#pre{{
$ 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
}}
- 以下のファイルは存在しないようだった。エラーがでた場合はその行を削除して再実行する。
#pre{{
zsh: no matches found: /Library/LaunchDaemons/org.macports.*
zsh: no matches found: /Library/Receipts/DarwinPorts*.pkg
zsh: no matches found: /Library/Receipts/MacPorts*.pkg
}}
*操作 [#da576c82]

**MacPortsを最新の状態に保つ [#k50b08e0]
***portとパッケージの更新情報を最新にする [#yd9df47a]
 sudo port selfupdate
portコマンド自体の更新とローカルにキャッシュしていあるパッケージ情報が更新される。定期的に実行しないと古いパッケージがインストールされるかもしれないという問題がある?([[Mint's log: MacPortsのselfupdateを忘れた→はまる:http://googlewhacks.blogspot.com/2009/03/macportsselfupdate.html]])。

***更新されたパッケージを表示する [#v7226e1a]
 sudo port outdated

***インストール済みソフトを全てアップデート [#jeb14667]
 sudo port upgrade installed
-古いバージョンを削除したい場合 "-u" をつける。
 sudo port upgrade  -u installed
-inactiveになったバージョンを後からアンインストールする場合以下を実行。
 sudo port uninstall inactive
**検索する [#p1e23c05]
 sudo port search <パッケージ名>

**インストールする [#m5e43cb2]
 sudo port install <パッケージ名>

**アンインストールする [#m89ab78e]
***パッケージを指定してアンインストール [#j3125007]
 sudo port uninstall <パッケージ名>
***inactiveなパッケージを削除 [#b15a7510]
 sudo port uninstall inactive
***依存関係ごと削除 [#ic96c588]
 sudo port unintall --follow-dependents <パッケージ名>


**その他 [#me7babfb]
***パッケージの内容を表示 [#z4038ad6]
 sudo port contents apr

***ファイルが含まれるを表示 [#f7a9fcf8]
 sudo port provides  ./libaprutil-1.0.dylib

**Variants [#c241e3ab]
***インストール済みパッケージのVariantsを表示する。 [#caf15f31]
-port installed <パッケージ名>で表示できる。
 port installed php5
***インストール済みパッケージのVariantsを変更する。 [#v168979a]
-port upgrade --enforce-variantsを使う。
 sudo port upgrade --enforce-variants php5 +pear
*その他 [#gf5439eb]
**Homebrewとどっちがよいか [#x242da66]
MacPortsの良い点
-オールインワン。システムのライブラリなどに極力依存しないよう作られているのでOSがバージョンアップしてもMacPortsは壊れないことも(絶対ではない)。
-/opt/localにまとめられている。/usr/localがフリーなので/usr/localに自分でコンパイルしたソフトを入れることができる。
-apache2やphpなどもパッケージがある。
-パッケージの数が多い。

MacPortsの悪い点
-依存関係が芋づる式でコンパイルに時間がかかるしHDDもくう(オールインワンであることの裏返し)。
-パッケージに手をいれるとかめんどくさすぎる。
-パスが特殊。

Homebrewの良い点
-最小限しかいれないのでコンパイルが早い。
-パッケージが新しめ(?)
-パッケージに手を入れるのが楽。Rubyだし。

Homebrewの悪い点
-/usr/localを使っちゃうので自分でコンパイルしたソフトを入れるときに困りそう。

結論。完全性を求める向きはMacPortsでいいのではないか。コンパイルに時間かかるけどHomebrewだってそれなりに時間かかる(Linuxのようにバイナリを入れるわけではないので)。

逆にもっとラフな感じで使いたい場合はHomebrewか。Rubyでいじれるのは魅力的。

*トラブルシューティング [#pfdae4d7]
**Xcode4.3でいろいろダメ(2012/02/21(火)) [#qbac1c01]
-[[Beginning OS X Lion/インフラ整備編 - Beginning OS X:http://osx.miko.org/index.php/Beginning_OS_X_Lion/%E3%82%A4%E3%83%B3%E3%83%95%E3%83%A9%E6%95%B4%E5%82%99%E7%B7%A8]]…Xcode4.3でいろいろかわったためMacPortsが完全対応するまでは手作業でいろいろやらないといけない。
-portconfigure.tclへパッチを当てる方法は、該当部分をport.patchなどと保存し、patchコマンドに-p0オプション(ディレクトリ部分を無視しない)であてるとよい。
 sudo patch -p0 < port.patch

** no dest root found at XXXといわれる。 [#s73c8b8a]
-例えば次のようなエラー。
 Error: org.macports.install for port apr returned: no destroot found at: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_apr/apr/work/destroot
-atのあとのフォルダが存在しないのが原因らしいので手動で作ったらとりあえずインストールできた。

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS