|
原文: FAQ - MacPorts FAQ †HOWTO セクション も併せてご参照ください。(外部リンク・英語)
一般的な質問 †port のビルドに失敗します。 †バグ報告をする前に、あなたの MacPorts 及び ports ツリーが最新のものかどうかを確認してください。 sudo port selfupdate また、あなたの Xcode が最新のものかどうかについても確認してください。古い Xcode では ports が失敗することが知られています。 port をインストールしようとした時に、"C compiler cannot create executables" というエラーが出ます。 †Xcode のインストールが必要です。X11SDK と Unix 開発環境も含まれます。 MacPorts はユニバーサル版ですか? †MacPorts は、Intel Mac と PowetPC ベースの Mac の両方で動作します。ですが、あなたがインストールした ports は、あなたが現在実行しているアーキテクチャ用にのみコンパイルされます。 いくつかの ports では、ビルドする際に +universal variant を選択できます。MacPorts は PowerPC と Intel の両方で動作するユニバーサル・バイナリを作成します。 いくつかの ports は PowerPC Mac のみ、もしくは Intel Mac のみで動作します。 +universal のサポートについてテストされた ports の一覧とその結果は Universal で確認できます。 どうして、/opt/local が MacPorts がデフォルトでインストールされる場所なのですか? †/opt/local が選択されたのは、他の様々なインストール先とかち合うのを避けるようにするためです (例えば、fink は /sw を同じ目的で利用します)。 /usr/local がまともな選択肢ではないことは、以下の理由によります。
どうやって MacPorts を削除、あるいはアンインストールするのですか? †通常の 'bash' シェルでは、Terminal から以下のコマンドを実行することで MacPorts を削除できます(${prefix} は、あなたが MacPorts をインストールしたディレクトリ、デフォルトでは /opt/local になります)。 sudo rm -rf ${prefix} \
/Applications/MacPorts \
/Applications/DarwinPorts \
/Library/Tcl/macports1.0 \
/Library/Tcl/darwinports1.0 \
/Library/LaunchDaemons/org.macports.* \
/Library/StartupItems/DarwinPortsStartup \
/Library/Receipts/MacPorts*.pkg \
/Library/Receipts/DarwinPorts*.pkg \
/etc/manpaths.d/macports \
/etc/paths.d/macports
tcsh などの異なるシェルを使用している場合は、上記をあなたのシェルに合ったシンタックスに変更する必要があります。 このコマンドによって、MacPorts そのものと共に、MacPorts を用いてインストールしたソフトウェアの全てが削除されてしまうことに注意してください。 また、これ〔削除されるもの〕には、インストールされたあらゆる ports の設定ファイルも含まれます。 もしそれらのファイルを取っておく必要がある場合は、rm の前にそれら(/opt/local/etc 以下にあるはずです)をバックアップしてください。 このコマンドは、合意されたディレクトリ・ツリーの外にインストールされたファイルを取り除きません。 そのため、他の場所に書き込む ports は、MacPorts をまとめて削除する前に、手動で削除*3 されなければなりません。こうしたportsには少なくとも xfig と transfig が含まれ、おそらく他の X11 ports も含まれるでしょう。 sudo port uninstall xfig sudo port uninstall transfig どうして、configure.cflags-append というエラーが出るのでしょうか? †port を初めて実行したときに、おそらく以下のエラーメッセージが出るでしょう。 unable to open port: invalid name "configure.cflags-append" これは最近追加されたもので、あなたのインストールした MacPorts が最新のバージョンではないことを意味しています。これを解決するには、以下を実行して MacPorts を最新のバージョンにアップデートしてください。 sudo port selfupdate ${prefix}/var/macports/ 以下のフォルダは何ですか? どうしてそれらは沢山のスペースを占めているのですか? †man porthier は、〔${prefix}/var/macports/ にあるのは〕「MacPorts のランタイム・データ」と答えますが、それ以外の下位フォルダも含んでいます。
Error: checksum (md5/sha1/rmd160) mismatch for port というエラーが出ました。どうすれば良いのですか? †MacPorts は、ダウンロードしたファイルが壊れたり改竄されていないことを保証するために それらのチェックサムを計算します。それぞれの Portfile は、その port がダウンロードする ファイルの(md5, sha1, あるいは rmd160 を用いた)チェックサムをリストにしています。 もし、ダウンロードされたファイルから計算されたチェックサムが portfile にリストされた ものと一致しないならば、すなわちダウンロードされたファイルはその port の設計者が その port を作成したときに使ったファイルではないということであり、MacPorts は インストール作業を中断します。 チェックサム・エラーが出たときには、最初に、sudo port sync で ports を アップデートするべきです―今度はその port をインストールできましたか? そうならば、 以前にだれかが同じチェックサム・エラーに出喰わして、既にそれを修正したということです。 もし、アップデートしてもダメならば、どうしてチェックサムの不一致があるのかを探し出すべきです。 可能性のある理由が幾つかあります。
MacPorts の GUI フロントエンドはどこにありますか? †いくつかの MacPorts GUI が開発されています。
port selfupdate が実行できなかったり、Rsync サーバに接続を拒否されたら、どうすれば良いのですか? †最初に sudo port -d selfupdate を試して、すべてのエラーを表示させてください。もし Rsync サーバへの接続に失敗していたら、ファイヤーウォールか別のネットワーク制御ソフトにブロックされているかもしれません。PeerGuardian?*5 を実行している場合も、すべてのフィルタや rsync.macports.org に対しての例外の作成が無効とされます。 ファイヤーウォールを通過させられない場合、少し手間は掛かりますが、別の手段があります。 port list installed を実行すると、まったく同じバージョンの port が複数インストールされているのですが、なぜですか? †port list installed を使用すると、'list' コマンドベースで現在有効なバージョンの情報のみが結果として表示されるので、混乱することでしょう。例えば foo という port のバージョン 1 と 2 (2 が現在有効なバージョン)をインストールしていて list installed を実行すると、バージョン 2 のみが 2 度表示されます。 port list installed の代わりに、port installed を使用してください。実際にインストールされているバージョンが表示されます。 ソフトウェアに関する質問 †PHP5 の port をインストールすると、Apache 2 を使っているのに、MacPorts は Apache 1.3 をインストールしようとします。どうすれば良いの? †"variants"を使ってください。port variants <portname> (portname には当該 port が入ります)で、あなたが望むかもしれない差異をサポートする、利用可能な build variations がリストアップされます。例えば、PHP5 を Apche 2 と MySQL と共に使うよう インストールするには、port install php5 +apache2 +mysql とタイプします。 MacPorts の python に readline サポートを付加させるには、どうするの? †Python 24 に対しては、py-readline のportをインストールしてください。 MacPortsが、自前のライブラリでなくシステムのライブラリにリンクすることはあるの? †いいえ、MacPortsは自前のライブラリに固執します。 どうして、MacPortsは自前のライブラリを使っているの? †そうする理由は幾つかあります。第一に、そうすることで、portsの 異なるバージョンの Darwin/OS Xにわたる互換性が高まります。もし、例えばMacPortsのopenssl 0.9.8 に依存 すれば、ssl を必要とするあらゆるportを、〔Darwin/OS Xの様々なバージョンに〕インス トールされている可能性のあるあらゆるopensslに対して検証する必要がなくなります。 Appleのソフトウェアは、時々壊れていることがあります(例えば、opensslは古いバージョ ンのzlibと共にビルドされることを拒みますが、Appleは脆弱なバージョンのzlibの古いヘッ ダを出荷しました)。第三の理由は、最新版への追随性です。アップルは、例えば Python 2.4 ではなく2.3だけを扱っていますが、それでは動作しないソフトウェアもあり ます。こうした〔MacPortsが自前のライブラリを使うという〕振舞いの欠点は、また極小 さなものです。つまり、Pythonのインストールで10MBを消費することは、GB級ハードディ スクを持ち、また代わりに常に一貫性を得ることになるのなら、大したことではないでしょ う。 GNOMEのメニューが空っぽなんですが? †詳細情報は、このwikiの GNOMEのセクションを見 てください。*6 Portfileの開発およびメンテナンスに関する質問 †他のportのある特定のvariants(例えば、"postgresql8 +server")への依存関係を持たせることはできますか? †できません。現状の依存関係エンジンは、「port X がport Yを必要とする」あるいは 「port X は、port Yの提供するあるファイルを必要とする」ということ以上、細かな指定 を操作することができません。エンジンの改造についての議論はずっとありますが(メー リングリストのアーカイブを参照)、また具体的な段階には至っていません。そのため、 もっとも有用なvariantsは、実際のところvariantsにすべきでなく、そのportに埋め込む 〔デフォルトで有効にする〕べきなのです。 ローカルなレポジトリをセットアップしたのに、どうしてportindexが機能しないの? †あなたのローカルなリポジトリは、portindexが機能するために、ひとつのカテゴリに入れ 子にしなくてはなりません。 文書はこの必要 性を反映するようアップデートされなければなりません。 *7 コミッタになるにはどういうプロセスがいるのですか? †プロセスは、他のあらゆるオープンソース・プロジェクトとほとんど全く一緒です。 MacPorts mailing listへの、より詳細な このemail を見てください。*8 あるいはまた、MacPortsへのコミット・アクセスが何を必要とするかについては、wikiの NewCommitersGuide を見てください。 ランタイム・エラー †あるvariant を使わないようにしたいのですが、portコマンドの適切な使用法が表示されるばかりです。 †port <command> <portname> -<variant> というように使うと、このコマンドの中にあるダッシュは、あるオプションと解釈される でしょう。そのため、使用法のメッセージが表示されます。これは、ダブル・ダッシュで 回避する必要があります。 port <command> <portname> -- -<variant> あるportをアンインストールしようとすると、port uninstall failed: invalid command name "portuninstall::uninstall" といったエラーが表示されます。何がいけないのでしょう? †これは、かつてインストールされた古いMacPortsの残滓―詳細には、 ${prefix}/share/darwinports/Tcl/port1.0/portuninstall.tclというファイルで、もはや MacPortsのコードには含まれていません―によって引き起こされる、既知のエラーです。 (${prefix}は、MacPortsを最初にインストールした際に選択されたpathに展開されます。) しかしながら、(もっとも一般的にはport selfupdateを通じた)インフラの再インス トールでは、このファイルは削除されず、手動で介入する必要があります。 rm -f ${prefix}/share/darwinports/Tcl/port1.0/portuninstall.tcl
port -f selfupdate
このステップにより、はぐれたファイルが削除され、"selfupdate"によって為されるロー カルにある〔コードの〕コピーとMacPortsサーバ上のものとのリリース番 号の比較を無視して、インフラが強制的に再ビルドされます。 この回避法が問題を解決しない場合は、出来るだけ多くの情報とともに、 Mailinglistに報告し てください。 portuninstall.tcl を削除する前に最新のMacPortsを入手していることを確認してください。私もportsをアンインストールできないという同じ問題に出喰わし、まずsudo port selfupdateをしてMacPortsの最新版を入手し、それからそのtclファイルを削除しました。しかし、sudo port -f selfupdateをしたとき、Failed to initialize ports system, couldn't read file "/opt/local/share/darwinports/Tcl/port1.0/portuninstall.tcl": no such file or directoryというエラーが表示され、〔portコマンドが〕機能しなくなってしましました。*9 |