CentOSでrpm -e file.rpmでアンインストールできないことがある
拡張子.rpmを消して
rpm -e file
iostatのインストール(CentOS)
yum install sysstat
よく使うオプションとして
iostat -xk 2
またデバイスの詳細は
lvdisplay
で見ることができる。
利用可能な論理フォント名を確認する (AVS/Expressでフォントを指定するときに必要)
xlsfonts
あるいは
xfontsel
Firefox等で文字化けする
インストールしたばかりで日本語フォントがないと文字化けしてしまう。スタンダードな日本語フォントであるIPAフォントをインストールすれば良い。
yum install ipa-gothic-fonts ipa-pgothic-fonts
X11フォワーディングに失敗する
xauthをインストール
yum install xauth
あとはsshd_configまわりを何とかする。
gccでlibquadmathが使えない
CentOS7でgccのバージョンが上がってlibquadmathが使えるようになったと思ったら、使えない。fftwのquad precisionのインストールにも失敗する。
yum install libquadmath
でlibquadmathをインストールすると、/usr/lib64にlibquadmath.so.0とlibquadmath.so.0.0.0 (バージョンは違うかも) ができているはず。gccはlibquadmath.soというファイルがないとダメみたいなのでシンボリックリンクを貼っておく。
ln -s /usr/lib64/libquadmath.so.0.0.0 /usr/lib64/libquadmath.so
これで
gcc -lquadmath hoge.c
とすれば128ビットの4倍精度計算ができるようになる。また、fftwの--enable-quad-precisionでインストールできるようにもなった。
PovRayのインストール
povlinuxでPovRayをインストールしようとすると、「お使いのOSはLinuxではありませんよ」と言われる。どうやらCentOS7はPovRayにとってLinuxではないみたい!
./install -no-arch-check
でインストール。
NFSを用いたserver:/homeから/homeへのマウントの失敗
/etc/fstabにちゃんと記述してても、起動時にserver:/homeから/homeへのマウントに失敗している。ただし起動後に
mount -a
とするとちゃんとマウントしてくれる。また/homeではないディレクトリにはちゃんとマウントしてくれる。NISとの連携なのでNISサーバーの設定をちゃんとすればいいらしいのだが、それもうまくできなかった。面倒なので、起動時に
mount -a
を自動実行させることにする。と思ったら、イラつくことに、CentOS7は/etc/rc.d/rc.localを用いた自動実行はもはやできないみたい (rc.localに実行権限を与えることで無理矢理できるみたいだが) 。
[Unit]
Description=AutoMount
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/mount -a
[Install]
WantedBy=multi-user.target
と書いて
systemctl enable automt.service
systemctl start automt.service
を実行する。
FreeFem++のインストール
CentOS7からrpmを用いたインストーラーのサポートがなくなったっぽいのでソースからインストールする必要がある。
yum -y install wget
FreeFem++のダウンロード
wget https://github.com/FreeFem/FreeFem-sources/archive/v4.4.2.tar.gz
LaTeXのインストール(何故か必要みたい)
yum -y install texlive
展開
tar zxvf v4.4.2.tar.gz
cd FreeFem-sources-4.4.2
インストール前の準備
autoreconf -i
yum -y install unzip
yum -y install bison
yum -y install flex
yum -y install patch
yum -y install git
yum -y install freeglut*
READMEに従ってインストール
./configure --enable-download --enable-optim
./3rdparty/getall -a
cd 3rdparty/ff-petsc
make petsc-slepc
cd ../../
./reconfigure
make -j2
make check
make install
4行目でエラーメッセージが出るが問題なし。7行目で次元云々でエラーが出た場合、openmpiをIntelコンパイラで紐づけしてインストールしている可能性あり。これでもうまくいかないときもあったが、原因不明。
VirtualGLのインストール
nouveauが止められなかったり、TurboVNCで接続したら真っ黒になったり、そもそもVirtualGLが動かなかったりしてかなり手こずったのでメモ。ここでは遠隔からログインしてVirtualGLを使うためだけのサーバー構築。 最初にCentOSは必ずminimalインストールにしておく。インストーラーに付いているGnome Desktop環境をインストールするとTurboVNCが全く動いてくれなかった(MATE Desktopとかを後で入れるならいいのかもしれないが)。まずはVirtualGLおよびTurboVNCのインストール
ここと ここに行ってソースファイル(rpm)をダウンロードする。ここでは最新版を入れること。下手に古いのを入れるとVirtualGLもTurboVNCも動いてくれない。その後
yum -y install VirtualGL-2.6.3.x86_64.rpm
yum -y install turbovnc-2.2.4.x86_64.rpm
でインストール(バージョンは適宜変更)。接続するローカルPCにもVirtualGLとVNCクライアントソフト(例えばTigerVNC)を入れておく。
次にnouveauを停止する。まずはNVIDIAを入れるために必要なものをインストール。
yum -y install kernel-devel-$(uname -r) kernel-header-$(uname -r) gcc make
NVIDIAドライバインストール直前にこれをやると、nouveauが勝手に動き出すことがあったので、最初にやっておく。次にnouveauが動いていることを確認
lsmod | grep nouveau
nouveauの停止
echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
dracut -v /boot/initramfs-$(uname -r).img $(uname -r)
再起動
reboot
再起動後再び
lsmod | grep nouveau
として何も出力されないことを確認する。まだ停止されていないときは
rm /boot/initramfs-$(uname -r).img
dracut -v /boot/initramfs-$(uname -r).img $(uname -r)
として再起動。
次にNVIDIAドライバのインストール。
まずはグラフィックカードのバージョンを確認
lspci | grep VGA
もしlspciコマンドが無いようだったら、インストール
yum -y install pciutils
ここへ行って対応するバージョンのNVIDIAドライバをダウンロードする。その後実行
bash NVIDIA-Linux-x86_64-440.64.run
32ビット版もインストールするか訊かれるのではいにする。
また何か上書きインストールするか訊かれるのでこれもはいにする。
ちゃんとインストールされたかのチェック
lsmod | grep nvidia
GPUを計算と描画両方に対応させる
nvidia-smi --gom=0
再起動
reboot
次にデスクトップ環境のインストール
yum -y groupinstall "X Window System"
yum -y groupinstall "gnome Desktop"
yum -y install gdm
次にXorgの設定
/etc/X11/xorg.conf を編集
44行目から
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "AllowEmptyInitialConfiguration" "True"
SubSection "Display"
Depth 24
EndSubSection
EndSection
次にVirtualGLの設定
/opt/VirtualGL/bin/vglserver
Configureの後、3回ほど質問されるが、全ていいえにしておく。
エラーメッセージが途中で出るが気にしない。
次にGNOME Desktopの起動
systemctl start gdm
systemctl enable gdm
リモートでしか使わないのであればgraphical.targetにする必要はない。
最後にGPUで描画ができるかどうかの確認
VirtualGLをインストールしたローカルマシンからVirtualGLを使ってログイン(ユーザー名をhogeとする)
vglconnect hoge@サーバー名
vglconnectはsshとほぼ同じ。
ログイン後
vglrun glxgears
でギアが回転する映像が出ることをチェック。次にVNCを使ってログインする。まずはVNCサーバーの立ち上げ
/opt/TurboVNC/bin/vncserver :番号
番号は予め決めておく
VNCクライアントをインストールしたローカルマシンからVNCでログイン
vncviewer avs:番号
GNOMEデスクトップ上でターミナルを起動し
vglrun glxgears
でギアが回転する映像が出ることをチェック。
SELinuxでつまづく
getenforceでenforcingのときに動かず、permissiveのときにうまく行くときはSELinuxのせい。ただ、どうすればいいか途方に暮れる。その場合、setroubleshootをインストールすればいい。
yum install setroubleshoot setools
その後、
sealert -a /var/log/audit/audit.log
とすればSELinuxが何を拒否して、それを回避するために何をすればいいか教えてくれる。