原文: MacPorts:ProblemHotlist

Problem Hotlist

1. Fetch の失敗 - readline およびその他の port にて

MacPorts が ftp 経由で fetch をおこなう際には、まず "EPSV" コマンドにてパッシブモードでサーバと通信しようと試みます。 それがうまくいかなければ、"PASV" コマンドを試みます。 ftp.cwru.edu、およびその他のサーバでは、"EPSV" コマンドのリクエスト後にコネクションが切断されてしまうため、 "PASV" コマンドを試みることが出来ず、fetch に失敗してしまいます。#10832.

MacPorts の将来のリリースでは、この問題に対処するためのオプションを追加することが考慮されています。 また現状において、firewall の内側で利用した場合に、多くの ports が同様に fetch に失敗します。 唯一の解決策は、ブラウザや FTP クライアントを使ってファイルをダウンロードし、 それを ${prefix}/var/db/dports/distfiles/<portname>/ ${prefix}/var/macports/distfiles/<portname> にコピーすることです。 'port clean --all' が実行済みの場合には、配布ファイルの保存されるディレクトリは削除されている筈です。 各々の port におけるこのディレクトリは、fetch フェーズの開始時に生成されます。

注意: fetch 後のチェックサムが失敗する場合、おそらくそれはまた別の問題だと考えられます。FAQ を参照してください。

2. libintl3.dylib に関するメッセージが表示され、port のビルド・アップグレード・実行ができない

dyld: Library not loaded: /opt/local/lib/libintl.3.dylib

最近、gettext の port が 0.14.x から 0.15.x にアップデートされました。 gettext を 0.15.x にアップデートした場合、 gettext に依存する ports を全てリビルドしなければなりません。

インストールした ports のうち、gettext に依存するものを調べあげるスクリプトを以下に示します。

#!/bin/bash
if test -z "$1"; then
  echo "usage: $0 <libname>"
  exit 1
fi
for file in `find /opt/local/lib -name *.dylib; find /opt/local/bin`; do
  # Skip this match if it's a symbolic link
  if test -f $file -a ! -L $file; then
    # Look for references to the missing library
    otool -L $file | grep --silent $1
    if test "$?" = "0"; then
      port provides `echo $file`
    fi
  fi
# Grab the name of the port and make sure to list each port just once
done | awk -F: ' { print $2 } ' | sort | uniq

このスクリプトをコピーしてテキストエディタに貼り付け、depsearch.sh といった名前でセーブしてください。その後、検索したいライブラリ名を指定してターミナル上で実行させます。 今回は gettext に依存する ports を検索したいので、"libintl" ライブラリを探すようにします。デスクトップにスクリプトをセーブした場合には、次のようにして走らせてください。

bash ~/Desktop/depsearch.sh libintl

これで修正の必要がある ports のリストが得られますので、 そのそれぞれの ports について、強制アンインストールおよびアーカイブの削除をおこなってください。

port uninstall -f <port>
port clean --archive <port>

これが終われば、それぞれについて強制インストールをおこなってください。

port install -f <port>

インストール済み port の、古くアクティブでないバージョンのものが存在する場合には、 まず旧バージョンを取り除く必要があります。以下の方法で旧バージョンを全て削除できます。

port -duf uninstall

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-07-28 (火) 01:10:36 (367d)