Available Languages: | Deutsch | English | Español | Français | 日本語 (Nihongo) | Português | Русский (Russkiy) | 中文 (简) (Simplified Chinese) |

The Fink F.A.Q.

このページは Fink の FAQ です。 質問は、他の FAQ と同様に実際に質問されたものと、あらかじめ予想して作られたものがあります。 質問と回答の形をとった仮のドキュメントとなっています。

FAQは節毎にページがわかれています。 下記の目次にすべての質問があります。 それぞれリンクされていますので、辿っていってください。

Contents

1 一般的な質問

Q1.1: Fink とは何ですか?

A: Fink は、多くの Unix ソフトウェアを Mac OS X で使えるようにするものです。 このために、次の二つのゴールを設定しています。

一つ目のゴールは、ソフトウェアを Mac OS X に移植することです。 これは、 役に立つ Open Source の Unix ソフトウェアを、 Mac OS X でコンパイルと実行できるよう、必要な修正を行ないます。 この作業は簡単なこともありますが、非常に困難な場合や、パッケージによっては不可能な場合もあります。 我々は、この作業を簡単にするためにツールやドキュメントを提供するよう努めています。

二つ目のゴールは、成果を普通のユーザーが使える形にすることです。 このために我々は、 Linux で使われている dpkg と、 fink という パッケージ管理ツールを使ったディストリビューションを構築しました。 後者は、 Debian GNU/Linux プロジェクトが独自で作成したものです。 バイナリディストリビューションは .deb パッケージ形式を使います。 ソースからパッケージをビルドするには、我々の独自のツールである fink を使い、 .deb パッケージのファイルを作成します。

Q1.2: Fink とはどういう意味ですか?

A: 意味はありません。ただの名称です。なにかの頭文字でもありません。

実際は、ドイツ語でフィンチという鳥のことです。 このプロジェクトに名称を考えていた時、 OS の名称である Darwin から、チャールズ=ダーウィン、ガラパゴス諸島、進化を連想しました。 それで、ダーウィン・フィンチのことを思い出しました。 まぁ、それだけです...

Q1.3: Fink と BSD の port メカニズムはどう違うのですか (OpenPackages や GNU-Darwin も含めて)?

A: 利点:

Q1.4: なぜ Fink は /usr/local にインストールしないのですか?

A: いくつか理由はありますが、共通しているのは、「いつか壊れるから」です。

理由1: サードパーティー・ソフトウェア。 /usr/local は、システムの一部ではないソフトウェアを入れる場所として確立されています。 このため、いろいろなものを入れるには格好の場所ですが、同様に他の人もこの場所にいろいろなものを入れる可能性があります。 ほとんどのインストール・ルーチンはすでにあるものを上書きしてしまいますし、 dpkg もそうします。 もちろん、サードパーティー・ソフトウェアを /usr/local にインストールしないように選択をすることは可能です。 しかし、ほとんどのインストーラは事前に何を何処にインストールするか知らせてくれません。

理由2: /usr/local/bin は、デフォルトの PATH に入っています。 このため、シェルが自動的にインストール・プログラムを見つけてしまいます。 逆にいうと、このプログラムを使いたくない場合は何かしなければなりません。 極端な場合、これはシステム全体に影響します。 多くのパーツはシェルスクリプトに依存しているからです。

理由3: コンパイラ・ツール・チェーンはデフォルトで /usr/local を検索します。 コンパイラは、 /usr/local/include 内でヘッダファイルを検索し、リンカは /usr/local/lib 内でライブラリを検索します。 これがうまくいくときもありますが、そうしたくない時にしないのが非常に難しいです。 コンパイラは、 /usr/local/include に stdio.h という名前のゴミファイルを追加すれば無効化することができます。

以上のことから、 Fink を /usr/local にインストールするのは不可能です。 インストール・スクリプトは警告メッセージを出しますが、これを無視することもできます。 この場合は自己責任で行なって下さい。

Q1.5: ではなぜ /opt/sw を選んだのですか?

A: この選択にあまり意味はありませんが、実用上の(アップグレードの)問題と、他のパッケージング・システムとのコンフリクト問題を避けるため、近い将来に変更することはないと思われます。

2 他のプロジェクトとの関係

Q2.1: パッチを送るなど、本家のメンテナに貢献していますか?

A: 努力しています。 パッチを送り返すのは簡単で、次のパッケージで皆が満足することもありますが、ほとんどの場合そう簡単にはいきません。 共通の問題:

Q2.2: Debian プロジェクトとは関係がありますか。 Debian Linux を Mac OS X に移植しようとしているのですか?

A: Fink と Debian には公式の関係はありません。 Fink は Debian GNU/Linux ディストリビューションの移植ではありません。 Debian パッケージ管理ツール (dpkg, dselect, apt-get) を移植し、 .deb バイナリパッケージ形式を使ってはいますが、実際のパッケージは Mac OS X / Darwin 専用のものです。

Q2.3: Apple とは関係がありますか?

A: Apple は Fink を認知していて、オープンソース関連の活動の一環としてサポートしています。 2001年の夏と秋には、 Fink パッケージの修正がリリースに間に合うように、新しい Mac OS X バージョンのプレリリースを提供してくれました。 引用: 「多くの人が、我々は提供したくないのではと疑ってかかっているので、このことでオープンソースへの貢献を強調できるでしょうか。 我々はオープンソースというゲームに強くなると思います。」 Apple ありがとう!

Q2.4: Darwinports とは関係がありますか?

A: Darwinports と Fink は補完的なプロジェクトです。 両者は重なる部分があり、 Fink と OpenDarwin プロジェクトの両方に貢献している人もいま。 例えば、 Benjamin Reed は双方の KDE パッケージを担当しています。 Darwinports と Fink は、自由に双方のパッチを利用し、両者は現在新しいディペンダンシー・エンジンの協働を検討してきました。

OpenDarwin は独自のパッケージ・システムを開発しています。 OpenDarwin.org に詳細があります。

3 Fink ミラー

Q3.1: Fink ミラーとは何ですか?

A: Fink ミラーは、パッケージをソースからビルドする際に使う current と stable の詳細ファイルをミラーしている rsync サーバーです。

Q3.2: なぜ rsync ミラーを使わないといけないのですか?

A: rsync は高速なプロトコルで、古い CVS アップデートによる方法よりも速く詳細ファイルを更新します。 また、 CVS アップデートは常に sourceforge.net から行われるのに対し、 rsync アップデートは近いミラーから行われます。

Q3.3: Fink ミラーの情報はどこにありますか?

A: Fink ミラーは全て、 finkmirrors.net ドメインに参加しています。 もっと詳しく知りたい方は、ウェブサイト http://finkmirrors.net/ を参照して下さい。

Q3.4: rsync サーバーに接続できません。どうしたら良いですか?

A: ファイヤーウォールによっては、 rsync サービスへの接続を許可していない場合もあります。 この場合は CVS 方式を使って下さい。

Q3.5: rsync 方式に変えたら、unused ツリーの info ファイルが全て消えてしまいました。

A: これが正しい動作なのです。 rsync アップデート方式はアクティブなツリーだけ更新します。 また、 CVS サブディレクトリの削除も行います。

Q3.6: どのように方式を切り替えるのですか?

A: fink selfupdate-rsync または fink selfupdate-cvs コマンドで、 rsync と CVS を切り替えます。

Q3.7: Distfiles ミラーとは何ですか?

A: 時としてインターネットから特定バージョンのソースを取得することが困難な場合があります。 Distfiles ミラーはソースパッケージをビルドする際に必要なソースパッケージを保存し、ミラーしています。

4 Fink のアップグレード (バージョン固有の問題対処法)

Q4.1: rsync や cvs の selfupdate を実行しても、Fink が新しいパッケージを読み込んでくれません。

A: これは OS 10.5 バイナリインストーラを使用している際の問題です。まず、バージョンを確認し:

fink --version

もし fink-0.27.13-41 であれば、これはインストーラのものです。 また、fink-0.27.16-41の場合も同様に、

どちらも、最新バージョンの fink に更新します。

Q4.2: 何かをインストールしようとすると、'Can't resolve dependency "fink (>= 0.28.0)"' というエラーが出ます。

A: 上述の FAQ をしてください。

Q4.3: Fink が、'sudo apt-get install libgettext3-dev=0.14.5-2' を実行して問題のある依存性を解消するように言ってきますが、まだおかしいです。

A: libgettext3 のパッケージ記述ファイルのタイムスタンプに問題があります: 0.14.5-2 は古いバージョンでです。

fink index -f
fink update libgettext3-dev	
	

と実行し、パッケージ記述ファイルのキャッシュを更新した後、パッケージを更新してください。

Q4.4: Fink が 'Can't resolve dependency "dpkg (>= 1.10.21-1229)" for package "dpkg-base-files-0.3-1"' って言うてはりますけど、 どないしたらよろしいですやろ?

A: 更新された dpkg パケージ記述にタイムスタンプの問題があります。

fink index -f
fink selfupdate
	

と実行し、パッケージ記述のキャッシュを更新し、 dpkgdpkg-base-files をインストールしてください。

5 Fink のインストール、使用、メンテナンス

