Fedora を壊さずに特定のライブラリを使用してツールを構築するにはどうすればよいでしょうか?

Fedora を壊さずに特定のライブラリを使用してツールを構築するにはどうすればよいでしょうか?

これまでのところ、Fedora 16の標準コア開発コンポーネントから逸脱する必要はありませんでした。クラッターMXプロジェクトただし、このライブラリには glib-2.0.32 が必要です。これに加えて、glib-2 には libffi-3.0.11 が必要です。

ソースをダウンロードしてこれらのライブラリをビルドすることはできますが、インストールするとシステムの残りの部分が壊れてしまうのではないかと心配です。

クラッターMXプロジェクトautotools を使用し、glib-2 バージョンを検索します。

質問は次のとおりです:

  1. 新しいコンポーネントをビルドしてインストールした後、何か問題が発生した場合、yum または同様のものを使用して元に戻すことができますか?

  2. インストールされたヘッダーを別のディレクトリで探すように autotools を設定する方法はありますか?

答え1

新しい Gtk/Gnome ライブラリをシステム ディレクトリにインストールしないでください。下位互換性が低く、既存のプログラムが壊れる恐れがあります。

新しいライブラリを別のディレクトリ階層にコンパイルしてインストールします。./configure --helpライブラリをコンパイルするときにライブラリへのパスとインクルードファイルを指定する方法を確認するには、を実行します。たとえば、

PANGO_CFLAGS
            C compiler flags for PANGO, overriding pkg-config
PANGO_LIBS  linker flags for PANGO, overriding pkg-config

次に、次の環境変数を設定します。

export PANGO_CFLAGS='-I /path/to/my/gnome/stuff/include'
export PANGO_LIBS='-L /path/to/my/gnome/stuff/libs'

--prefix=/path/to/my/gnome/stuffに渡す./configureと、すべてが独自のディレクトリにインストールされます。

または、多くのライブラリをインストールする必要がある場合は、すべてを含めて再構築すると簡単になります。パッケージ構成.pkg-config下に/path/to/my/gnome/stuffもインストールして設定します

export PKG_CONFIG=/path/to/my/gnome/stuff/bin/pkg-config

答え2

自動ツール経由で依存関係を検索するソースには、それらの依存関係が定義されている configure.ac ファイル (および/または Makefile.am、これについてはよくわかりません) があります。ほとんどの場合、ユーザー/IDE は現在インストールされているバージョンのライブラリを依存関係として設定しますが、実際には最新バージョンでは必要ありません。

必要なバージョンを自分のバージョンに変更して、パッケージをビルドしてみてください。

autotools に別のパスを直接参照させることはできませんが、私の記憶が正しければ、autotools は pkg-config を使用してパッケージのインストールの詳細を決定します (man pkg-config)。環境変数 PKG_CONFIG_PATH によって、pkg-config に他のディレクトリを参照するように指示できます。ただし、pkg-config パスは、最新のライブラリが実際にどこかにインストールされている場合にのみ機能します。ただし、*.pc ファイルを編集して、clutter-mx にそれらのライブラリを静的にリンクさせることができると思います。

ライブラリの 2 つのバージョンをインストールし、一方を時々使用し、他方を時々使用すると、問題が発生する可能性があります。rpm によってそこに置かれたファイルを実際に置き換えると、ほぼ失敗します。

私のアドバイスは、ビルド依存関係を変更するか、必要に応じて、ライブラリ XY のより新しいバージョンが必要な理由を特定し、clutter-mx ソースを変更して最新バージョンを必要とせず、現在のバージョンで動作するようにすることです。次に良いアドバイスは、必要なライブラリのディストリビューションのパッケージを取得/ビルドしてインストールすることです。ディストリビューション、つまりパッケージ マネージャーによって設定された世界から抜け出すことは絶対にしないでください。そこには邪悪な力が存在します。:-)

関連情報