CentOS 6.5でglibcを2.14に更新する方法


47

CentOS 6.5マシンにAndroid NDKをインストールしたい。しかし、プログラムを実行したとき、実行するにはglibc 2.14が必要であると書かれています。私のCentOS 6.5にはGlibc 2.12のみがインストールされています。だから私はglibcを更新しようとしました:

$ sudo yum update glibc

しかし、その後、glibcバージョンは2.14ではなく2.12のままであることがわかりました。

$ ldd --version
ldd (GNU libc) 2.12

glibc 2.14はCentOSリポジトリで利用できない場合があります。それでは、CentOS 6.5でglibc 2.14に更新するにはどうすればよいですか?


2
GLibC 2.14を含むCentOS7へのアップグレードは、GLibCを2.12から2.14にアップグレードするよりも簡単です。参照してくださいSkypeのコールレコーダー
eyoung100

@ eyoung100まだ7ではなくCentOS 6.5が必要です。Glibcを2.14にアップグレードする簡単な方法はありますか?どうも!
トンガ14

3
いいえ、理由については他の回答をご覧ください。
eyoung100 14

あなたの答えに基づいて、最良の解決策はCentOS 7にアップグレードするか、glibc 2.12を必要とする古いバージョンのNDKを使用することです。コメントしてくれてありがとう。
トンガ14

1
また、中にNDKを実行するためにCentOS7のchroot環境をインストールすることができます。
derobert

回答:


68

あなたは更新できませんglibcCentos 6安全に。ただし2.142.12簡単に一緒にインストールし、それを使用してプロジェクトなどをコンパイルできます。方法は次のとおりです。

mkdir ~/glibc_install; cd ~/glibc_install 

wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz

tar zxvf glibc-2.14.tar.gz

cd glibc-2.14

mkdir build

cd build

../configure --prefix=/opt/glibc-2.14

make -j4

sudo make install

export LD_LIBRARY_PATH="/opt/glibc-2.14/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"

3
言及したいのは、遅いAWSでのビルドプロセスには2.5時間かかることです。次の情報で誰かに役立つかもしれません:上記の手順はpsycopg2問題を修正しImportError: /lib/libc.so.6: version 'GLIBC_2.14'ます(私は
Centos

1
素晴らしい答えです!私はこの答えに正確に従い、それは魅力のように働きました。ありがとう
thonnor

2
それ以降のバージョンにも使用できます。次のように強調表示されているように、「2.14」を「2.23」または必要なバージョンに変更します/usr/local/lib/somlelib.so: undefined reference to 'somefunction@GLIBC_2.23'(最後の数桁はバージョンです)。コンパイルを高速化するには、CPUなどに8つのスレッドがある場合にmake -j8を使用します。鉱山は数分で完了しました。
ロエルヴァンデパール

relocation error: libc.so.6: symbol _dl_find_dso_for_object, version GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2 with link time referenceエクスポートフェーズの後(コマンドを実行するとき)が残っています。誰でも助けることができますか?@ロエル
ベルカ

1
おかげで、期待通りに動作しましたCENTOS 6.10。私は、この行を置き換えsudo make installmake install、私は根であった私のユーザーは、sudoersファイルではありませんでしたので、
会計士م

7

glibc 2.14を並行してインストールするには、configureプレフィックスを追加します。

tar zxvf glibc-2.14.tar.gz
cd glibc-2.14
mkdir build
cd build
../configure --prefix=/opt/glibc-2.14
make -j4
make install

このプロセスに従って、2.14をビルドできますが、glibcを探す場所をコンパイラーに指示する必要があります。

以下は、glibcをプログラムに公開する方法です。

  1. LD_LIBRARY_PATH = / opt / glibc-2.14 / lib

    LD_LIBRARY_PATHをエクスポートします。

    ライブラリは、現在のログインセッション中に公開されます。

  2. このように新しいglibcバージョンを永続的にリンクできますが、以下の警告をお読みください:

    ln -sf /opt/glibc-2.14/glibc-2.14.so /lib/libc.so.6

libc.so.6は単なるシンボリックリンクであるため。上記のコマンドを実行すると、新しいglibcライブラリへのリンクポイントが作成されます。ただし、Linuxには多くのプログラムが古いバージョンに依存しており、動作しなくなるため、この手順はお勧めしません。


ライブラリの公開の詳細については+1
Accountantم

2

一般的な代替手法。GLIBC 2.14を並行してインストールする(/ optディレクトリにインストールする)コアOSを壊すことなく、それを必要とするプログラムで使用可能になります。


7
どうしますか?rpmをダウンロードして?
rncrtr
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.