[Python, CentOS] yumのPythonと違うバージョンの方が
2008年11月28日
CentOSにPythonをソースから入れた場合に、
yumが使っている既存Pythonとの関連で色々と問題が出ております。
yumが使っている既存Pythonとの関連で色々と問題が出ております。
その内のひとつに、
–enable-sharedでインスコした場合に、
libpython.soを既存の/usr/lib下のものを参照してしまう、
という点がありました。
–enable-sharedでインスコした場合に、
libpython.soを既存の/usr/lib下のものを参照してしまう、
という点がありました。
この点は /etc/ld.so.conf.d 下にconfファイルを置いて
ライブラリにパスを通すという方法で対処したのですが、
そうすると、yumで使っている /usr/lib/python も
新たにインスコしたPythonも同じlibpython.soを参照してしまい、
結果として、「yumが動くが新たな方は動かない」か「新たな方は動くがyumが動かない」という
状況となってしまいました。
例えば、こんな↓状況か
ldd /usr/bin/python libpython2.4.so.1.0 => /usr/lib/libpython2.4.so.1.0 (0x00385000) ldd /usr/local/python-2.4.5/bin/python libpython2.4.so.1.0 => /usr/lib/libpython2.4.so.1.0 (0x00385000)
こんな状況↓でありました
ldd /usr/bin/python libpython2.4.so.1.0 => /usr/local/python-2.4.5/lib/libpython2.4.so.1.0 (0x005a2000) ldd /usr/local/python-2.4.5/bin/python libpython2.4.so.1.0 => /usr/local/python-2.4.5/lib/libpython2.4.so.1.0 (0x005a2000)
解決方法としては、
新たに入れるPythonを2.5にして、既存Pythonバージョンの2.4とは違うバージョンにする
という対処をして、ライブラリのパスを通すことで解決しました。↓
新たに入れるPythonを2.5にして、既存Pythonバージョンの2.4とは違うバージョンにする
という対処をして、ライブラリのパスを通すことで解決しました。↓
ldd /usr/bin/python libpython2.4.so.1.0 => /usr/lib/libpython2.4.so.1.0 (0x00385000) ldd /usr/local/python-2.5.2/bin/python libpython2.5.so.1.0 => /usr/local/python-2.5.2/lib/libpython2.5.so.1.0 (0x005a2000)
上記は全く根本的な解決じゃないですが
サーバ周りが良くわからない俺みたいな残念な方は、とりあえずは
「CentOSの場合は既存Pythonのマイナーバージョンと違うものを入れる」
という風にした方が、何かといいかもNE!!
サーバ周りが良くわからない俺みたいな残念な方は、とりあえずは
「CentOSの場合は既存Pythonのマイナーバージョンと違うものを入れる」
という風にした方が、何かといいかもNE!!