Q5.1: Fink がサポートしているパッケージはどのように探せますか?

A: Fink 0.2.3 以降は、 list コマンドがあります。 このコマンドは、あなたの Fink 環境の管理している全てのパッケージのリストを作成します。 例:

fink list

バイナリ・ディストリビューションを使っている場合、 dselect でパッケージリストを閲覧することができます。 dselect からパッケージを選択してインストールする場合、 root 権限が必要ですので注意して下さい。

または、本サイトに パッケージ・データベース もあります。

Q5.2: ファイヤーウォールの内側にいます。どう設定したら Fink で HTTP プロキシが使えますか?

A: fink コマンドは、明示的にプロキシを設定できます。 この設定は wget/curl に渡されます。 新規インストール時に聞かれなかった場合、または設定し直したい場合、 fink configure を実行することができます。 もしインストールガイドを読み、 /opt/sw/bin/init.csh (または /opt/sw/bin/init.sh) を使ったなら、次のようにプロキシの前にプロトコルをつけるようにして下さい。

ftp://proxy.yoursite.somewhere

もしこれでも問題があるようなら、システム環境設定からネットワークを選択し、プロキシのタブをクリックし、 "Use Passive FTP Mode (PASV)" がチェックされているか確認して下さい。

Q5.3: ファイヤーウォールの内側から CVS でパッケージをアップデートするにはどうしたらいいですか?

A: パッケージ cvs-proxy は HTTP プロキシを介して通ります。

fink がプロキシを使うように設定されていなかったら、設定を行ないます:

fink configure

Q5.4: インストール後に Fink を他の場所に移動できますか?

A: できません。 もちろん、 mv やファインダからファイルを動かすことはできますが、 99% の確率で動かなくなるプログラムがでてきます。 これは、全ての Unix ソフトウェアはファイルやライブラリなどを検索するのに、ハードコードのパスに依存しているからである。

Q5.5: Fink をインストール後、他の場所に移動してシンボリックリンクを張ったら、動きますか?

A: 動くかも知れない。 動くと予想されますが、どこに落し穴があるかわかったものじゃありません。

Q5.6: Fink を全てアンインストールするには?

A: Fink でインストールしたファイルはほとんど /opt/sw (あるいはインストール時に選択した場所) にあります。 なので、 Fink を削除するには、通常このコマンドを入力します:

sudo rm -rf /opt/sw

唯一の例外は XFree86 または X.org です。もし X サーバを Fink でインストールした (xfree86xfree86-rootless または xorg パッケージ) なら、次のコマンドも必要です:

sudo rm -rf /usr/X11R6 /etc/X11 /Applications/XDarwin.app

Fink をインストールし直すことがないのでしたら、テキストエディタを使い、 .cshrc ファイルの中の "source /opt/sw/bin/init.csh" と書かれている行、あるいは .bashrc ファイルの中の "source /opt/sw/bin/init.sh" と書かれている行を削除して下さい。

Q5.7: ウェブのパッケージデータベースは、パッケージ xxx を表示しているのに、 apt-get と dselect は何もしない。どっちが嘘をついてるのですか?

A: どちらも正しいです。 パッケージデータベースは unstable セクションにあるものも含め、全てのパッケージを管理します。 dselectapt-get は、コンパイル済みバイナリパッケージしか関与しません。 パッケージがコンパイルされないのは様々な理由があります。 パッケージがコンパイルするかどうかを判定するには、まず最新リリースの "stable" セクションになければなりません。 更にポリシーに合っているか、ライセンスや知的所有権を侵していないかチェックされます。

dselect / apt-get が対応していないパッケージをインストールする場合、 fink install packagename を使ってソースからコンパイルします。 このコマンドを実行する前に、 Developer Tools がインストールされているか確認して下さい。 (Developer Tools インストーラがない場合、 Apple Developer Connection で登録後、入手して下さい) 下記の unstable に関する質問も合わせて参照して下さい。

Q5.8: unstable にあるパッケージをインストールしようとすると、 fink が 'no package found' といいます。どうしたらインストールできるのですか?

A: まず、'unstable の意味を確認してください。 unstable tree にあるパッケージは、さまざまな理由により安定ではありません。 既知の問題が残っていたり、valid error があったり、あるいは十分なフィードバックがないかもしれません。 この理由により、Fink はデフォルトでは unstable tree を探さないのです。

unstable を使う場合、もしうまく行った場合 (あるいは行かなかった場合)、メンテナにメールすることを心がけてください。 あなたからのフィードバックは、stable に移行するための貴重な根拠となるのです! パッケージのメンテナを知るには、fink info packagename と実行してください。

fink-0.26 以降: fink configure を実行すれば、たくさんある質問の中で unstable tree を on にするかという質問があります。

0.26 よりも古いバージョンの Fink が unstable を使うよう設定するには、 /opt/sw/etc/fink.conf を編集し、Trees: 行に unstable/mainunstable/crypto to the Trees: を追加してください。

Fink Commander を使っている場合、Preference から unstable パッケージを使うことができます。

これらのことをするだけでは、unstable tree のパッケージ記述を自動的にはダウンロードしません。 各自で rsync または cvs の更新をする必要があります。 これは、Fink のデフォルトではないので、以下のコマンドの入力してください。

fink selfupdate

とした後、

fink selfupdate-rsync

または

fink selfupdate-cvs

その後

fink index -f
fink scanpackages

注記: Fink Commander では、同様のことが、 fink index -f 以外、できます。これだけはコマンドラインから行ってください。

すでに rsync または cvs で更新できるようになっている場合、以下のものだけで十分です:

fink selfupdate
fink index
fink scanpackages
	

もし、update 方法を知らない場合、fink --version とすることで cvs または rsync であることがわかります。

特定のパッケージ (および base パッケージ) 以外、unstable からインストールしたくない場合、 unstable を off に戻す前に update-all コマンドを実行しないよう注意してください。

Q5.9: unstable にあるパッケージをひとつだけインストールするにも、 unstable 全体を有効にしなければなりませんか?

A: いいえ。しかし、そうすることをお勧めします。 混在によって予期できない問題が発生した場合、これを直すには非常に困難です。

もし、unstable からひとつかふたつのパッケージが欲しく、他はいらないのであれば、 (fink selfupdate-cvs で) CVS 更新に変更する必要があります。 これは、 rsync では fink.conf でアクティブなツリーしか更新しないためです。 /opt/sw/etc/fink.conf を編集し、 Trees: 行に local/main がなければ追加してください。 その後、 fink selfupdate を実行して、パッケージ記述ファイルをダウンロードしてください。 次に、関連する .info ファイル (および対応する .patch ファイル) を、 /opt/sw/fink/dists/unstable/main/finkinfo (または /opt/sw/fink/dists/unstable/crypto/finkinfo) から /opt/sw/fink/dists/local/main/finkinfo へコピーします。 しかし、このパッケージは、 unstable にある他のパッケージ (またはバージョン) に依存していることもあります。 この場合、これらの .info.patch ファイルも同様にコピーします。 全てのファイルをコピーしたら、 fink index を実行することで、 Fink は 入手可能なパッケージの一覧を更新します。 ここまで終わったら、rsync に戻すことができます (fink selfupdate-rsync)。

Q5.10: sudo でパスワードを何度も何度も入力するのは疲れます。何か良い方法はありませんか?

A: sudo がパスワードを聞いてこないように設定することができます。 root 権限で visudo を開き、次の行を追加します:

username ALL =(ALL) NOPASSWD: ALL

もちろん、 username は実際のユーザー名に変えて下さい。

Q5.11: init.csh or init.sh を実行しようとすると、 "Permission denied" エラーが出ます。 何がおかしいのですか?

A: init.csh と init.sh は通常のコマンドのように実行するものではありません。 これらのファイルは環境変数の PATH や MANPATH を設定するものです。 これをシェルに保持させるには、csh/tcsh では source コマンド、bash/zsh では . コマンドを使い:

csh/tcsh の場合:

source /opt/sw/bin/init.csh

bash の場合:

. /opt/sw/bin/init.sh

と入力します。

Q5.12: うぎゃ! dselect で "[A]ccess" メニューを使ったら、パッケージをダウンロードできなくなった!

A: おそらく、 apt を Debian ミラーを指定したのでしょう。 当然、 Debian ミラーには Fink ファイルはありません。 これを直す方法には、手動と dselect を通す二通りがあります。 手動では、 root 権限で /opt/sw/etc/apt/sources.list ファイルを開き、 debian.org の行を削除して:

deb http://us.dl.sourceforge.net/fink/direct_download release main crypto
deb http://us.dl.sourceforge.net/fink/direct_download current main crypto

に置き換えます (日本では jp.dl.sourceforge.net) 。

dselect を通すには、再度 "[A]ccess" を実行し、 "apt" を選択して:

URL: http://us.dl.sourceforge.net/fink/direct_download - Distribution: release - Components: main crypto

と入力します。 他の source を追加するならば、 "release" の部分を "current" と変えて繰り返して下さい。

現在、 apt パッケージの修正版 (設定スクリプトが dselect のプラグインとして付随) が CVS から入手できます。

Q5.13: fink selfupdate か "fink selfupdate-cvs" を実行しようとした時、 "Updating using CVS failed. Check the error messages above." エラーが出ました。

