TL; DR:
readelf --version-info /root/.cache/Python-Eggs/python_igraph-0.7.1.post6-py2.7-linux-x86_64.egg-tmp/igraph/_igraph.so | grep -Po '(?<=GLIBC_)([\d.]*)' | sort -Vr | head -1
2.14
readelf --version-info /root/.cache/Python-Eggs/python_igraph-0.7.1.post6-py2.7-linux-x86_64.egg-tmp/igraph/_igraph.so | grep -Po '(?<=GLIBCXX_)([\d.]*)' | sort -Vr | head -1
3.4.15
はのは、システムが提供するか見てみましょう::
は
conda install -yc nehaljwani python-igraph=0.7.1.post6
さて、依存関係が共有ライブラリのために存在するバージョン管理された見てみましょう
strings /lib64/libc.so.6 | grep -Po '(?<=GLIBC_)([\d.]*)' | sort -Vr | head -1
2.12
strings /usr/lib64/libstdc++.so.6 | grep -Po '(?<=GLIBCXX_)([\d.]*)' | sort -Vr | head -1
3.4.13
ご覧のとおり、3.4.13
は<です3.4.15
および2.12
は< 2.14
であり、したがって共有ライブラリ_igraph.so
はロードされません。
オルタナティブ1:使用condaのgccとlibxml2のビルドパッケージを構築するための
さて、あなたはいくつかのオプションを得たので。
yum install -y gcc-c++ libxml2-devel
bash Miniconda2-4.2.12-Linux-x86_64.sh -b -p ~/m2
source ~/m2/bin/activate
conda install -y conda-build
conda install -yc marufr python-igraph=0.7.1.post6
conda install -y gcc libxml2
export LD_LIBRARY_PATH=~/m2/lib/
conda build $CONDA_PREFIX/pkgs/python-igraph-0.7.1.post6-py27_0/info/recipe/
conda remove -y python-igraph
conda install $CONDA_PREFIX/conda-bld/linux-64/python-igraph-0.7.1.post6-py27_0.tar.bz2
python -c 'import igraph; print igraph.__version__'
0.7.1
私はcondaからのgccを使用して、私はパッケージをテストしながら、それは$CONDA_PREFIX/lib/libstdc++.so
の代わりに、システムのlibstdc++.so
を選ぶだろうように、LD_LIBRARY_PATH
を設定する必要がありましたことをここに注意してください。したがって、次にパッケージを作成するときは、gcc
をcondaを使用してインストールする必要があります。 Meh、あまりにも多くの仕事。
2オルタナティブ:パッケージをビルドしますが、この時間は、私はLD_LIBRARY_PATH
をエクスポートして、古いシステムライブラリに依存していなかったことを利用システムのgccとlibxml2の
yum install -y gcc-c++ libxml2-devel
bash Miniconda2-4.2.12-Linux-x86_64.sh -b -p ~/m2
source ~/m2/bin/activate
conda install -y conda-build
conda install -yc marufr python-igraph=0.7.1.post6
conda build $CONDA_PREFIX/pkgs/python-igraph-0.7.1.post6-py27_0/info/recipe/
conda remove -y python-igraph
conda install $CONDA_PREFIX/conda-bld/linux-64/python-igraph-0.7.1.post6-py27_0.tar.bz2
python -c 'import igraph; print igraph.__version__'
0.7.1
注意。このパッケージを使用するたびにcond30を使用してgcc
をインストールする必要はありません。しかし、まだ、あまりにも多くの仕事、meh。 4 _igraph.so
yum install -y gcc-c++ libxml2-devel
bash Miniconda2-4.2.12-Linux-x86_64.sh -b -p ~/m2
source ~/m2/bin/activate
pip install python-igraph==0.7.1.post6
python -c 'import igraph; print igraph.__version__'
0.7.1
オルタナティブ:
代替3.レッツは、共有ライブラリのコンパイルを行うPIP私はあなたのためのパッケージを構築し、自分のチャンネルでそれを入れています。お気軽にご使用ください:-)
bash Miniconda2-4.2.12-Linux-x86_64.sh -b -p ~/m2
source ~/m2/bin/activate
conda install -yc nehaljwani python-igraph=0.7.1.post6
python -c 'import igraph; print igraph.__version__'
0.7.1
代替機能4は今のところもっとも簡単ですが、なぜ機能しますか?今度はそれの依存関係を見てみましょう:
readelf --version-info /root/.cache/Python-Eggs/python_igraph-0.7.1.post6-py2.7-linux-x86_64.egg-tmp/igraph/_igraph.so | grep -Po '(?<=GLIBCXX_)([\d.]*)' | sort -Vr | head -1
3.4
readelf --version-info /root/.cache/Python-Eggs/python_igraph-0.7.1.post6-py2.7-linux-x86_64.egg-tmp/igraph/_igraph.so | grep -Po '(?<=GLIBC_)([\d.]*)' | sort -Vr | head -1
2.7
あなたが見ることができるように、3.4
は< 3.4.15
と2.7
であること< 2.12
ので、共有ライブラリ_igraph.so
は今
優れた:-)システムの古いライブラリをロードしています。ありがとうございました。 – Abolfazl