ライブラリのインポート

ライブラリのインポート

Red Hat 6.5を実行しているコンピュータでプログラムを実行しようとしています。これにより、次の 3 つのエラーが発生します。

"/lib64/libc.so.6: version `GLIBC_2.14' not found"
"/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found"
"/lib64/libm.so.6: version `GLIBC_2.15' not found"

明らかにこのライブラリをインストールする必要がありますが、検索時に「sudo apt-get」を実行することを提案する解決策だけが見つかりましたが、残念ながら(sudoアクセスなしでは)実行できません。したがって、sudoなしでインストールするにはソリューションが必要です。 (編集:このシステムにはapt-getはありませんが、私の印象はyumがまったく同じではないということです。それでもまだルートが必要です)。

また、ソリューションが自分のアカウントまたは実行しようとしているプログラムにのみ影響を与え、システムの他のユーザーには影響しないことを願っています。

このようなことをどのように達成するかについての支援を受けることができれば幸いです。または、これが不可能な場合(好奇心や理由のため)、これについて知りたいです。

答え1

したがって、知っておくべき2つのことは次のとおりです。

  • 図書館を入手する方法
  • 図書館の利用方法

ライブラリのインポート

私はapt-getほどyumに慣れていません。

必要なライブラリのバージョンがディストリビューションで使用されない場合があります。この場合、ライブラリを取得する方が難しく、ソースからビルドする必要があるかもしれません。

もしそうなら...

apt-getの指示を見ました。これはダーバン(UbuntuとMintを含む)。 Yumは親戚のための同様のツールです。赤い帽子(FedoraとCentosを含む)。 Yumは「RPM」をインストールするために使用され、apt-getはDPKGをインストールします。

次から始めましょう:

  1. 必要なRPMをダウンロードしてください
  2. 抽出速度

図書館の利用

必要なディレクトリにライブラリを配置してから、環境変数を使用できます。LD_LIBRARY_PATHこのディレクトリを参照してください。

障害物があります!私が知る限り方法はありません次へ追加デフォルトのライブラリパスに置き換えるには、完全に置き換えてください。PATHとは異なり、LD_LIBRARY_PATHデフォルトでは設定されていません。したがって、これを設定するには、必要な各ライブラリディレクトリが必要です。

export LD_LIBRARY_PATH=/home/me/my-libs:/lib:/usr/lib: ... and the rest

どのlibディレクトリが必要かわからない場合は、次のようにプログラムを分析できます。ldd環境変数を設定する前の例:

ldd /bin/bash
    linux-vdso.so.1 (0x00007fff55394000)
    libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007fb13c31f000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fb13c319000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb13c12f000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fb13c480000)

/lib:/lib64bashを含める必要があることがわかります。

答え2

あなたが実行したいプログラムには、現在システムにインストールされているよりも最新のGLIBCが必要です。残念ながらGLIBCなので、ルートアクセスなしでシステム全体に影響を与えずに最新バージョンを入手する方法はありません。プログラムのアップストリームサイトを確認して、RHEL 6がそれをサポートしていることを確認してください。

関連情報