A: メッセージが、

Can't exec "cvs": No such file or directory at
/opt/sw/lib/perl5/Fink/Services.pm line 216, <STDIN> line 3.
### execution of cvs failed, exit code -1

であれば、 Developer Tools をインストールする必要があります。

もし最後の行が、

### execution of su failed, exit code 1

であれば、エラーを詳細に見る必要があります。 もし接続が拒否されたとあれば:

(Logging in to anonymous@fink.cvs.sourceforge.net)
CVS password:
cvs [login aborted]: connect to fink.cvs.sourceforge.net:2401 failed:
Connection refused
### execution of su failed, exit code 1
Failed: Logging into the CVS server for anonymous read-only access failed.

あるいは

cvs [update aborted]: recv() from server fink.cvs.sourceforge.net:
Connection reset by peer
### execution of su failed, exit code 1
Failed: Updating using CVS failed. Check the error messages above.

あるいは

cvs [update aborted]: End of file received from server

あるいは

cvs [update aborted]: received broken pipe signal

であれば、 cvs サーバが過負荷になっていると思われますので、時間をおいて update を試してみて下さい。

この他、パーミッションをもっていない可能性もあります。 この場合は "Permission denied" メッセージ:

cvs update: in directory 10.2/stable/main:
cvs update: cannot open CVS/Entries for reading: No such file or directory
cvs server: Updating 10.2/stable/main
cvs update: cannot write 10.2/stable/main/.cvsignore: Permission denied
cvs [update aborted]: cannot make directory 10.2/stable/main/finkinfo: No 
such file or directory
### execution of su failed, exit code 1
Failed: Updating using CVS failed. Check the error messages above.

が出ます。この場合は cvs ディレクトリをリセットする必要があります。コマンド:

sudo find /opt/sw/fink -type d -name 'CVS' -exec rm -rf {} \;
fink selfupdate-cvs

を入力して下さい。

以上のいずれのメッセージとも異なる場合、おそらく /opt/sw/fink/dists 内のファイルを、あなたとメンテナの双方が書き換えたためです。 selfupdate-cvs の出力で、 "C" から始まる行で:

C 10.2/unstable/main/finkinfo/libs/db31-3.1.17-6.info
...
(other info and patch files)
...
### execution of su failed, exit code 1
Failed: Updating using CVS failed. Check the error messages above.

のようになっている箇所を探して下さい。 "C" というのは CVS で最新版へ更新時にコンフリクトがあったことを意味しています。

これを修正するには、 selfupdate-cvs の出力にでてきたファイルを一つずつ削除して、コマンドを再実行します。

sudo rm /opt/sw/fink/10.2/unstable/main/finkinfo/libs/db31-3.1.17-6.info
fink selfupdate-cvs

もし、cvs.sourceforge.net と述べているエラーが発生した場合:

cvs [update aborted]: connect to cvs.sourceforge.net(66.35.250.207):
2401 failed: Operation timed out

これは、2006年に sourceforge.net において CVS サーバを再構築したためです。 Fink のファイルは、現在は fink.cvs.sourceforge.net にあります。

現在のディストリビューションのバージョンを、

fink --version

などで確認してください。 もし、10.4-transitional であれば、ただの 10.4 ディストリビューションに更新する必要があります。 update script を使って更新することができます。

Q5.14: Fink を使うと、マシンがフリーズする/カーネルパニックする/固まる。助けて!

A: 2002年秋の fink-users mailing list の報告によると、こういった問題 (カーネルパニックやパッチ当て中の無限ループを含む) が発生するのはアンチウィルスソフトウェアがインストールされている時です。 Fink を使う際はアンチウィルスソフトウェアを終了する必要があるかもしれません。

Q5.15: パッケージをインストールしようとすると、 Fink がダウンロードできません。 ダウンロードサイトとは Fink よりも新しいバージョンを示しています。 何をしたらいいですか?

A: 新しいバージョンのリリースにともない、本家サイトでのパッケージソースが移動しました。

最初にまず fink selfupdate を実行して下さい。 メンテナが既に修正している場合、新しいバージョンか別のダウンロード URL のパッケージ詳細を取得できます。

もしこれでも問題が残るなら、ほとんどのソースは http://distfiles.master.finkmirrors.net/ にある (Rob Braun 氏に感謝) ので、 fink configure を実行して "Master" ソースミラー を検索して下さい。 Fink が自動的にここを探しにいきます。

これでも問題が残るなら、パッケージメンテナ ("fink describe packagename" からわかります) に URL が壊れている旨を知らせて下さい。 メンテナがいつでもメーリングリストを読んでいるとは限りません。

使えるソースを入手するには、まずは他のディレクトリ ("old" ディレクトリなど) にあるリモートサイトの中で必要なバージョンを探して見て下さい。 もし公式サイトになければ、ウェブを検索してみて下さい。 非公式サイトに必要なバージョンの tarball が見つかることがあります。 他には http://us.dl.sourceforge.net/fink/direct_download/source/ があります。 ここは Fink がバイナリとしてリリースされたパッケージのソースファイルを保存する場所です。 いずれも駄目な場合、 fink-users mailing list で古いソースをもっている人を探してみて下さい。

もしソースの tarball が見つかったら、手動でダウンロードし、 Fink ソース保存先に移して下さい: "sudo mv package-source.tar.gz /opt/sw/src/" この後、通常通り 'fink install packagename' して下さい。

ソースファイルが見つからない場合、メンテナが問題に対処するまで待つしかありません。 古いソースか、新しいバージョン用の .info と .patch ファイルへのリンクが投稿されることでしょう。

Q5.16: Fink や Fink でインストールしたものを実行しようとすると "command not found" エラーが出ます。

A: 常にこのエラーが出るようでしたら、誤ってスタートアップスクリプトを書き換えてしまった(か、書き換えに失敗した)と思われます。 /opt/sw/bin/pathsetup.sh スクリプトを実行してください。 このプログラムは、デフォルトシェルを判定し、シェルの設定に Fink のシェル初期化スクリプトを読み込むコマンドを追加します。 注記: 古いバージョンの fink では、スクリプト名が /opt/sw/bin/pathsetup.sh ではなく /opt/sw/bin/pathsetup.command となっていることがあります。 あるいは、 Fink バイナリディストリビューションのディスクイメージ内にある pathsetup.app を実行する方法もあります。

Apple X11 terminal でのみこの問題が発生するのであれば、 簡単な解決方法は X11 アプリケーションメニューの"ターミナル"を、アプリケーション->メニューをカスタマイズ...から変更します。

xterm

cコマンドの欄を

xterm -ls

とします。ここでlslogin shell を意味し、ログインセットアップが (OS X ターミナルと同様に) 使用されることになります。

/opt/sw/bin/init.* スクリプトは、/opt/sw/bin をパスに追加する以外にも様々なことをしています。 多くのパッケージは、この追加処理がなくては正常に動作しません。

source ~/.cshrc

Q5.17: Finder で /opt/sw を隠して、ユーザーが Fink の構成を壊すのを防ぎたい。

A: できます。 Development Tools がインストールされていれば、次のコマンドを実行してください:

sudo /Developer/Tools/SetFile -a V /opt/sw

これで /opt/sw が標準的なシステムのフォルダ (/usr など) のように不可視になります。 Developer Tools がない場合はサードパーティー製のアプリケーションで /opt/sw が不可視になるよう、属性値を変更してください。

Q5.18: 何もインストールできません。 "install-info: unrecognized option `--infodir=/opt/sw/share/info'" のエラーが出るだけです。

A: これは普通、 PATH の問題です。ターミナルで:

printenv PATH

と入力し、 /opt/sw/sbin が出てこないなら、環境変数を instructions 内の Users Guide を参照してください。 /opt/sw/sbin があるが、他のディレクトリ (例えば /usr/local/bin) がそれより前にある場合、 PATH の順序を変えて先頭近くに移動してください。 どうしても順序を変えられない理由があるならば、 Fink を使う時に Fink ではない方の install-info のディレクトリ名を一時的に変える必要があります。

Q5.19: 何もインストールできないし、削除もできません。 "files list file" と出るだけです。

A: 通常、このエラーはこういう形で出ます:

files list file for package packagename contains empty filename

または

files list file for package packagename is missing final newline

これは直すことができます。 エラーメッセージ中のパッケージの .deb ファイルがシステム上にあれば、その状態を確認します:

dpkg --contents full-path-to-debfile

例えば

dpkg --contents
/opt/sw/fink/debs/libgnomeui2-dev_2.0.6-2_darwin-powerpc.deb

ディレクトリやファイルの一覧が表示されたら、 .deb ファイルは大丈夫です。 もし出力されたのがファイルやディレクトリ以外であるか、 .deb ファイルがなくても、このエラーはビルドに影響しないので、次に進んでください。

バイナリインストールを試みている場合、あるいはインストールしたバージョンと現在のバイナリバージョンが一致する場合 (例えば、 パッケージデータベース で調べたなら)、 .deb ファイルを取得することができます: sudo apt-get install --reinstall --download-only packagename 。あるいは、自分でビルドすることもできます: fink rebuild packagename 。この時点ではまだインストールはされていません。

