#author("2017-03-02T13:28:32+09:00","default:wikiwriter","wikiwriter") &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]] **インストールするもの [#k9f8dd8e] -[[./emacs]] -[[./mysql5.5]] -[[./apache2]] **過去の遺産 [#t6053abb] -[[./mysql5]] -[[./php5]] -[[./php54]] -[[./subversion]] -[[./python26]] -[[./python27]] -[[./ruby19]] -[[./rbenv]] -[[./rails3]] -[[./git-core]] -[[./zsh]] -[[./tomcat6]] -[[./Mecab]] -[[./postgresql]] -[[./ImageMagick]] *インストール [#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 -xcode 4以降以下のコマンドの実行が必要。 xcodebuild -license *再インストール [#p4737967] -OSがバージョンアップした時は再インストールしたほうが良い。[[【Tips】「MacPorts」の調子が悪い時は再インストールしたほうが良い!?:http://www.softantenna.com/wp/mac/macports-reinstall/]] -削除する前にインストールされているパッケージ一覧を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 }} *macOSアップグレード時のアップグレード手順 [#eec34ed8] -[[Migration – MacPorts:https://trac.macports.org/wiki/Migration]]に従う。 **手順 [#wf2410cd] -最新版のバイナリパッケージのインストール。 -macports.conf.defaultをmacports.confにコピー。 -インストール済みのパッケージ一覧を保存 port -qv installed > myports.txt -requrestedパッケージの一覧を保存(自分で明示的に指定したもの) port echo requested | cut -d ' ' -f 1 > requested.txt -パッケージをアンインストール sudo port -f uninstall installed -その他ファイルを削除 sudo rm -rf /opt/local/var/macports/build/* -tclスクリプトを利用してインストール #pre{{ curl --location --remote-name \ https://github.com/macports/macports-contrib/raw/master/restore_ports/restore_ports.tcl chmod +x restore_ports.tcl sudo ./restore_ports.tcl myports.txt }} -requested状態を復帰 sudo port unsetrequested installed xargs sudo port setrequested < requested.txt ※最後の2つの手順はやめて自力でインストールしなおしてもよいかも。 *MacPorts自体をアンインストールする [#m29b21f6] -[[2.5. Uninstall:http://guide.macports.org/chunked/installing.macports.uninstalling.html]]に従ってUninstallする。 #pre{{ sudo port -fp uninstall installed sudo /bin/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 }} -結局以下のコマンドで削除できる。 #pre{{ sudo /bin/rm -rf \ /opt/local \ /Applications/DarwinPorts \ /Applications/MacPorts \ /Library/StartupItems/DarwinPortsStartup \ /Library/Tcl/darwinports1.0 \ /Library/Tcl/macports1.0 \ ~/.macports }} *操作 [#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 ***個別ソフトをアップデート [#o6e8d801] -通常の方法 sudo port upgrade emacs -古いバージョンを削除したい場合 "-u"をつける sudo port upgrade -u emacs **パッケージを検索する [#p1e23c05] -searchコマンドでさがせる sudo port search <パッケージ名> **ファイルが含まれているパッケージを検索 [#b9203a67] -providesコマンドを使用する sudo provides <ファイル名> **一覧表示 [#o8033735] -listコマンドで全パッケージ一覧 sudo port list -インストル済みパッケージ一覧 sudo port list installed **インストールする [#m5e43cb2] sudo port install <パッケージ名> ***過去のバージョンをインストールする [#i4ebe587] -[[gdb - Specify which version to install with macports - Stack Overflow:http://stackoverflow.com/questions/5235215/specify-which-version-to-install-with-macports]]によると「port install ポート名 @バージョン番号」で過去のバージョンをインストール可能。ただし過去のバージョン一覧を取得するのにはtrackのlogを確認するしかない? sudo port install zmq @3.2.2 ***過去のバージョンに切り替える [#y8147bad] -過去のバージョンの一覧表示 sudo port installed imagemagick -過去のバージョンへの切り替え sudo port activate ImageMagick @6.9.4-4_0+x11 **アンインストールする [#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 **インストールしたportのリストを保存 [#i17d58fc] -依存関係を含めて保存 sudo port installed > list.txt -自分が明示的にインストールしたportのみを保存 sudo port installed requested > requested_list.txt **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のあとのフォルダが存在しないのが原因らしいので手動で作ったらとりあえずインストールできた。