Tag: Mac MacPorts

目次

参考情報

関連ページ

インストールするもの

過去の遺産

インストール

  • The MacPorts Project -- Download & InstallationからSnowLeopard用のdmgファイルをダウンロード。)。
  • MacPorts-1.9.2-10.6-SnowLeopard.dmgをダブルクリックしてインストール。
  • selfupdate実行
    sudo port selfupdate
  • xcode 4以降以下のコマンドの実行が必要。
    xcodebuild -license

再インストール

  • OSがバージョンアップした時は再インストールしたほうが良い。【Tips】「MacPorts」の調子が悪い時は再インストールしたほうが良い!?
  • 削除する前にインストールされているパッケージ一覧をlist.txtに保存しておく。
  • /opt/localにはカスタマイズした設定ファイルが残っている可能性があるのでリネームしたほうが安全。
    $ 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アップグレード時のアップグレード手順

手順

  • インストール済みのportのリストを取得するところまではOSアップグレード前に実行すること(アップグレード後に既存のportが動かなくなるかもしれないので)。
  • 最新版のバイナリパッケージのインストール。
  • 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スクリプトを利用してインストール
    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自体をアンインストールする

  • 2.5. Uninstallに従ってUninstallする。
    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
    
  • 以下のファイルは存在しないようだった。エラーがでた場合はその行を削除して再実行する。
    zsh: no matches found: /Library/LaunchDaemons/org.macports.*
    zsh: no matches found: /Library/Receipts/DarwinPorts*.pkg
    zsh: no matches found: /Library/Receipts/MacPorts*.pkg
    
  • 結局以下のコマンドで削除できる。
    sudo /bin/rm -rf \
        /opt/local \
        /Applications/DarwinPorts \
        /Applications/MacPorts \
        /Library/StartupItems/DarwinPortsStartup \
        /Library/Tcl/darwinports1.0 \
        /Library/Tcl/macports1.0 \
        ~/.macports
    

操作

MacPortsを最新の状態に保つ

portとパッケージの更新情報を最新にする

sudo port selfupdate

portコマンド自体の更新とローカルにキャッシュしていあるパッケージ情報が更新される。定期的に実行しないと古いパッケージがインストールされるかもしれないという問題がある?(Mint's log: MacPortsのselfupdateを忘れた→はまる)。

更新されたパッケージを表示する

sudo port outdated

インストール済みソフトを全てアップデート

sudo port upgrade installed
  • 古いバージョンを削除したい場合 "-u" をつける。
    sudo port upgrade  -u installed
  • inactiveになったバージョンを後からアンインストールする場合以下を実行。
    sudo port uninstall inactive

個別ソフトをアップデート

  • 通常の方法
    sudo port upgrade emacs
  • 古いバージョンを削除したい場合 "-u"をつける
    sudo port upgrade -u emacs

パッケージを検索する

  • searchコマンドでさがせる
    sudo port search <パッケージ名>

ファイルが含まれているパッケージを検索

  • providesコマンドを使用する
    sudo provides <ファイル名>

一覧表示

  • listコマンドで全パッケージ一覧
    sudo port list
  • インストル済みパッケージ一覧
    sudo port list installed

インストールする

sudo port install <パッケージ名>

過去のバージョンをインストールする

過去のバージョンに切り替える

  • 過去のバージョンの一覧表示
    sudo port installed imagemagick
  • 過去のバージョンへの切り替え
    sudo port activate ImageMagick @6.9.4-4_0+x11

アンインストールする

パッケージを指定してアンインストール

sudo port uninstall <パッケージ名>

inactiveなパッケージを削除

sudo port uninstall inactive

依存関係ごと削除

  • "--follow-dependents" portを削除するまえにそのportに依存する全てのportを再帰的にインストールする。
    sudo port unintall --follow-dependents <パッケージ名>
  • "--follow-dependencies" portを削除して不要になったportも再インストールする。
    sudo port unintall --follow-dependencies <パッケージ名>

その他

パッケージの内容を表示

sudo port contents apr

ファイルが含まれるを表示

sudo port provides  ./libaprutil-1.0.dylib

インストールしたportのリストを保存

  • 依存関係を含めて保存
    sudo port installed > list.txt
  • 自分が明示的にインストールしたportのみを保存
    sudo port installed requested > requested_list.txt

Variants

インストール済みパッケージのVariantsを表示する。

  • port installed <パッケージ名>で表示できる。
    port installed php5

インストール済みパッケージのVariantsを変更する。

  • port upgrade --enforce-variantsを使う。
    sudo port upgrade --enforce-variants php5 +pear

その他

Homebrewとどっちがよいか

MacPortsの良い点

  • オールインワン。システムのライブラリなどに極力依存しないよう作られているのでOSがバージョンアップしてもMacPortsは壊れないことも(絶対ではない)。
  • /opt/localにまとめられている。/usr/localがフリーなので/usr/localに自分でコンパイルしたソフトを入れることができる。
  • apache2やphpなどもパッケージがある。
  • パッケージの数が多い。

MacPortsの悪い点

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

Homebrewの良い点

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

Homebrewの悪い点

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

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

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

トラブルシューティング

Xcode4.3でいろいろダメ(2012/02/21(火))

  • Beginning OS X Lion/インフラ整備編 - Beginning OS X…Xcode4.3でいろいろかわったためMacPortsが完全対応するまでは手作業でいろいろやらないといけない。
  • portconfigure.tclへパッチを当てる方法は、該当部分をport.patchなどと保存し、patchコマンドに-p0オプション(ディレクトリ部分を無視しない)であてるとよい。
    sudo patch -p0 < port.patch

no dest root found at XXXといわれる。

  • 例えば次のようなエラー。
    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
Last-modified: 2019-02-13 (水) 13:48:32 (35d)