.deb ファイルを作成したら、ファイルを再構築することができます。 まず、 root になるために sudo -s と入力します (必要があれば管理ユーザーパスワードを入力する) 。 次に、このコマンドを入力します (一行で - 画面上では複数行になっていますが)

dpkg -c full-path-to-debfile  | awk '{if ($6 == "./"){ print "/."; } \
else if (substr($6, length($6), 1) == "/") \
{print substr($6, 2, length($6) - 2); } \
else { print substr($6, 2, length($6) - 1);}}' \
> /opt/sw/var/lib/dpkg/info/packagename.list

例えば、

dpkg -c /opt/sw/fink/debs/libgnomeui2-dev_2.0.6-2_darwin-powerpc.deb | awk \
'{if ($6 == "./") { print "/."; } \
else if (substr($6, length($6), 1) == "/") \
{print substr($6, 2, length($6) - 2); } \
else { print substr($6, 2, length($6) - 1);}}' \
> /opt/sw/var/lib/dpkg/info/libgnomeui2-dev.list

このコマンドは、 .deb ファイルの中身を解凍して、ファイル名以外を除いて .list ファイルに書き込んでいます。

Q5.20: dselect でパッケージを選択すると、大量のゴミがでてきます。 これはどうやったら使えますか?

A: dselectTerminal.app の関係に問題があります。 どうにかするには、 dselect を実行する前に次のコマンドを入力してください:

tcsh の場合:

setenv TERM xterm-color

before you run dselect.

bash の場合:

export TERM=xterm-color

このコマンドをログイン時に自動的に実行するには、起動ファイル (例 .cshrc | .profile) に記述して下さい。

Q5.21: Fink のバージョンをアップデートできないようです。

A: この状況専用の special instructions に従ってください。

Q5.22: 名前に空白が入っているボリュームやディレクトリに Fink を入れることはできますか?

A: 名前に空白が入っているディレクトリに Fink を入れるないよう薦めます。

Q5.23: バイナリアップデートをしようとすると、 "File not found" または "Couldn't stat package source list file" というメッセージが大量に出ます。

A: もし次のようであれば:

Err file: local/main Packages
File not found
Ign file: local/main Release
Err file: stable/main Packages
File not found
Ign file: stable/main Release
Err file: stable/crypto Packages
File not found
Ign file: stable/crypto Release
...
Failed to fetch
file:/opt/sw/fink/dists/local/main/binary-darwin-powerpc/Packages
File not found
Failed to fetch
file:/opt/sw/fink/dists/stable/main/binary-darwin-powerpc/Packages
File not found
Failed to fetch
file:/opt/sw/fink/dists/stable/crypto/binary-darwin-powerpc/Packages
File not found
Reading Package Lists... Done
Building Dependency Tree... Done
E: Some index files failed to download, they have been ignored, or old
ones used instead.

update available list script returned error exit status 1.

あるいは

W: Couldn't stat source package list file: unstable/main Packages
(/opt/sw/var/lib/apt/lists/_sw_fink_dists_unstable_main_binary-darwin-
powerpc_Packages) - stat (2 No such file or directory)

fink scanpackages をするだけです。 これによって見つからなかったファイルを作成します。

Q5.24: OS を変えたら、 Fink が認識してくれません。

A: Fink ディストリビューション(ソースとバイナリはそのサブセットです)を変更するには、 Fink に指示する必要があります。 これは Fink の新規インストール時に実行するスクリプトを実行します:

/opt/sw/lib/fink/postinstall.pl

これにより、 Fink は正しく場所を指示されます。

Q5.25: After installing a macOS update, Fink no longer recognizes my installed Command Line Tools.

A: Updates to macOS routinely break parts of Apple's Command Line Tools. If you get this error after updating your copy of macOS:

Can't resolve dependency "xcode (>= 6.2)"

Fink has lost track of Apple's Command Line Tools.

The easiest solution is to download and reinstall the Command Line Tools specific to your macOS version from https://developer.apple.com/.

Another possible solution is to run the following command:

xcode-select --install

but this often reports the following:

xcode-select: error: command line tools are already installed, use "Software Update" to install updates

However, the Tools might be in a non-functional state such that Fink still can't recognize them. In that case, a clean reinstall as described above has always worked to fix their detection with Fink.

Finally, you may need to run the command:

sudo xcodebuild -license

to agree to the software license.

Q5.26: 何かをインストールしようとしたら gzip | dpkg-deb のエラーが出る! 助けて!

A: 以下の形式のエラー:

gzip -dc /opt/sw/src/dpkg-1.10.9.tar.gz | /opt/sw/bin/tar -xf - 
### execution of gzip failed, exit code 139

あるいは

gzip -dc /opt/sw/src/aquaterm-0.3.0a.tar.gz | /opt/sw/bin/tar -xf - 
gzip: stdout: Broken pipe 
### execution of gzip failed, exit code 138

あるいは

dpkg-deb -b root-base-files-1.9.0-1 
/opt/sw/fink/dists/unstable/main/binary-darwin-powerpc/base 
### execution of dpkg-deb failed, exit code 10 
Failed: can't create package base-files_1.9.0-1_darwin-powerpc.deb

であれば、バイナリにおけるプリバインドのエラーです。修正するには:

sudo /opt/sw/var/lib/fink/prebound/update-package-prebinding.pl -f

と実行します。

Q5.27: ターミナルウィンドウを開くと、 "Your environment seems to be correctly set up for Fink already." というメッセージが出てログアウトします。

A: これは、何らかの理由で OSX ターミナルがログインする度に /opt/sw/bin/pathsetup.command を実行するように設定されているからです。 修正するには、 初期設定ファイル ~/Library/Preferences/com.apple.Terminal.plist を削除します。

他の設定を失いたくない場合、削除する代わりにテキストエディタでこのファイルを開き、 /opt/sw/bin/pathsetup.command と書かれている部分を削除します。

Q5.28: メインパーティション以外に Fink をインストールしていますが、 ソースからの更新ができません。 chowname を含んだエラーが出ます。

A: このようなエラーであれば:

This first test is designed to die, so please ignore the error
 message on the next line.
 # Looks like your test died before it could output anything.
 ./00compile............................ok
 ./Base/initialize......................ok
 ./Base/param...........................ok
 ./Base/param_boolean...................ok
 ./Command/cat..........................ok
 ./Command/chowname.....................#
 Failed test (./Command/chowname.t at line 27)
 #          got: 'root'
 #     expected: 'nobody'

、Fink がインストールされているドライブ/パーティションを 「情報を見る」し、 "所有権を無視する" を外します。

Q5.29: Fink がパッケージを更新しません。 'gnu' ミラーが見つからないと言っています。

A: エラーの最後が、

Failed: No mirror site list file found for mirror 'gnu'.

である場合、 fink-mirrors を以下のように更新します:

fink install fink-mirrors

Q5.30: Fink を更新できません。 /opt/sw/fink を移動できないからです。

A: このエラー:

Failed: Can't move "/opt/sw/fink" out of the way.

は通常、エラーメッセージと異なり、パーミッションの問題で、 selfupdate の作成した仮フォルダのひとつにあります。 これを削除するには:

sudo rm -rf /opt/sw/fink.tmp /opt/sw/fink.old

Q5.31: "No fonts found" というメッセージが出ます。

A: 次のようであれば (OS 10.4 のみ):

No fonts found; this probably means that the fontconfig
library is not correctly configured. You may need to
edit the fonts.conf configuration file. More information
about fontconfig can be found in the fontconfig(3) manual
page and on http://fontconfig.org.

次のように実行します:

sudo fc-cache

Q5.32: インストーラから Fink をインストールできません。"volume doesn't support symlinks" エラーが出ます。

A: このメッセージは、 Fink インストーラを管理者権限のないユーザーで実行すると発生します。 ログイン時に権限のあるユーザーにログインするか、Finder でユーザーを切り替えてください。

管理者アカウントを使っていても問題が発生する場合、システムのトップレベルディレクトリの パーミッションに問題があるかもしれません。 Apple の ディスクユーティリティを使い、問題の ボリュームを選択し、 First Aid タブから ディスクのアクセス権を修復 を選択してください。 If that doesn't work, then you may need to set your permissions manually via:

sudo chmod 1775 /	  
	

Q5.33: Fink を更新できない。 package architecture (darwin-i386) がシステム (darwin-powerpc) に合っていない。

A: このエラーは、PPC インストーラで Intel マシンにインストールした際に発生します。 現在のインストールを、例えば次のように削除してください:

sudo rm -rf /opt/sw

Intel マシン用のインストーラを、ダウンロードページから入手してください。

6 コンパイルの問題 - 一般

Q6.1: configure スクリプトが "acceptable cc" が見つからないといってきます。 これは何ですか?

A: ドキュメンテーションを読んでください。 パッケージをソースからコンパイルするには、 Developer Tools が必要です。 これには、 C コンパイラ cc など必要なものが入っています。

Q6.2: "fink selfupdate-cvs" をしようとしたら、このメッセージが出てきました: "cvs: Command not found."

A: Developer Tools をインストールする必要があります。

Q6.3: make に関連したエラーがでました。

A: もしメッセージが以下のようであれば

