Fink

F.A.Q. - 8. パッケージ使用上の問題 - 一般

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

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

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

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

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

  • 第一に、あなたはユーザーを利用するパッケージをインストールする選択をしたのです。 ユーザーを削除したら意味がありませんよね?
  • 実際、 Mac OS X には既にユーザーが追加されていますが、気づいていないのです。 www, daemon, nobody などがそうです。 これらのユーザーは、ある種のサービスを行なう Unix 流のやり方なのです。 passwd パッケージは、 Apple が提供していないユーザーを追加するだけです。 Apple がインストールしたユーザーは、 NetInfo マネージャ.app で見ることができます: niutil -list . /users
  • このユーザーを削除することにした場合、十分気をつけてください。 "システム環境設定: ユーザー" ペイン (10.2.x) あるいは "システム環境設定: アカウント" ペイン (10.3.x) から追加したユーザーのファイルには、適当な管理者権限が割り振られます。 管理者アカウントのパーミッションが混乱するという報告があります。 これはシステム環境設定のバグで、 Apple には報告されています。 安全にユーザーを削除するには、 NetInfo マネージャ.app を使うか、ターミナルから niutil コマンドを入力します。 NetInfo の詳細については、 niutil の man ページを読んでください。

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

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

回答: 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) をインストールする必要があるかもしれません。

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

回答: 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

と追加します。

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

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

Panther では:

  • Apple X11 (3枚目のディスク): X11 関連のプログラムをコンパイルや Fink でソースインストールする場合、 X11SDK (XCode ディスク) も忘れずにインストールする

  • 4.4.x built via Fink: xfree86xfree86-shlibs のパッケージをインストールする

  • X.org built via Fink: xorgxorg-shlibs のパッケージをインストールする

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

  • Fink でビルドする 4.2.x: xfree86-basexfree86-rootless または xfree86-base-threadedxfree86-rootless-threaded (および、それぞれの -shlibs) をインストール

  • Fink でビルドする 4.3.x: xfree86xfree86-shlibs パッケージをインストール

  • Apple の 4.2.x (User+SDK パッケージがインストールされている場合): system-xfree86 パッケージが自動的にインストールされる。 ユーザーはインストールを行わない (注記: Jaguar 用の Apple X11 Public Beta は既に入手不可能です。 この方法は以前入手した人のみに有効です。)

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

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

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

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

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

setenv DISPLAY :0

bash の場合:

export DISPLAY=:0

と入力します。

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

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

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

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

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

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

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

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

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

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