昔(いつのことだろう)は自力で PyMOL をソースからビルドしようとすると依存性地獄にハマったりして大変だった気がするが、久しぶりにやってみたら簡単だったのでその作業メモ。(筆者の初 Qiita 記事)
前半は PyMOL のビルドの話だが、後半は単に NVIDIA のビデオカードが Linux 環境でちゃんと駆動されてないことに対するトラブルシューティングで、特に PyMOL に限った話ではなく一般に Linux に NVIDIA ドライバーを入れるとき必要な作業。
#対象環境
-
CentOS。一時 EPEL に PyMOL があって yum で入れられた時もあった?ようだが今(本記事執筆時2015年12月)はダメぽなのでソースからやることにした。古めの rpm は探せば転がっているが新しいのが見当たらない(気がする)。
-
Fedora の場合は yum install pymol でイケる模様。比較的新しいバージョンの PyMOL の rpm も転がっているのでそれを使っても OK。
-
まぁいずれにしろ、最新版 PyMOL を使いたかったら自力ビルド。
(単に分子ビューワーとして使うぶんには古いバージョンでも特に困ることは無いと思うが。) -
Ubuntu でも apt-get install pymol だけで入る模様。Mac の場合も brew install pymol だけで入るっぽいし、アルファツイッタラー銀すみす氏 の詳細な記事(PyMOL 1.7.6.0+APBS plugin works on Mac Yosemite using Homebrew や PyMOL ver 1.6 インストール for Windows)があるのでそちらがオススメ。こちらの記事(bi.biopapyrus.net: PyMOL のインストール)も簡潔で good。
#PyMOL のビルド作業
この記事(PyMOLWiki: Linux Install)に従うだけ。簡単。
yum install subversion gcc gcc-c++ kernel-devel python-devel tkinter python-pmw \
glew-devel freeglut-devel libpng-devel freetype-devel libxml2-devel
cd /tmp
svn co svn://svn.code.sf.net/p/pymol/code/trunk/pymol
cd pymol
prefix=/opt/pymol-svn
modules=$prefix/modules
export CPPFLAGS="-std=c++0x"
python setup.py build install \
--home=$prefix \
--install-lib=$modules \
--install-scripts=$prefix
おしまい。
/opt/pymol-svn/pymol
sudo ln -s /opt/pymol-svn/pymol /usr/bin/pymol
これで使える
、、が、使えてはいるものの全然ヌルヌル動いてくれてなかった。
これはビルドした PyMOL の問題ではなく、Linux からビデオカードがちゃんと駆動できていないせいで、
CUDA とか使いたい時も直面する問題。
#CentOS に純正ビデオカードドライバを入れる
Nouveau とかいう OS 付属のフリーのドライバを無効化して、NVIDIA の純正ドライバを入れる。
lsmod | grep nouveau
まず無効化作業。
こちら(Qiita: CentOS 7にNVIDIA GeForce GTX TITAN Xを導入)にも記載があるように、
/etc/modprobe.d/modprobe.conf
と /etc/modprobe.d/nouveau_blacklist.conf
に
blacklist nouveau
の一行を足せばよいらしいのでやってみたが、再起動しても相変わらず nouveau 切れてなかった。謎。
埒が明かなかったので、こちらを参考に
今度は grub のコンフィグ (/etc/default/grub
) を編集し、GRUB_CMDLINE_LINUX
内に
rdblacklist=nouveau
これを追記。
grub2-mkconfig -o /boot/grub2/grub.cfg
で、これで再起動するとめでたく nouveau 切れている。
あとは NVIDIA ドライバのインストール作業。
lspci | grep -i nvidia
NVIDIA のサイトから対応するドライバインストーラーをゲット。
あとで CUI 環境から実行することになるので、分かりやすく /tmp あたりに置いておく。
init 3
CUI モードになる。
root でログインし、ダウンロードしておいたドライバインストーラーを実行。
chmod +x <Nvidia file>.run
./<Nvidia file>.run
インストーラーの指示に従いインストール。
それが済んだら、
init 5
これで完了、PyMOL もヌルヌル動くようになった。