make: command not found

あるいは

Can't exec "make": No such file or directory at /opt/sw/lib/perl5/Fink/Services.pm line 190.

Developer Tools をインストールする必要があります。

もしメッセージが以下のようであれば

make: illegal option -- C

Developer Tools に入っていた GNU 版の make ユーティリティーを、 BSD 版の make に換えてしまったようです。 パッケージの中には GNU 版の make でのみサポートされている特殊機能に依存しているものも多いので、 /usr/bin/makegnumake のシンボリックリンクであることを確認してください。 bsdmake ではありません。 さらに、 /usr/local/bin/ に他の make がないことも確認してください。

Q6.4: head コマンドから変な使用方法メッセージが出ています。何がおかしいのですか?

A: もしこれでしたら:

Unknown option: 1
Usage: head [-options] <url>...

(後にオプションの説明リストが続く) head が壊れています。 これは Perl libwww ライブラリを HFS+ システムボリュームにインストールすると起こります。 この時 /usr/bin/HEAD をインストールしようとするのですが、このファイルシステムは大文字と小文字を区別しないので、 head を上書きしてしまいます。 head の方はシェルスクリプトや Makefile で良く使われる標準的なコマンドです。 Fink を使うには、オリジナルの方の head に戻す必要があります。

ソースリリースのブートストラップスクリプトは、現在はこれを確認しますが、最初のインストールにバイナリリリースを使う場合、あるいは Fink をインストールした後で libwww をインストールする場合、まだこの問題に当たります。

この問題は、 /opt/sw/bin/HEAD をインストールした場合も起こることが報告されています (Fink のパッケージではありません)。 これは簡単に解決できます: rename /opt/sw/bin/HEAD

Q6.5: あるパッケージをインストールしようとすると、他のパッケージのファイルを上書きしようとしているというエラーメッセージが出ました。

A: これはスプリットオフパッケージ (-dev, -shlibs などがついてるもの) において、ファイルが移動する時 (foo から foo-shlibs など) に発生することがあります。 両者は実質同じものなので、インストールしようとしているパッケージから上書きしてしまっても良いでしょう:

sudo dpkg -i --force-overwrite filename

ここで filename はインストールしようとしているパッケージ用の .deb ファイルです。

Q6.6: パッケージをインストールしようとした時の "execution of mv failed, exit code 1" とはどういう意味ですか?

A: StuffIt Pro がインストールされている場合、 "Archive Via Real Name" モードが設定されていると思われます。 システム環境設定の StuffIt 設定で "ArchiveViaRealName" を無効化してください。 これはいくつかの重要なシステムコールのバ再実装のバグで、この件のような不思議なエラーをたくさん出します。

この問題でない場合、 mv のエラーは通常、ビルドの前の方で発生した別のエラーを意味しています。 エラーは発生したもののビルドは続行したものです。 問題のあったファイルを追跡するには、ビルドの出力中の存在しないファイルを探します。 例えば:

mv /opt/sw/src/root-foo-0.1.2-3/opt/sw/lib/libbar*.dylib \
/opt/sw/src/root-foo-shlibs-0.1.2-3/opt/sw/lib/
mv: cannot stat `/opt/sw/src/root-foo-0.1.2-3/opt/sw/lib/libbar*.dylib':
No such file or directory
### execution of mv failed, exit code 1
Failed: installing foo-0.1.2-3 failed

この場合、 libbar ファイルをビルド出力の前の方で探します。

Q6.7: '"node" already exists' というエラーメッセージが出て、インストール | アップデートができません。

A: このようなエラーが出ます:

Failed: Internal error: node for system-xfree86 already exists

パッケージ info ファイルが変更されて依存性エンジンが混乱しているために出た問題です。 修正するには:

Q6.8: /usr/local にインストールされているライブラリやヘッダが Fink のビルドの問題を起こすことがあると聞いたけど、本当ですか?

A: そういう場合もよくあります。 これは、パッケージの configure スクリプトは Fink のパスより先に /usr/local の中のライブラリとヘッダを検索するからです。 もし問題が発生して、他の FAQ で解決ができそうになければ、 /usr/local/lib のライブラリと /usr/local/include のヘッダを確認してください。 これが原因そうであれば、 /usr/local の名前を一時的に変えてください。 例えば:

sudo mv /usr/local /usr/local.moved

ビルド後、 /usr/local を元に戻しください:

sudo mv /usr/local.moved /usr/local

Starting with macOS 10.14, it's sometimes not possible to rename /usr/local. If you get an error when renaming /usr/local directly, then rename the subdirectories inside it instead:

sudo mv /usr/local/include /usr/local/include.moved
sudo mv /usr/local/lib /usr/local/lib.moved

do your build, and then you can put /usr/local/include and /usr/local/lib back:

sudo mv /usr/local/include.moved /usr/local/include
sudo mv /usr/local/lib.moved /usr/local/lib

Q6.9: パッケージをビルドしようとしたら、 "table of contents" が古いというメッセージが出ました。何をしたらいいですか?

A: このメッセージは重要なヒントです。 メッセージはこのようなものだと思われます:

ld: table of contents for archive: /opt/sw/lib/libintl.a is out of date; 
rerun ranlib(1) (can't load from it)

この問題を起こしているライブラリに (root で) ranlib を実行する必要があります。 例えば、この例では:

sudo ranlib /opt/sw/lib/libintl.a

Q6.10: atlas をインストールしようとすると、 Fink Commander がハングアップします。

A: atlas のビルド中にユーザーにプロンプトを送るステップがあり Fink Commander がこれを表示しないからです。 代わりに fink install atlas とする必要があります。

Q6.11: stddef.h | wchar.h | stdlib.h | crt1.o が見つからない、 あるいは、"C compiler cannot create executables" というメッセージが出ます。 これはどこにありますか?

A: これらの問題は、いずれも Developer Tools の DevSDK によって提供されるヘッダファイルがないためです。 /Library/Receipts/DevSDK.pkg がシステムにあるか確認し、なければ Dev Tools インストーラを起動してカスタムインストールを選択、 DevSDK パッケージをインストールして下さい。

"cannot create executables" エラーは、Developer Tools のバージョンが 以前のバージョンの OS 用である場合にも発生します。

Q6.12: Fink が "unable to resolve version conflict on multiple dependencies" と言って、アップデートできません。

A: この問題を解決するには、パッケージを一つだけアップデートしてみてください。 次に、再度 "fink update-all" を試してみてください。 まだ問題が出るようなら、これを繰り返してください。

Q6.13: "dpkg: parse error, in file `/opt/sw/var/lib/dpkg/status'" というメッセージが出て、何もインストールできません!

A: これは、クラッシュや回復不可能なエラーなど、何らかの理由で dpkg データベースが壊れたことを意味します。 多くの場合、buildlock 中に発生するので、例えば:

package `fink-buildlock-foo-1.2.3-4':  missing version

(もちろん、foo-1.2.3-4 はあなたが見ようとしているパッケージ名)

この問題が発生した場合、superuser で /opt/sw/var/lib/dpkg/status を編集します。 エラーメッセージにある行の近くにいきます。 fink-buildlock-foo-1.2.3-4 で、 Status フィールドが、

install ok installed

となっていますが、これを

purge ok not-installed

と書き換えます。

また、これとは異なり、ファイル中にゴミがある場合があります。 この場合は、旧バージョンのデータベースをコピーします:

sudo cp /opt/sw/var/lib/dpkg/status-old /opt/sw/var/lib/dpkg/status

問題が起きる前にインストールしていたパッケージをいくつか再インストールする必要があるかもしれません。

Q6.14: freetype に関係したエラーが出ます。

A: freetype に関係したエラーにはいくつかありますが、以下のものであれば:

/usr/bin/ld: can't locate file for: -lfreetype

外来の freetype-config があるかどうか、以下のコマンドを実行して確認します。

where freetype-config

(tcsh の場合)

type -a freetype-config

(bash の場合)。 Mono フレームワークは、 /usr/bin/freetype-config をインストールし、フレームワーク内へのシンボリックリンクを作ることが知られています。

もしこのようなものであれば:

/opt/sw/include/pango-1.0/pango/pangoft2.h:52: error: parse error before '*' token 
/opt/sw/include/pango-1.0/pango/pangoft2.h:57: error: parse error before '*' token 
/opt/sw/include/pango-1.0/pango/pangoft2.h:61: error: parse error before '*' token 
/opt/sw/include/pango-1.0/pango/pangoft2.h:86: error: parse error before "pango_ft2_font_get_face"
/opt/sw/include/pango-1.0/pango/pangoft2.h:86: warning: data definition has no type or storage class 
make[2]: *** [rsvg-gz.lo] Error 1 
make[1]: *** [all-recursive] Error 1 
make: *** [all-recursive-am] Error 2 
### execution of make failed, exit code 2 
Failed: compiling librsvg2-2.4.0-3 failed

あるいは

In file included from vteft2.c:32: 
vteglyph.h:64: error: parse error before "FT_Library"
vteglyph.h:64: warning: no semicolon at end of struct or union 
vteft2.c: In function `_vte_ft2_get_text_width': 
vteft2.c:236: error: dereferencing pointer to incomplete type 
vteft2.c: In function `_vte_ft2_get_text_height': 
vteft2.c:244: error: dereferencing pointer to incomplete type 
vteft2.c: In function `_vte_ft2_get_text_ascent': 
vteft2.c:252: error: dereferencing pointer to incomplete type 
vteft2.c: In function `_vte_ft2_draw_text': 
vteft2.c:294: error: dereferencing pointer to incomplete type 
vteft2.c:295: error: dereferencing pointer to incomplete type 
make[2]: *** [vteft2.lo] Error 1 
make[1]: *** [all-recursive] Error 1 
make: *** [all] Error 2 
### execution of make failed, exit code 2 
Failed: compiling vte-0.11.10-3 failed

あるいは

checking for freetype-config... /usr/X11R6/bin/freetype-config 
checking For sufficiently new FreeType (at least 2.0.1)... no 
configure: error: pangoxft Pango backend found but did not find freetype libraries 
make: *** No targets specified and no makefile found.  Stop. 
### execution of LD_TWOLEVEL_NAMESPACE=1 failed, exit code 2 
Failed: compiling gtk+2-2.2.4-2 failed

問題は X11 | XFree86 に含まれている、 freetype | freetype-hinting パッケージ間のヘッダを混同していることだと思われます。

fink remove freetype freetype-hinting

で、両方のインストールを削除します。 もし問題が上記のようではなく、以下のようであれば:

ld: Undefined symbols: 
_FT_Access_Frame 

おそらく X11 インストールの残りファイルが原因です。 X11 SDK を再インストールしてみて下さい。

Q6.15: `Dl_info' のエラーが出ます。

