小林 未知数の備忘録
CentOS;

CentOS全般

  • 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まわりを何とかする。

CentOS7

  • 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に実行権限を与えることで無理矢理できるみたいだが) 。
    /etc/systemd/system/automt.serviceというファイルを新規に作成し、
                    [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を用いたインストーラーのサポートがなくなったっぽいのでソースからインストールする必要がある。
    インストール前にgcc, g++, gfortrani, lapack, scalapack, fftw-3, openmpiをインストールしておく。特にOpenmpiはyumではなく、最新版をインストールしておく。インストールする際、Intelコンパイラを紐づけしない(gcc, g++, gfortranに紐づけしておいて、FreeFem++インストール後、Intelコンパイラに紐づけしてインストールすれば良い?)。 次にwgetのインストール
                    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が何を拒否して、それを回避するために何をすればいいか教えてくれる。