電子書籍の厳選無料作品が豊富!

GLIBC_2.4 以上がインストールされていない環境で

perlで開発中に、libcのバージョンが古いというエラーが出ております。
しかし、事情により、通常のインストールができません。

どうにかして、別サーバから取得したsoファイルなどを使って、GLIBC_2.4以上を読み込ませることはできないでしょうか。

いま、外部サーバから取得したlibc-2.5.soがあります。これをサーバ上にアップロードして、perlから使用できるようにする方法はありますか?


あまり詳しくないのですが、Dynaloader などは用途が違うのでしょうか。


すみませんが、宜しくお願い致します。


エラーメッセージ(一部伏字):
Can't load '~~~i386-linux-thread-multi/auto/Digest/SHA1/SHA1.so' for module Digest::SHA1: /lib/tls/libc.so.6: version `GLIBC_2.4' not found (required by ~~~~/i386-linux-thread-multi/auto/Digest/SHA1/SHA1.so) at /usr/lib/perl/5.8/DynaLoader.pm line 225.
at ~~~~/Digest/HMAC_SHA1.pm line 5

A 回答 (3件)

基本的に同等の代替品を用意することになります。



・そのサーバ用でコンパイルする (No.2さんの方法)
・同等の古い環境を用意してそこでコンパイルして持って行く
・代わりにDigest::SHA::PurePerlを使う

あたりです。
    • good
    • 0

Perl Moduleのインストールは、下記のコマンドで行うのが簡単です。


# perl -MCPAN -e shell
cpan> install Digest::SHA1

この方法は、Cソースのコンパイルも実行されるので、libcのバージョンの不一致が解消されると思います。

インターネットにproxy経由でアクセスしている場合は、環境変数http_proxyの設定が必要です。
    • good
    • 0

努力と根性でなんとかなるかもしれんけど, それは通常「勧められる方法」ではないと思う. その「サーバ」上で当該モジュールを作るのが

ベターだろう.

この回答への補足

ありがとうございます!

それでは、サーバ上でモジュールを作る事ができたとして、古い環境は生かしつつ、特定のプログラムの実行時にだけ、新しいモジュールを動かすという事は可能なのでしょうか?

補足日時:2010/08/18 08:34
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!