A: エラーが下記のようであれば:

unix_dl.c: In function `rep_open_dl_library': 
unix_dl.c:328: warning: assignment discards qualifiers from pointer target type 
unix_dl.c: In function `rep_find_c_symbol': 
unix_dl.c:466: error: `Dl_info' undeclared (first use in this function) 
unix_dl.c:466: error: (Each undeclared identifier is reported only once 
unix_dl.c:466: error: for each function it appears in.) 
unix_dl.c:466: error: parse error before "info"
unix_dl.c:467: error: `info' undeclared (first use in this function) 
make[1]: *** [unix_dl.lo] Error 1

おそらくヘッダファイル /usr/local/include/dlfcn.h が Panther と非互換だと思われます。 迷うことなく削除して下さい。

このファイルは通常、 Open Office によってインストールされるようです。 この後、次のヘッダファイルとライブラリ /usr/local/lib/libdl.dylib を Panther に付随するファイルへのシンボリックリンクに変更します。

sudo ln -s /usr/include/dlfcn.h /usr/local/include/dlfcn.h 
sudo ln -s /usr/lib/libdl.dylib /usr/local/lib/libdl.dylib

Q6.16: Fink が gcc2 がないと言っていますが、インストールも出来ないようです。

A: gcc2 は gcc-2.95 のバーチャルパッケージです。 gcc2.95 を XCode Tools (古い OS バージョンは Developer Tools に gcc-2.95 が含まれていました) からインストールして下さい。

注記: gcc2.95 and/or gcc3.1 は gcc3.3 とコンフリクトしません。両方インストールすることもできます。

Q6.17: Fink が Failed: Can't resolve dependency "system-java14-dev" と言っていますが、そのようなパッケージはありません。

A: バーチャルパッケージだからです。 このエラーは、 Java が Software Update によって更新された場合に発生します。 更新時にヘッダファイルが削除され、 -dev パッケージが作成されなくなるためです。

Apple から、適切な Java Developer Tools パッケージをダウンロードする必要があります。 この問題の場合は、 Java 1.4.2 Developer Tools です。

Q6.18: 何をインストールしようとしても、 dpkg (subprocess): failed to exec dpkg-split to see if it's part of a multiparter: No such file or directory というエラーが出ます。 どうしたらいいですか?

A: 通常、環境変数を正しく設定することで直ります。 参照: この FAQ 項目

Q6.19: 次のメッセージが出ます:configure: error: XML::Parser perl module is required for intltool。 どうしたら良いでしょうか?

A: 自分のシステムにある Perl に合った、正しいバージョンの xml-parser-pm が必要です。 例えば、 Panther では xml-parser-pm581 が正しく、 xml-parser-pm560 ではありません ( xml-parser-pm 代替パッケージでも可)。 システムにあるのが、 Perl-5.8.1 であり、 Perl-5.6.0 ではないためです。 Jaguar でデフォルトのシステム Perl バージョンを使っている場合、 pm560 で、 Perl 5.8.0 をインストールしている場合は pm580 でも構いません。

Q6.20: パッケージをダウンロードしようとすると、 Fink が変なサイトに行こうとするけれど、 distfiles と書いてあるだけで、しかもそのファイルはそこに存在しません。

A: これは、 Fink が マスター と呼ばれるものを使おうとしたために発生しています。 上流サイトが移動しても Fink パッケージのソースが入手できるための仕組みです。 この問題は、新しい上流バージョンのパッケージがリリースされたが、 まだ Master ミラーに反映されていない場合によくおこります。

これを直すには、 fink configure を実行し、マスターミラーを最後に検索するように設定を変更します。

Q6.21: パッケージをビルドするときに、 Fink に違うオプションを使わせたい。

A: まず最初に、バリエーションを作成するようにパッケージメンテナに伝えてみてください。 これが比較的簡単な方法です。 メンテナから反応がなかったり、新しいバージョンが出てしまったり、自分で違うオプションを試してみたい場合、 Packaging TutorialPackaging Manual をお読みください。

注記:Fink は、ビルドされたマシンに依存しないよう、全ての公式パッケージにはG5 最適化などのことはされません。このようなことをしたい場合、各自でする必要があります。

Q6.22: ソースからビルドしようとすると必ず、同じライブラリの二つのバージョンをいったりきたりします。

A: 非常に複雑なビルドツリーでは、いくつかのパッケージがライブラリの特定バージョンに依存しており、 他のパッケージが他のバージョンに依存していることがあります (例 db47 vs. db44)。 結果、Fink は更新しようとしているパッケージの依存性を満たすためにインストールされていない方をインストールしようとします。

Unfortunately, due to limitations in the build-dependency engine, you may wind up with the dreaded 残念ながら、ビルド依存エンジンの限界により、恐怖の

Fink::SysState: Could not resolve inconsistent dependencies

というメッセージを、十分複雑な update-all をした場合に見ることができます。 これは通常、以下のコマンドで直ります:

fink scanpackages
sudo apt-get update
sudo apt-get install foo=1.23-4	
      

しかし、十分複雑な更新の場合には聞きません。 いくつかのパッケージを一つ一つ更新してみてください。

Q6.23: Python モジュールをビルドする際に、MACOSX_DEPLOYMENT_TARGET の問題が出ます。

A: 以下のようであれば:

running build
running build_ext
Traceback (most recent call last):
  File "setup_socket_ssl.py", line 21, in ?
    depends = ['socketmodule.h'] )
  File "/opt/sw/src/root-python24-2.4.1-1/opt/sw/lib/python2.4/distutils/core.py", line 166, in setup
SystemExit: error: $MACOSX_DEPLOYMENT_TARGET mismatch: now "10.4" but "10.3" during configure
### execution of /opt/sw/bin/python2.4 failed, exit code 1

python2* パッケージは、ビルド時に MACOSX_DEPLOYMENT_TARGET をある設定ファイルに書き、Python ビルドユーティリティはモジュールをコンパイルする際に この値を使っています。 これは、10.3 上でビルドした python24 を 10.4 上で使う場合、 つまり 10.3 => 10.4 とアップグレードしたり、 10.4-transitional バイナリディストリビューションを使ってビルドせずに更新した場合、 Python は、実際は 10.4 のところ MACOSX_DEPLOYMENT_TARGET の 値が 10.3 だと思い込むミスマッチが発生します。

上記の問題の場合であれば、fink rebuild python24 を実行し、 python パッケージを更新すれば修正されます。

Q6.24: unrecognized option `-dynamic' というエラーが libtool から出たとです。

A: このエラー:

 libtool: unrecognized option `-dynamic'

は、Apple の /usr/bin/libtool を GNU の libtool に変えてしまったことを意味します。 残念ながら、この二つの libtools は、同じことをしてくれません

これを直す唯一の方法は、ちゃんとした Apple libtool をどこから手に入れることです。 これは、 XCode Tools の DeveloperTools.pkg パッケージの一部で、 /Library/Receipts のレシートを削除した後、再インストールすることができます。 (10.4以降ならゴミ箱へ、10.3ならsudo rm -rf /Library/Receipts/DeveloperTools.pkgしてください)

7 コンパイルの問題 - 特定のバージョン

Q7.1: sed を使うパッケージビルドが失敗します。

A: これはログインスクリプト (例 ~/.cshrc) が "echo Hello" であるとか xttitle といったことをターミナルに書くと発生します。 いちばん簡単な解決方法は、問題の行をコメントアウトすることです。

もし echo を残しておきたいなら、次のようにすることもできます:

if ( $?prompt) then
echo Hello
endif

