「MacPorts」の版間の差分

提供: MacWiki
移動: 案内検索
(関連サイト)
(URL not found)
 
(7人の利用者による、間の29版が非表示)
行1: 行1:
== [[MacPorts]] とは? ==
+
== MacPorts とは? ==
  
[[MacPorts]] <http://www.macports.org/> は MacOSX 上で利用可能なパッケージシステムの一つで、
+
[http://www.macports.org/ MacPorts] は MacOSX 上で利用可能なパッケージシステムの一つで、
 
主に UNIX 向けに開発されたオープンソース・ソフトウェアを手軽にインストールすることができます。
 
主に UNIX 向けに開発されたオープンソース・ソフトウェアを手軽にインストールすることができます。
 
[[OpenDarwin]] プロジェクトの一部として 2002 年より始められ、
 
[[OpenDarwin]] プロジェクトの一部として 2002 年より始められ、
 
Landon Fuller, Kevin Van Vechten, Jordan Hubbard といった Apple inc. の従業員も多数参加しています。
 
Landon Fuller, Kevin Van Vechten, Jordan Hubbard といった Apple inc. の従業員も多数参加しています。
  
以前は [[DarwinPorts]] と呼ばれていましたが、[[OpenDarwin]] プロジェクトの休止に伴い、[[MacPorts]] と改称(2006 年 8 月~)されました。
+
以前は DarwinPorts と呼ばれていましたが、[[OpenDarwin]] プロジェクトの休止に伴い、MacPorts と改称(2006 年 8 月~)されました。
そのため、一部の配布物にはまだ [[DarwinPorts]] という表記が残っていますが、これらは全く同じものを指します。
+
そのため、一部の配布物にはまだ DarwinPorts という表記が残っていますが、これらは全く同じものを指します。
  
 
2005 年 4 月 28 日にバージョン 1.0 がリリースされ、その当時でおよそ 2500 本のソフトウェア (ports) が導入可能でした。
 
2005 年 4 月 28 日にバージョン 1.0 がリリースされ、その当時でおよそ 2500 本のソフトウェア (ports) が導入可能でした。
最新版は 2007 12 月にリリースされたバージョン 1.6 で、4400 以上の ports が利用可能となっています。
+
最新版は 2015 10 月にリリースされたバージョン 2.3.4 で、25,000 以上の ports が利用可能となっています。
  
[[MacPorts]] を使って新しくソフトウェアをインストールするには、ターミナル上で「sudo port install パッケージ名」などと入力します。
+
MacPorts を使って新しくソフトウェアをインストールするには、ターミナル上で「sudo port install パッケージ名」などと入力します。
 
これによりアーカイブのダウンロード、展開、パッチの適用、コンフィグ、ビルドといった各段階を経て、
 
これによりアーカイブのダウンロード、展開、パッチの適用、コンフィグ、ビルドといった各段階を経て、
 
指定したソフトウェアのインストールが行われます。
 
指定したソフトウェアのインストールが行われます。
 
このとき、他のパッケージに対する依存関係があれば、自動的にそれらの必要となるパッケージもインストールされます。
 
このとき、他のパッケージに対する依存関係があれば、自動的にそれらの必要となるパッケージもインストールされます。
  
[[MacPorts]] の導入方法に関しては、以下のページを参考にしてください。
 
  
*[http://lapangan.net/darwinports/ MacPortsWiki]
+
== MacPorts の特徴 ==
**[http://lapangan.net/darwinports/index.php?TheMacPortsWiki%2FInstallingMacPorts#r2bfd479 TheMacPortsWiki/InstallingMacPorts]
+
  
== [[MacPorts]] の特徴 ==
+
MacPorts は以下のような特徴を持つ、先進的なパッケージシステムです。
 
+
[[MacPorts]] は以下のような特徴を持つ、先進的なパッケージシステムです。
+
  
 
=== variants のサポート ===
 
=== variants のサポート ===
行32: 行28:
 
ソフトウェアをインストールすることができませんでした。
 
ソフトウェアをインストールすることができませんでした。
  
対して [[MacPorts]] では variants と呼ばれる、
+
対して MacPorts では variants と呼ばれる、
 
ユーザが任意に選択可能なオプションが設けられており、
 
ユーザが任意に選択可能なオプションが設けられており、
 
ソフトウェアの設定をインストール時に選択できるようになっています。
 
ソフトウェアの設定をインストール時に選択できるようになっています。
行39: 行35:
 
たとえば Fink の [[ImageMagick]] は jpeg2000 をサポートしておらず、
 
たとえば Fink の [[ImageMagick]] は jpeg2000 をサポートしておらず、
 
info ファイルを直接書き換えることでしかこれを有効にする術はありません。
 
info ファイルを直接書き換えることでしかこれを有効にする術はありません。
 +
(註: Fink にも variant 自体はあります。)
  
 
  $ fink install ImageMagick (←jpeg2000 の使えない単一バージョンとしてしかインストールされない)
 
  $ fink install ImageMagick (←jpeg2000 の使えない単一バージョンとしてしかインストールされない)
  
これに対して [[MacPorts]] の [[ImageMagick]] では、
+
これに対して MacPorts の [[ImageMagick]] では、
 
"+jpeg2" という variant をインストール時に指定することにより、
 
"+jpeg2" という variant をインストール時に指定することにより、
 
jpeg2000 の読み書きが可能な [[ImageMagick]] を導入できます。
 
jpeg2000 の読み書きが可能な [[ImageMagick]] を導入できます。
行52: 行49:
 
  $ sudo port install pTeX +euc +babel +motif
 
  $ sudo port install pTeX +euc +babel +motif
  
このように [[MacPorts]] は variants の機能により、
+
このように MacPorts は variants の機能により、
 
パッケージシステムの枠内から逸脱することなく、
 
パッケージシステムの枠内から逸脱することなく、
 
利用者に対して最大限の選択肢の提供を可能としています。
 
利用者に対して最大限の選択肢の提供を可能としています。
行63: 行60:
 
=== 構造化された Portfile ===
 
=== 構造化された Portfile ===
  
[[MacPorts]] では、ソフトウェアのインストール手順は
+
MacPorts では、ソフトウェアのインストール手順は
 
fetch, extract, patch, configure, build, destroot, install, activate の各フェーズからなる
 
fetch, extract, patch, configure, build, destroot, install, activate の各フェーズからなる
 
一連のシークエンスとして表現されます。
 
一連のシークエンスとして表現されます。
行74: 行71:
 
if {} else {}, foreach {} などの制御構造や変数を用いることも可能です。
 
if {} else {}, foreach {} などの制御構造や変数を用いることも可能です。
  
[[MacPorts]] の Portfile には構造化プログラミングを可能とするための機構が備わっており、
+
MacPorts の Portfile には構造化プログラミングを可能とするための機構が備わっており、
 
可読性・保守性に優れているといえます。
 
可読性・保守性に優れているといえます。
 
万一、利用者の側で Portfile を新規作成したり、既存のものを書き換えたりする必要が生じたとしても、その作業は比較的容易です。
 
万一、利用者の側で Portfile を新規作成したり、既存のものを書き換えたりする必要が生じたとしても、その作業は比較的容易です。
行82: 行79:
 
以下のページが参考になります。
 
以下のページが参考になります。
  
*[http://lapangan.net/darwinports/index.php?HowTo Mac Ports Wiki-JP - HowTo 文書]
+
* [http://macports-jp.sourceforge.jp/wiki/index.php/port_コマンドの簡単な使い方 port コマンドの簡単な使い方 - MacPorts-JP]
*[http://d.hatena.ne.jp/hakobe932/20061208/1165646618 はこべにっき - MacPortsでステキなUNIXツールをインストール]
+
* [http://d.hatena.ne.jp/yamato-y/20090605/1244212161 Proxy経由でMacPortを使う]
  
 
== Q & A ==
 
== Q & A ==
  
=== [[MacPorts]] は FreeBSD の ports を移植したもの? ===
+
=== MacPorts は FreeBSD の ports を移植したもの? ===
  
いいえ。[[MacPorts]] は FreeBSD の ports collection を参考にしていますが、
+
いいえ。MacPorts は FreeBSD の ports collection を参考にしていますが、
 
システムとしては全く別物です。
 
システムとしては全く別物です。
 
たとえば、FreeBSD の ports は makefile として実現されているため、拡張性に乏しい面もあります。
 
たとえば、FreeBSD の ports は makefile として実現されているため、拡張性に乏しい面もあります。
対して [[MacPorts]] では殆どが tcl により記述されており、
+
対して MacPorts では殆どが tcl により記述されており、
 
Portfile 中で柔軟な処理を行うことができます。
 
Portfile 中で柔軟な処理を行うことができます。
  
=== [[MacPorts]] では用意されているソフトウェアが少ない? ===
+
=== MacPorts では用意されているソフトウェアが少ない? ===
  
 
一概には言えませんが、
 
一概には言えませんが、
4000+ というパッケージの総数だけを見てそのように判断されているのでしたら、
+
7000+ というパッケージの総数だけを見てそのように判断されているのでしたら、
 
まずその間違った先入観を先に捨てる必要があるでしょう。
 
まずその間違った先入観を先に捨てる必要があるでしょう。
  
前に述べた通り、[[MacPorts]] には variants のサポートがありますので、
+
前に述べた通り、MacPorts には variants のサポートがありますので、
 
他のパッケージシステムでは複数に分割される場合でも、
 
他のパッケージシステムでは複数に分割される場合でも、
 
一つの port としてまとめられていることがあります。
 
一つの port としてまとめられていることがあります。
行107: 行104:
 
パッケージの総数は常に少な目に見積られる傾向があります。
 
パッケージの総数は常に少な目に見積られる傾向があります。
  
具体的な例を示しますと、たとえば Fink における qt3 パッケージは以下のように細分化されていますが、[[MacPorts]] ではこれらのパッケージを全て含めたものが、
+
具体的な例を示しますと、たとえば Fink における qt3 パッケージは以下のように細分化されていますが、MacPorts ではこれらのパッケージを全て含めたものが、
 
たった一つの Portfile から導入できるようになっています。
 
たった一つの Portfile から導入できるようになっています。
  
行148: 行145:
 
ではないでしょうか。
 
ではないでしょうか。
  
=== darwinports.com は [[MacPorts]] ([[DarwinPorts]]) プロジェクトのサイト? ===
+
=== darwinports.com は MacPorts ([[DarwinPorts]]) プロジェクトのサイト? ===
  
いいえ。darwinports.com は [[MacPorts]] ([[DarwinPorts]]) プロジェクトとは無関係のサイトです。
+
いいえ。darwinports.com は MacPorts ([[DarwinPorts]]) プロジェクトとは無関係のサイトです。
 
掲載されている情報が不正確であったり、古かったりする場合があります。
 
掲載されている情報が不正確であったり、古かったりする場合があります。
 
正確な情報を得るため、[http://www.macports.org www.macports.org] をブックマークするようにしてください。
 
正確な情報を得るため、[http://www.macports.org www.macports.org] をブックマークするようにしてください。
  
=== [[MacPorts]] を再インストールしたい ===
+
=== MacPorts を再インストールしたい ===
  
[[MacPorts]] でアップグレードを繰り返していった場合、まれにライブラリとそれに依存するコマンドのバージョンの不整合が生じてしまい、コマンドが動作しなくなることがあります。こうした場合には以下のような手順で [[MacPorts]] をアンインストールし、再度インストールしなおすのが最も簡単な対処方法です。
+
MacPorts でアップグレードを繰り返していった場合、まれにライブラリとそれに依存するコマンドのバージョンの不整合が生じてしまい、コマンドが動作しなくなることがあります。こうした場合には以下のような手順で MacPorts をアンインストールし、再度インストールしなおすのが最も簡単な対処方法です。
  
 
'''1. ログインシェルをデフォルトに戻す'''
 
'''1. ログインシェルをデフォルトに戻す'''
行181: 行178:
 
MacPorts で導入したデーモン(dbus, canna, etc.)があれば、以下のようなコマンドで全て停止させておきます。
 
MacPorts で導入したデーモン(dbus, canna, etc.)があれば、以下のようなコマンドで全て停止させておきます。
  
  $ find /Library/LaunchDaemons/org.macports.* -print0 | sudo xargs -0 -L1 launchctl unload -w
+
  $ sudo port unload canna
  
 
インストールされていないデーモンについては unload が失敗した旨のエラーが表示されますが、問題ありません。
 
インストールされていないデーモンについては unload が失敗した旨のエラーが表示されますが、問題ありません。
行187: 行184:
 
'''3. ディレクトリを削除する'''
 
'''3. ディレクトリを削除する'''
  
以下のようにしてインストール済みの ports を全て取り除いたあと、/opt ディレクトリを削除します。
+
以下のようにしてインストール済みの ports を全て取り除いたあと、/opt/local ディレクトリを削除します。
  $ sudo port deactivate active
+
  $ sudo port -f uninstall installed
ここで /opt ディレクトリの削除前に deactivate しているのは、 /opt ディレクトリの外部にファイルをインストールする ports が若干存在することへの配慮からです。
+
ここで /opt/local ディレクトリの削除前に uninstall しているのは、 /opt/local ディレクトリの外部にファイルをインストールする ports が若干存在することへの配慮からです。
  
* [http://osx.miko.org/index.php/Beginning_OS_X_10.5/運用編#MacPorts_.E3.81.AE.E3.82.A2.E3.83.B3.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB.E6.96.B9.E6.B3.95 Beginning OS X 10.5/運用編#MacPorts のアンインストール方法]
+
* [http://osx.miko.org/index.php/Beginning_OS_X_10.6/運用編#MacPorts_.E3.81.AE.E3.82.A2.E3.83.B3.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB.E6.96.B9.E6.B3.95 Beginning OS X 10.6/運用編#MacPorts のアンインストール方法]
* [http://www.miko.org/~tatyana/tech/OSX/Beginning_OSX.html#gettext_catastrophe Beginning OS X#gettext のアップグレード後にエラーが出る場合]
+
  
 
== その他 ==
 
== その他 ==
  
*GUI によるパッケージ管理ソフトPort Authority(シェアウェア)もあります。
+
*GUI によるパッケージ管理ソフトには以下のようなものがあります。
**http://dpgui.sourceforge.net/
+
**Port Authority(シェアウェア) http://dpgui.sourceforge.net/
 +
**Porticus(フリー) http://porticus.alittledrop.com/
  
 
== トラブルシューティング ==
 
== トラブルシューティング ==
行203: 行200:
 
=== port selfupdate / sync に失敗する ===
 
=== port selfupdate / sync に失敗する ===
  
[[MacPorts]] は、ファイルの取得に [[rsync]] プロトコルを利用しているため、
+
MacPorts は、ファイルの取得に [[rsync]] プロトコルを利用しているため、
 
LAN / ファイアーウォールの設定によっては、port selftupdate や port sync に失敗することがあります。
 
LAN / ファイアーウォールの設定によっては、port selftupdate や port sync に失敗することがあります。
  
行253: 行250:
 
${worksrcpath} (/opt/local/var/macports/sources/rsync.macports.org/release/ports/devel/subversion/work/subversion-1.4.3) 以下にソースが展開され、標準のパッチがあればそれらが適用された状態で停止します。このとき手動でソースツリーに変更を加えて構いません。その後、sudo port install subversion するとインストールまで自動で進みます。patch フェーズで一旦停止というこの方法は、FreeBSD の ports collection などでも同様に有効です。-たちゃな
 
${worksrcpath} (/opt/local/var/macports/sources/rsync.macports.org/release/ports/devel/subversion/work/subversion-1.4.3) 以下にソースが展開され、標準のパッチがあればそれらが適用された状態で停止します。このとき手動でソースツリーに変更を加えて構いません。その後、sudo port install subversion するとインストールまで自動で進みます。patch フェーズで一旦停止というこの方法は、FreeBSD の ports collection などでも同様に有効です。-たちゃな
  
=== XFree86 のインストールに失敗する ===
+
== 関連サイト ==
  
*Q. XFree86 のインストール(「sudo port install XFree86」)に失敗します。
+
*[http://mixi.jp/view_community.pl?id=592371 MacPorts コミュニティ(mixi)]
 
+
*[http://anago.2ch.net/test/read.cgi/mac/1315401888/l50 2ちゃんねるスレ]
*A. XFree86 を自前でビルドするのは推奨されていません。Apple's X11 をインストールするようにしてください。10.5 Leopard では X11 がデフォルトインストールされるらしいので、この混乱もおさまるのではないかと思いますが。
+
 
+
=== 他のパッケージシステムを削除したところ [[MacPorts]] の動作がおかしくなった ===
+
 
+
*forever 5 years old blog: [[MacPorts]] 再インストール
+
**http://www.forever5yearsold.net/archives/11
+
**>Fink と [[MacPorts]] の両方を使ってたのですが、Fink いらないやと思って rm -rf /sw とかしたところ...
+
 
+
== 関連サイト ==
+
  
*MacPortsWiki-JP
+
*きりかノート: MacPorts の Portfile における ruby 用の拡張
**http://lapangan.net/darwinports
+
**各種ドキュメントやマニュアルの翻訳を置いています。
+
*Beginning OS X
+
**http://www.miko.org/~tatyana/tech/OSX/Beginning_OSX.html
+
**[[MacPorts]] を使った UNIX 環境の構築マニュアルです。
+
*[[MacPorts]] コミュニティ(mixi)
+
**http://mixi.jp/view_community.pl?id=592371
+
*2ちゃんねる [[DarwinPorts]] スレ
+
**http://pc11.2ch.net/test/read.cgi/mac/1137291188/l50
+
*Ruby/SDLで始めるゲームプログラミング【前編】
+
**http://jp.rubyist.net/magazine/?0018-GameProgramingForRubySDL
+
**「port install XFree86」しているのは減点対象ですが。
+
*きりかノート: [[MacPorts]] の Portfile における ruby 用の拡張
+
 
**http://kimuraw.txt-nifty.com/d/2007/04/prtex_ruby.html
 
**http://kimuraw.txt-nifty.com/d/2007/04/prtex_ruby.html
*kh.log: osxのpythonでCtrl-Aとか日本語入力とか。
 
**http://www.kharakawa.com/kh.log/archives/2007/01/osxpythonctrla.html
 
**.inputrc の設定は現バージョンの readline でも必須なんでしょうか?
 
 
*Subversionで日本語ファイルを正しく扱うためのソース修正方法
 
*Subversionで日本語ファイルを正しく扱うためのソース修正方法
 
**http://www23.atwiki.jp/selflearn/pages/55.html
 
**http://www23.atwiki.jp/selflearn/pages/55.html
 +
* [http://www-mete.kugi.kyoto-u.ac.jp/hiroki/Deveopments/DennouTools.html 電脳製品群を Mac Ports を利用して Mac OSX Snow Leopard に導入する]
 +
** [http://www.gfd-dennou.org/ 地球流体電脳倶楽部]のツール群を導入するためのパッケージ。Original MacPorts + Private Ports Tree の、親亀子亀方式。
 
その他、参考になりそうなサイトがあれば自由に追加してください。
 
その他、参考になりそうなサイトがあれば自由に追加してください。
  
行296: 行270:
 
[[Category:UNIX]]
 
[[Category:UNIX]]
 
[[Category:UNIXパッケージ]]
 
[[Category:UNIXパッケージ]]
[[Category:MacPorts]]
 

2017年3月20日 (月) 20:55時点における最新版

MacPorts とは?[編集]

MacPorts は MacOSX 上で利用可能なパッケージシステムの一つで、 主に UNIX 向けに開発されたオープンソース・ソフトウェアを手軽にインストールすることができます。 OpenDarwin プロジェクトの一部として 2002 年より始められ、 Landon Fuller, Kevin Van Vechten, Jordan Hubbard といった Apple inc. の従業員も多数参加しています。

以前は DarwinPorts と呼ばれていましたが、OpenDarwin プロジェクトの休止に伴い、MacPorts と改称(2006 年 8 月~)されました。 そのため、一部の配布物にはまだ DarwinPorts という表記が残っていますが、これらは全く同じものを指します。

2005 年 4 月 28 日にバージョン 1.0 がリリースされ、その当時でおよそ 2500 本のソフトウェア (ports) が導入可能でした。 最新版は 2015 年 10 月にリリースされたバージョン 2.3.4 で、25,000 以上の ports が利用可能となっています。

MacPorts を使って新しくソフトウェアをインストールするには、ターミナル上で「sudo port install パッケージ名」などと入力します。 これによりアーカイブのダウンロード、展開、パッチの適用、コンフィグ、ビルドといった各段階を経て、 指定したソフトウェアのインストールが行われます。 このとき、他のパッケージに対する依存関係があれば、自動的にそれらの必要となるパッケージもインストールされます。


MacPorts の特徴[編集]

MacPorts は以下のような特徴を持つ、先進的なパッケージシステムです。

variants のサポート[編集]

従来使われてきたパッケージシステムの多くは、 ソフトウェアのパッケージ化担当者が事前に設定した画一的な仕様でしか ソフトウェアをインストールすることができませんでした。

対して MacPorts では variants と呼ばれる、 ユーザが任意に選択可能なオプションが設けられており、 ソフトウェアの設定をインストール時に選択できるようになっています。

具体的な例を挙げるならば、 たとえば Fink の ImageMagick は jpeg2000 をサポートしておらず、 info ファイルを直接書き換えることでしかこれを有効にする術はありません。 (註: Fink にも variant 自体はあります。)

$ fink install ImageMagick (←jpeg2000 の使えない単一バージョンとしてしかインストールされない)

これに対して MacPorts の ImageMagick では、 "+jpeg2" という variant をインストール時に指定することにより、 jpeg2000 の読み書きが可能な ImageMagick を導入できます。

$ sudo port install ImageMagick +jpeg2

さらに pTeX (ptetex3) などでは、複数の variants の指定が可能です。

$ sudo port install pTeX +euc +babel +motif

このように MacPorts は variants の機能により、 パッケージシステムの枠内から逸脱することなく、 利用者に対して最大限の選択肢の提供を可能としています。

なお、指定できる variants の種類は、次のようにして調べることができます。 各 Ports で事前に用意されていない variants は指定できません。

$ port variants pTeX

構造化された Portfile[編集]

MacPorts では、ソフトウェアのインストール手順は fetch, extract, patch, configure, build, destroot, install, activate の各フェーズからなる 一連のシークエンスとして表現されます。

それぞれのフェーズの前と後には、さらに pre-* と post-* のサブフェーズが用意されており、 ソフトウェアのインストール方法が記された Portfile には、 これら各々のフェーズにおいて行うべき処理がブロック構造の形で記述されます。

また、Portfile は tclsh 上で動作するソースコードでもあるため、その中で if {} else {}, foreach {} などの制御構造や変数を用いることも可能です。

MacPorts の Portfile には構造化プログラミングを可能とするための機構が備わっており、 可読性・保守性に優れているといえます。 万一、利用者の側で Portfile を新規作成したり、既存のものを書き換えたりする必要が生じたとしても、その作業は比較的容易です。

port コマンドの使い方[編集]

以下のページが参考になります。

Q & A[編集]

MacPorts は FreeBSD の ports を移植したもの?[編集]

いいえ。MacPorts は FreeBSD の ports collection を参考にしていますが、 システムとしては全く別物です。 たとえば、FreeBSD の ports は makefile として実現されているため、拡張性に乏しい面もあります。 対して MacPorts では殆どが tcl により記述されており、 Portfile 中で柔軟な処理を行うことができます。

MacPorts では用意されているソフトウェアが少ない?[編集]

一概には言えませんが、 7000+ というパッケージの総数だけを見てそのように判断されているのでしたら、 まずその間違った先入観を先に捨てる必要があるでしょう。

前に述べた通り、MacPorts には variants のサポートがありますので、 他のパッケージシステムでは複数に分割される場合でも、 一つの port としてまとめられていることがあります。 また、原則として一つのソフトウェアにつき一つの port が対応するため、 パッケージの総数は常に少な目に見積られる傾向があります。

具体的な例を示しますと、たとえば Fink における qt3 パッケージは以下のように細分化されていますが、MacPorts ではこれらのパッケージを全て含めたものが、 たった一つの Portfile から導入できるようになっています。

qt3 Cross-Platform GUI application framework
qt3-bin Cross-Platform GUI application framework.
qt3-designer Cross-Platform GUI application framework
qt3-dev Cross-Platform GUI application framework
qt3-doc Cross-Platform GUI application framework
qt3-linguist Cross-Platform GUI application framework
qt3-mysql Cross-Platform GUI application framework (MySQL Plugin)
qt3-postgresql Cross-Platform GUI application framework (PostgreSQL Plugin)
qt3-shlibs Cross-Platform GUI application framework

結局のところ、考慮の基準とすべきものはパッケージの総数ではなく、

  • 自分の使いたいアプリケーションが用意されているかどうか
  • 万一用意されていなくとも、新規に ports 化することが容易かどうか
  • 既存 ports を基に、新しい variants を容易に作り出せるかどうか

ではないでしょうか。

darwinports.com は MacPorts (DarwinPorts) プロジェクトのサイト?[編集]

いいえ。darwinports.com は MacPorts (DarwinPorts) プロジェクトとは無関係のサイトです。 掲載されている情報が不正確であったり、古かったりする場合があります。 正確な情報を得るため、www.macports.org をブックマークするようにしてください。

MacPorts を再インストールしたい[編集]

MacPorts でアップグレードを繰り返していった場合、まれにライブラリとそれに依存するコマンドのバージョンの不整合が生じてしまい、コマンドが動作しなくなることがあります。こうした場合には以下のような手順で MacPorts をアンインストールし、再度インストールしなおすのが最も簡単な対処方法です。

1. ログインシェルをデフォルトに戻す

ログインシェルを OS 標準の /bin/bash から MacPorts で導入したシェルに変更しているなら、コマンドライン上から

$ chpass -s /bin/bash

としてログインシェルをデフォルトに戻しておきます。 何らかのトラブルで MacPorts で導入したシェルが起動できず、ターミナルが開けないといった場合には、以下の方法を試みてください。

  • Mac OS X 10.5 Leopard の場合:
    1. 「システム環境設定」より「アカウント」を開く。
    2. ウインドウ左下に表示される鍵のアイコンをクリックし、編集可能にする。
    3. 画面左部のアカウント一覧から変更したいアカウントを選び、右クリックで表示されるメニューより「詳細オプション」を選択する。
    4. ログインシェルを /bin/bash に戻す。
  • Mac OS X 10.4 Tiger の場合:
    1. 「アプリケーション」→「ユーティリティ」より「NetInfo マネージャ」を開く。
    2. ウインドウ左下に表示される鍵のアイコンをクリックし、編集可能にする。
    3. 「/」「users」の配下から変更したいアカウントを選ぶ。
    4. プロパティ「shell」の値を「/bin/bash」に戻す。
    5. メニューより「ドメイン」→「変更内容を保存 ⌘S」をおこなう。

2. デーモンを取り除く

MacPorts で導入したデーモン(dbus, canna, etc.)があれば、以下のようなコマンドで全て停止させておきます。

$ sudo port unload canna

インストールされていないデーモンについては unload が失敗した旨のエラーが表示されますが、問題ありません。

3. ディレクトリを削除する

以下のようにしてインストール済みの ports を全て取り除いたあと、/opt/local ディレクトリを削除します。

$ sudo port -f uninstall installed

ここで /opt/local ディレクトリの削除前に uninstall しているのは、 /opt/local ディレクトリの外部にファイルをインストールする ports が若干存在することへの配慮からです。

その他[編集]

トラブルシューティング[編集]

port selfupdate / sync に失敗する[編集]

MacPorts は、ファイルの取得に rsync プロトコルを利用しているため、 LAN / ファイアーウォールの設定によっては、port selftupdate や port sync に失敗することがあります。

例えば、下は -v オプションで詳細ログを出力した場合の結果です。

$ sudo /opt/local/bin/port -v selfupdate
Synchronizing from rsync://rsync.darwinports.org/dpupdate/dports
rsync: failed to connect to rsync.darwinports.org: Operation timed out (60)
rsync error: error in socket IO (code 10) at /SourceCache/rsync/rsync-24/rsync/clientserver.c(94)
Error: /opt/local/bin/port: selfupdate failed: Couldn't sync dports tree: sync failed doing rsync

こういう場合は、次のようにすれば、Ports ファイルを更新することができます。

  • 1)LAN 管理者に相談して、rsync ポートの利用を許可してもらう
  • 2)rsync ポートが閉じられていない別のネットワークに移動する
  • 3)Subversion で ports tree を 取得する
  • 4)rsync の通信をトンネリングする

Intel Mac で subversion のメッセージが文字化けする[編集]

APR まわりの設定がおかしいのが原因です。 環境変数 LANG=ja_JP.UTF-8 を設定すると正しく日本語のメッセージが表示される一方、 LANG を設定していない素の OS X では文字化けが発生します。

$ svn
使用方法を知りたいときは 'svn help' と打ってください。
$ unset LANG
$ svn
?\228?\189?\191?\231?\148?\168?\230?\150?\185?\230?\179?\149?\227?\130?\146?\231?\159?\165?\227?\130?\138?\227?\129?\159?\227?\129?\132?\227?\129?\168?\227?\129?\141?\227?\129?\175 'svn help' ?\227?\129?\168?\230?\137?\147?\227?\129?\163?\227?\129?\166?\227?\129?\143?\227?\129?\160?\227?\129?\149?\227?\129?\132?\227?\128?\130
$ uname -a
Darwin pc192168000058.local.network 8.8.1 Darwin Kernel Version 8.8.1: Mon Sep 25 19:42:00 PDT 2006; root:xnu-792.13.8.obj~1/RELEASE_I386 i386 i386
  • gettext 周りはよく知らないのですが、どうしてもこの問題を回避したい場合には以下のパッチが有効かも知れません。おそらく、内部エンコードを明示的に UTF-8 にすると、きちんとフォールバックが働かないことがあるのでしょう。(もう少し調べてみないことには、確かなことは言えませんが、gettext の不具合かな?)-たちゃな
--- subversion/libsvn_subr/nls.c.orig   2006-02-16 06:30:49.000000000 +0900
+++ subversion/libsvn_subr/nls.c        2007-01-30 02:25:37.000000000 +0900
@@ -119,7 +119,7 @@
 #else
   bindtextdomain(PACKAGE_NAME, SVN_LOCALE_DIR);
 #ifdef HAVE_BIND_TEXTDOMAIN_CODESET
-  bind_textdomain_codeset(PACKAGE_NAME, "UTF-8");
+  //bind_textdomain_codeset(PACKAGE_NAME, "UTF-8");
 #endif
 #endif
 #endif
  • 基本的なところですが、このパッチの使い方がわかりません。/opt/local/var/macports/sources/rsync.macports.org/release/ports/devel/subversion/files/ に置いて Port を編集すれば良いのでしょうか... 今回の件は、ちょっと根が深そうなので、LANG=... で誤魔化せばそれで良いと思っています。(ただ、この対策は FAQ に加えるべき)- ぜ
  • その方法でも構いませんが、よりアドホックに済ます方法もあります。sudo port patch subversion をおこなうと、

${worksrcpath} (/opt/local/var/macports/sources/rsync.macports.org/release/ports/devel/subversion/work/subversion-1.4.3) 以下にソースが展開され、標準のパッチがあればそれらが適用された状態で停止します。このとき手動でソースツリーに変更を加えて構いません。その後、sudo port install subversion するとインストールまで自動で進みます。patch フェーズで一旦停止というこの方法は、FreeBSD の ports collection などでも同様に有効です。-たちゃな

関連サイト[編集]

その他、参考になりそうなサイトがあれば自由に追加してください。

Wiki内の関連ページ[編集]