2021/06/25(金)21:17
Pymol Open Sourceのソースからのpymolのinstall memo CentOS8
CentOS 8.3をインストールした業務用(研究用)のLinuxマシンにPymolを導入する必要があったのでそれを成し遂げたので、その際のメモ。
まずは最重要の一次情報源に当たることをお勧めする。
Pymol wiki
このなかの Linux Install をよく読む。ただし、十分なライブラリ環境設定が整っていないので、いきなりははじめないのがよい。
CentOS では、基本、yum コマンドでインストールをする。基本構文は
yum install パッケージ名
ないときは探すと別名でパッケージが見つかるときがあるので試すといいのが
yum search パッケージ名
なのだけれども、通常のリポジトリにパッケージが置いていないけれども、少し工夫すると用意されている場合がある。それがEPELとPower Toolでした。
1. EPEL /Extra Packages for Enterprise Linux を有効化する。参考
yum install epel-release
これを一度やっておくとepelリポジトリの追加パッケージもインストールできるようになる(はず)
設定により常時epelが使える状態と指定したときにしか使えないモードがあるようだ。後者の場合、yumにオプションをつけるとよいらしい。
yum --enablerepo=epel install パッケージ名 似たような使い方に
yum --enablerepo=epel extras パッケージ名 がある。
ここまで理解して確かにいくつかのライブラリがスコスコインストールできたので万能感になっていたのだけれども何かでハマった。でPowerToolというものを学んだ。
2. CentOS PowerToolsを有効化しておく。
参考(PowerTools有効化)PowerToolsCentOS で利用できるリポジトリの1つです。 PowerTools リポジトリには、多くの EPEL パッケージに必要な開発ツールが含まれています。
vi /etc/yum.repos.d/CentOS-Linux-PowerTools.repo
..
enabled=1 <---- 0から変更にすると有効化できる
これをするとEPELも無敵になる。
3. ここまできてPymol wiki linux install のtar ball からのコンパイルに挑みます。
ソースファイル入手の準備
yum install git
git clone https://github.com/schrodinger/pymol-open-source.gitgit clone https://github.com/rcsb/mmtf-cpp.gitmv mmtf-cpp/include/mmtf* pymol-open-source/include/cd pymol-open-source
4. 必要なライブラリの準備yum install gcc gcc-c++ kernel-devel python-devel tkinter python-pmw glew-devel \ freeglut-devel libpng-devel freetype-devel libxml2-devel glm-devel \ msgpack-devel netcdf-devel
たぶんすんなり通らないはず。 python-devel, tkinter, python-pmw が多分通らない。
python-devel とtkinterはCentOs8.3ではパッケージ名が変更があったようである。
python3-devel, python3-tkinter がそれらしい。
あとリストにはないけれどもnumpy とQtが欲しい。
python3-numpy, python3-qt5だそうだ。検索したらわかった、よかった。
そして最後までpython-pmwはcentos8用のバイナリは見つからなかった。7用を無理して入れたら怒られたのであきらめる。
5. コンパイル
python3 setup.py build install \ --home=$prefix $prefixの設定がいいかげんだったのだけれども何とか無事動かすことができた。
誰かの助けになればと思い、備忘録かわりに記しておきます。
おまけのおまけですがImageMagickとImageMagick-develも入れておきました。
これまでVine Linuxで楽させてもらっていたので、CentOSの素人お断りの硬派な感じは新鮮・・・なわけない。なれたら使いやすいのかもしれないが、苦労ばかり多くてあまり好きになれない。