Q7.2: Fink の XFree86 パッケージに切替えたいけれど、 system-xfree86 とコンフリクトしているため xfree86-base | xfree86 がインストールできません。

A: どのような X11 でも、残念なことに、 /usr/X11R6 にインストールしなければなりません。 Fink の xfree86-basexfree86-rootless もここにインストールします。 しかし、 Fink はデータベースに無いファイルは削除しないため、 Fink 以外の X11 を自動的に置き換えることはありません。

という訳で、:

注記: 10.2.x と 最新版の Fink (>= 0.16.2) のユーザーと 10.3.x ユーザーはステップ 1 を飛ばしてください (実行しても何も起きませんが)。

1. system-xfree86 を削除します。 X11 に依存するパッケージがない場合、これは単純です。 しかし、 X11 に依存するパッケージがインストールされていることの方が多いでしょう。 これを全てアンインストールする代わりに、次のコマンドをうちます:

sudo dpkg --remove --force-depends system-xfree86

これで、他のパッケージは触らずに削除します。 system-xfree86 がなければステップ 3 に進みます。

2. XFree86 を全て手動で削除する。これは:

sudo rm -rf /Applications/XDarwin.app /usr/X11R6 /etc/X11

Apple X11 から切替える場合、 X11 アプリケーションも削除します。

3. XFree86-4.2.1 を入れるには、 Fink の xfree86-basexfree86-rootless をインストールします。 これは、ソースからなら "fink install" で、 バイナリからなら "apt-get install" または dselect です。

-あるいは-

3a. XFree86-4.3.x 以降を入れるには、 Fink の xfree86 パッケージを、 "fink install xfree86" でインストールします。 最新版 (2004年5月25日時点で XFree86-4.4.x) はまだバイナリ版がなく、 unstable ツリーのみなので、 [unstable パッケージのインストール を参照]

Q7.3: non-threaded 版の Fink XFree86 パッケージから threaded 版 (またはその逆) にはどうしたら切替えることができますか?

A: Fink 版の xfree86 を使っていて、 threaded と non-threaded を切替えたいのなら、 手動で古いバージョンを削除する必要があります。 これは、コマンドラインで:

sudo dpkg -r --force-depends xfree86-base
sudo dpkg -r --force-depends xfree86-shlibs
sudo dpkg -r --force-depends xfree86-rootless
sudo dpkg -r --force-depends xfree86-rootless-shlibs

threaded 版の場合:

sudo dpkg -r --force-depends xfree86-base-threaded
sudo dpkg -r --force-depends xfree86-shlibs-threaded
sudo dpkg -r --force-depends xfree86-rootless-threaded
sudo dpkg -r --force-depends xfree86-rootless-threaded-shlibs

FinkCommander でもパッケージを削除することができます。 ソース画面で、パッケージを選択し、次に Source Menu で "Force Remove." を選択します。

system-xfree86 を使っている場合、 前の質問を参照して削除してください。

希望するバージョンの xfree86 をインストールします:

xfree86-basexfree86-rootless

xfree86-base-threadedxfree86-rootless-threaded

普通は、ソースインストールは: "fink install" で、バイナリインストールは: "apt-get install" または dselect です。

Q7.4: libiconv が更新できません。

A: 下記の形式のエラーでしたら:

libtool: link: cannot find the library `/opt/sw/lib/libiconv.la'

以下のように実行して直すことが出来ます

fink remove gettext-dev
fink install libiconv

Q7.5: パッケージがインストールできません。c++filt がないからです。 これはどこにありますか?

A: もし、Tiger にアップデート後にエラーが

xgcc: installation problem, cannot exec `c++filt': No such file or directory

とでたら、以下のようにします:

Q7.6: Fink が、 gettext の依存性に矛盾があるとだけ表示し、更新してくれません。

A: fink selfupdate を実行して最新にした後、 fink update gettext-tools としてみてください。 古いバージョンの gettext-toolsgettext の更新を妨害していた可能性があります。

Q7.7: OS 10.5 で gtk+2 がインストールできません。

A: これは、典型的には、ライブラリがないということです。例えば: /usr/X11/lib/libXrandr.2.0.0.dylib/usr/X11/lib/libXdamage.1.1.0.dylib (あるいは /usr/X11/lib/ にある他のバージョンのライブラリ)

現状では、ベストな解決策は XCode 3.1.3 以降をインストールすることです。

Q7.8: ここに載っていないパッケージで問題があります。

A: パッケージの問題は変わりやすいので、Fink wiki に情報を載せることにいたしました。 Package issues page をご確認ください。 (訳注: wiki の性質上、wiki は英語版のみであり、翻訳の予定はありません。なお、一部日本語での情報もあります)

8 パッケージ使用上の問題 - 一般

Q8.1: このようなメッセージが大量に出ます。 "locale not supported by C library" これはまずいことですか?

A: まずいことという訳ではありません。 これはデフォルトの英語メッセージや日付フォーマットなどを使うという意味です。 これ以外はプログラムは普通に動作します。 X11 のドキュメントに、 詳細 があります。

Q8.2: いきなり変なユーザーがシステムに現れました。 ユーザー名は、 "mysql", "pgsql", "games" などです。 こいつらはどこから来たのですか?

A: Fink を使って passwd というパッケージをインストールしたのでしょう。 passwd は、セキュリティー上の問題からいくつかのユーザーを追加します。 Unix システムでは、ファイルやプロセスの "所有者" を使ってパーミッションやセキュリティーをチューニングするのです。 Apache や MySQL のようなプログラムは、"所有者" が必要で、これらの daemon に root を割り当てると安全ではなくなります。 (Apache に、システム上の全てのファイルへいきなり書き込み権限が与えられたと思ってみてください) このため、 passwd パッケージはユーザーを必要とするパッケージにユーザーを追加するのです。

急にユーザーが "システム環境設定: ユーザー" ペイン (10.2.x) あるいは "システム環境設定: アカウント" ペイン (10.3.x) に現れるのは不安ですが、削除したい気持ちを押えてください。

passwd パッケージのインストール中に、Fink がユーザーを追加するか尋ねますので、実際はいきなりではないはずです。

Q8.3: Fink でインストールしたソフトウェアを使って、自分で何かをコンパイルするにはどうしたらいいのですか?

A: Fink 以外でなにかをコンパイルしようとする場合、 コンパイラとリンカに、Fink がインストールしたライブラリやヘッダがどこにあるのかを伝える必要があります。 また、コンパイラにターゲットのアーキテクチャーを使うよう伝える必要もあります。 標準的な configure/make を使用するパッケージの場合、 以下の環境変数を設定する必要があります:

-bash-

export CFLAGS=-I/opt/sw/include 
export LDFLAGS=-L/opt/sw/lib 
export CXXFLAGS=$CFLAGS 
export CPPFLAGS=$CXXFLAGS 
export ACLOCAL_FLAGS="-I /opt/sw/share/aclocal"
export PKG_CONFIG_PATH="/opt/sw/lib/pkgconfig"
export PATH=/opt/sw/var/lib/fink/path-prefix-clang:$PATH
export MACOSX_DEPLOYMENT_TARGET=10.9

-tcsh-

setenv CFLAGS -I/opt/sw/include 
setenv LDFLAGS -L/opt/sw/lib 
setenv CXXFLAGS $CFLAGS 
setenv CPPFLAGS $CXXFLAGS 
setenv ACLOCAL_FLAGS "-I /opt/sw/share/aclocal"
setenv PKG_CONFIG_PATH "/opt/sw/lib/pkgconfig"
setenv PATH /opt/sw/var/lib/fink/path-prefix-clang:$PATH
setenv MACOSX_DEPLOYMENT_TARGET 10.9

(実行 OS が 10.9 以降の場合)

これを起動ファイル (e.g. .cshrc | .profile) に入れておくと、自動的に設定され、最も簡単です。 これらの環境設定を使用しないパッケージの場合、コンパイル行に "-I/opt/sw/include" (ヘッダファイル) と "-L/opt/sw/lib" (ライブラリ) を追加する必要があるでしょう。 パッケージによっては、同様だが非標準な EXTRA_CFLAGS or --with-qt-dir= などのオプションを使っているかもしれません。 "./configure --help" をすることで、こうした configure オプションを知ることができます。

また、ライブラリパッケージなどは、 対応する開発ヘッダ (e.g. foo-1.0-1-dev) をインストールする必要があるかもしれません。

Q8.4: Apple X11 の Application メニューを使うと、 Fink からインストールしたアプリケーションの起動できません。

A: Apple X11 は Fink の環境設定を認識しません。 このため、Applications メニューも PATH を認識せず、 Fink アプリケーションを探すことができません。 解決するには、 Fink からインストールしたアプリケーションに:

source /opt/sw/bin/init.sh ; 

と追加します。例えば、 Fink からインストールした GIMP の場合、 GIMP の Command 欄に:

source /opt/sw/bin/init.sh ; gimp

と入力します。

あるいは、 .xinitrc ファイル (自分のディレクトリ内の) の一行目に:

source /opt/sw/bin/init.sh

と追加します。

Q8.5: X11 の種類が多くて迷っています。 Apple X11, XFree86 などなど、どれをインストールしたら良いのですか?

