複数パッケージをインストールする場合はライブラリのパスに気をつける

| | トラックバック(1)

またまたELFさんとこからTBをもらいました。
ありがとうございます。

続: includeとlibはワイルドカード指定はよくないのでは?

シンボリックリンクにしなかったのはhttpd.confを修正したくなかったから(趣味の問題ですね

僕も極力オリジナルのファイルは修正しないようにしてます。なので別ファイルに

<Directory "/var/www/cgi-bin">
Options FollowSymLinks
</Directory>

と書いてます。

パーティションが同じなら cp ではなくてハードリンクでもいいと思います。ハードリンクならバイナリが書き換えられても大丈夫だし、設定ファイルも変更する必要がない。

ABIがデグレードした場合,foo-1.1.1のABIに依存するバイナリはことごとく実行できなくなります. また,アップグレードの場合でも動作しなくなる場合があります.

この辺は /etc/ld.so.conf.d でライブラリパスを追加してやると問題ないです。ライブラリにはバージョン番号がついている(はず)なので、たとえシンボリックリンクでデフォルトの参照先を変更しても実行時にはちゃんとコンパイル時にリンクしたバージョンのライブラリを参照してくれます。逆に言うと実行時にコンパイル時にリンクしたバージョンのライブラリを参照しようとするので、ちゃんと過去のバージョンのライブラリを残しておかないと、実行できなくなります。

Red Hat 系でベタなところだとcompatシリーズのパッケージ. これでgcc 4系(ABI的には3.4系も)3.2系,2.96系が共存します.opensslもありますね(openssl-*,openssl097fとか). 私も同様なやり方でいくつかの独自パッケージを共存させています(ABIが変化したときに依存関係を崩さずにアップデートとかでは常套手段)

できないって言い切っちゃうのは、よくない表現でしたね。すみません。

もちろん過去との互換性を保つために古いライブラリ類のパッケージが存在するのは知ってます。かつては僕もディストリ作ってましたから。この手のパッケージは過去の互換性のために存在するので、ライブラリや実行ファイルのみの存在なんですよね。ヘッダファイルの共存まではできない。なので、任意のバージョンのライブラリにリンクすることができないという問題があります。

トラックバック(1)

このブログ記事を参照しているブログ一覧: 複数パッケージをインストールする場合はライブラリのパスに気をつける

このブログ記事に対するトラックバックURL: http://blog.bz2.jp/bz2mt/mt-tb.cgi/121

ウェブページ

Powered by Movable Type 4.21-ja

このブログ記事について

このページは、masatoが2006年2月28日 11:59に書いたブログ記事です。

ひとつ前のブログ記事は「未踏ユース報告会に参加してきた」です。

次のブログ記事は「複数パッケージをインストールする場合はライブラリのパスに気をつけるへの返答の返答」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。