A: いずれも (XFree86 のコードをベースとした) XFree86 の派生ですが、細かな違いがあります。 Jaguar と Panther では選択肢も変わります。

Panther では:

Jaguar では、一番使われていて Fink パッケージが使えるのは:

これ以外の選択は、 Running X11 document を参照してください。

Q8.6: アプリケーションを実行しようとすると、 "cannot open display:" というメッセージがでます。 どうしたら良いですか?

A: このエラーは、システムが X ディスプレイと通信できていないことを意味します。 以下を確認してください:

1. X (Apple's X11, XFree86, ...) を起動。

2. DISPLAY 環境変数が設定されていることを確認する。デフォルトに設定された X では、 tcsh では:

setenv DISPLAY :0

bash の場合:

export DISPLAY=:0

と入力します。

Q8.7: 自分の好きなプログラムが Fink にありません。 Fink に推薦したいのですが、どうしたら良いですか?

A: Package Request Tracker の Fink プロジェクトページから推薦してください。

注記: SourceFourge の ID が必要です。

Q8.8: system-* "virtual packages" というのを時々見かけますが、 インストールも削除もできません。 これはいったいなんですか?

A: system-perl のような名前のパッケージは代替パッケージです。 これは、実際にはファイル等を含んでいる訳ではなく、 fink 外で手動でインストールされたプログラムを fink に伝えるための仕組みとして存在します。

この仕組みは10.3 ディストリビューションから導入されました。 ほとんどの代替パッケージは自分でインストールや削除できるものではありません。 その代わりに、手動でインストールされたプログラム一覧を元に fink プログラム自体が作成する "Virtual Packages" パッケージデータ構造となっています。 fink は、それぞれのパッケージについて特定の場所の特定のファイルを確認し、 見つかった場合はバーチャルパッケージがインストール済みと判断します。

fink が認識しているインストール済みの一覧は、 fink-virtual-pkgs を実行することで見ることができます。 --debug フラグを追加すると、具体的にどのファイルを見ているのかという診断情報も確認できます。

任意のプログラムを (fink 外で) インストールし、 fink にこれを認識させる仕組みは残念ながらありません。 configure やコンパイルフラグ、パス名などを確認するのは非常に困難なためです。

以下は、 fink が定義するバーチャルパッケージのうち最も重要なものです (fink-0.19.2 時点) :

9 パッケージ使用上の問題 - 特定のパッケージ

Q9.1: XMMS から音がでません。

A: XMMS設定で "eSound Output Plugin" を選択しているか確認してください。 おかしなことに、デフォルトでは disk writer プラグインが選択されています。

これでも音がでないか、 XMMS がサウンドカードを見つけられないといっているなら:

esd は root ではなく一般ユーザーで実行されるよう設計されていることに注意してください。 通常、ファイルシステムソケット /tmp/.esd/socket を経由して通信します。 esd クライアントを別のマシンでネットワーク経由で実行する場合、 -tcp-port の切替えのみが必要です。

この他に、 10.1 で XMMS がクラッシュするという報告があります。 この件に関しては、まだ分析も修正もしていません。

Q9.2: nedit でファイルを編集していると、他のファイルを開く時にウィンドウが出ますが、反応がありません。

A: これは最近のバージョンの neditlesstif の既知の問題で、他のシステムでも同様です。 File-->New でウィンドウを開き、次のファイルを開くと問題を回避できます。

この問題は nedit-5.3-6lesstif から openmotif3 に依存するようになり、解決されました。

Q9.3: 助けて! XDarwin を起動してもすぐ終了しちゃう!

A: 慌てない、慌てない。 Running X11 ドキュメントには、この問題の 問題対処法の節 (英語版) があります。

Q9.4: XDarwin を起動しようとすると、このメッセージがでます "xinit: No such file or directory (errno 2): no server "/usr/X11R6/bin/X" in PATH"。

A: まず、X の起動スクリプト ~/.xinitrc が init.sh を読み込んでいるか確認してください。

Jaguar では、全ての xfree86 パッケージがビルドされるが、実際には xfree86-basexfree86-base-shlibs だけがインストールされていることがあります。 xfree86-rootlessxfree86-rootless-shlibs がインストールされているかを確認し、なければ fink install xfree86-rootless で解決です。

もしインストールされているなら、 fink rebuild xfree86-rootless を試してください。 これがうまくいかない場合、 /usr/bin/X11R6 が PATH に含まれているか確認してください。

Q9.5: Apple X11 の delete キーを、 XDarwin のように使いたいのです。

A: XDarwin と Apple X11 で delete キーの挙動が違うという報告がありますが、これは X の起動ファイルに以下を追加することで調整できます:

.Xmodmap:

keycode 59 = Delete

.Xresources:

xterm*.deleteIsDEL: true
xterm*.backarrowKey: false
xterm*.ttyModes: erase ^?

.xinitrc

xrdb -load $HOME/.Xresources
xmodmap $HOME/.Xmodmap

Q9.6: GNOME 1.x から GNOME 2.x にアップグレードしたら、 gnome-session がウィンドウマネージャーを開かなくなりました。

A: GNOME 1.x gnome-session は自動的に sawfish ウィンドウマネージャーを呼出していましたが、 GNOEM 2.x では ~/.xinitrcgnome-session の前に呼び出さなくてはなりません。

...
exec metacity &
exec gnome-session

注記: この問題は GNOME 2.4 では発生しません。 gnome-session を実行することでウィンドウマネージャーを呼び出すようになりました。

Q9.7: Panther で Apple X11 にアップグレードしたら、ウィンドウのタイトルバーが消えました。

A: あなたは X11 を Panther に付属する "X11 1.0 - XFree86 4.3.0" にアップグレードしなかったようです。 Disk 3 の X11.pkg から X11 をインストールできます。

Q9.8: X11 と Fink に問題があります。

A: 二つの可能性が考えられます。

Q9.9: まだ X11 と Fink の問題が解決されません。

A: Fink が XFree86 または X.org を要求する10.2 からの X11 とアップグレード のヒントで問題が解決されないか、自分の問題と異なる場合、 X11 をきれいに削除し、代替パッケージと X11 関連パッケージを削除します:

Leopard では、

sudo pkgutil --forget com.apple.pkg.X11User
sudo pkgutil --forget com.apple.pkg.X11SDKLeo

を実行します。次に、10.4 と 10.5 では、

sudo dpkg -r --force-all system-xfree86 system-xfree86-42 system-xfree86-43 \
xorg xorg-shlibs xfree86 xfree86-shilbs \
xfree86-base xfree86-base-shlibs xfree86-rootless xfree86-rootless-shlibs \
xfree86-base-threaded xfree86-base-threaded-shlibs \
xfree86-rootless-threaded xfree86-rootless-threaded-shlibs
rm -rf /Library/Receipts/X11SDK.pkg /Library/Receipts/X11User.pkg
fink selfupdate; fink index

と実行します。 (最初の行は、存在しないパッケージを削除しようとしているという警告の場合もあります) 次に、Apple X11 (および、必要であれば X11SDK) を再インストールするか、 10.4 の場合、XFree86 や X.org などの他の X11 を再インストールします。

まだ問題がある場合、

fink-virtual-pkgs --debug

と実行することで何が不足しているかの情報が得られます。

古いバージョンの fink を使っている場合、Perl スクリプト (Martin Costabel 作成) で同様の情報が得られます。

Q9.10: Tiger (OS 10.4) にアップデート後、GTK アプリを使うと必ず _EVP_idea_cbc に関連したエラーが出ます。

A: これは、 Tiger (10.4.1 現在) のダイナミックリンカのバグによるものです。 以下のようにコマンド名の前に追加することで、とりあえず起動させることができます:

env DYLD_FALLBACK_LIBRARY_PATH=: 

例えば、 gnucash の場合

env DYLD_FALLBACK_LIBRARY_PATH=: gnucash

この方法は、Apple X11 のアプリケーションメニューからでも、ターミナルからでも有効です。

これをグローバルに設定する (スタートアップスクリプトと .xinitrc、GNOME を使う場合には必須) のも良いでしょう。 (ログインシェルに関わらず) .xinitrc と、 bash ユーザーは .profile (または他のスタートアップスクリプト) に、

export DYLD_FALLBACK_LIBRARY_PATH=:

と記述し、tcsh ユーザーは、同様に .cshrc (または他のスタートアップスクリプト) に、

setenv DYLD_FALLBACK_LIBRARY_PATH :

と記述します。

これは base-files-1.9.7-1 以降では自動的に追加されます。

Q9.11: どの GNOME アプリケーションでも、ヘルプ機能が使えません。

A: yelp というパッケージをインストーする必要があります。 このパッケージは、暗号化を使用するため GNOME バンドルに含まれていません。 ヘルプシステムを使用するためだけの理由で、GNOME 全てを crypto ツリーに入れることはしないという判断がされています。


Copyright Notice

Copyright (c) 2001 Christoph Pfisterer, Copyright (c) 2001-2020 The Fink Project. You may distribute this document in print for private purposes, provided the document and this copyright notice remain complete and unmodified. Any commercial reproduction and any online publication requires the explicit consent of the author.


Generated from $Fink: faq.ja.xml,v 1.50 2023/08/04 04:42:29 nieder Exp $