physpolyglot

主にPC関連の自分用メモのうち、役立ちそうなものを共有します。

Scientific Linux6.5再インストール

そもそものきっかけ

実験データの解析に使っていたマシンのSSDが突然お亡くなりになりました。
幸い、//bootが飛んだだけで、/home等は別ドライブだったので、重要なデータや解析コードなどには被害はありませんでした。(バックアップはしてあるから万が一全ドライブが飛んでも大丈夫だけど)
システムを入れ替えるだけでそのまま使えそうだったので、新品のSSDを使ってOSの再インストールをしたので自分用にメモを残しておく。

やったこと

OSインストール

  • インストールDVDを入れる。
  • IPアドレスDNS等々を設定。
  • インストール元としてURLを選び、URLとして http://ftp.riken.jp/Linux/scientific/6.5/x86_64/os/ を指定。
  • パーティションを作成。
    • /dev/sda SSD
      • /boot 200MB
      • / 50GB
    • /dev/sdb, /dev/sdc HDD
      • /var 10GB
      • /home 1TB
      • /data 2TB
  • 構成はDesktopを選択。

最初は/varを前の環境のものを使い回そうとしてたのだけど、 それだと必ずインストールの途中で失敗してしまうので、フォーマットするなり別パーティションを作るなりする必要あり。
原因はパッケージの依存性のエラー。

OSインストール後

/etc/fstab

SSD延命のためのオプション

UUID=hogehoge / ext4 discard,noatime 1 1

discardはtrim使用、noatimeアクセス時間の記録をしないオプション。

ramdiskの追加

/tmpというramdiskを作成する。
ブラウザキャッシュ、スクリーンショット、一時ファイル保管場所として使う。 容量は適当。

tmpfs /tmp tmpfs defaults,noatime,size=1024m 0 0

/etc/sysctl.conf

vm.swappiness = 0 # RAMを使い切るまでスワップしない

sudoersの設定

adminなんてグループ追加しなくてもwheelで良かったかも。

visudo # %admin ALL=(ALL) ALL を追加
usermod -G admin username

ssh設定

passwordログインを無効にして、公開鍵認証のみ受け付けるようにする。
/etc/ssh/sshd_configを書き換え。

PasswordAuthentication no
PubkeyAuthentication yes

yumリポジトリ

  • /etc/yum.repos.d/sl.repo を理研リポジトリを使うように書き換え。
  • rpmforgeをインストール
    • mirrorlistを理研に書き換え
  • epelをインストール
    • mirrorlistを理研に書き換え

何も考えずにyumでインストールした人たち

yumでインストールして問題がなかった方々。

yum install -y automake texinfo libXpm-devel giflib-devel libtiff-devel libotf-devel ncurses-devel gtk2-devel libjpeg-devel ImageMagick rpmbuild yaml-cpp-devel libtool pcre-devel xz-devel protobuf qt-devel libgcrypt-devel source-highlight

以下、何かしらケアが必要な人たちを紹介。

git

gitがないと生きていけない。1.8.5.rc3.2.gc302941が入った。

yum install --enablerepo=rpmforge-extras git

m4 & autoconf

yumでも入れられるが、確かclangで新しいバージョンを要求された。

wget ftp://ftp.gnu.org/gnu/m4/m4-1.4.17.tar.gz
tar zxvf m4-1.4.17.tar.gz
cd m4-1.4.17
./configure
make && make install
wget ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
tar zxvf autoconf-2.69.tar.gz
cd autoconf-2.69
./configure
make && make install

XMonad

xmonad.hsはこれまで使っていたものを流用。

yum install xmonad dzen2 conky

zsh

yumで入れられるものはバージョンが古かったので、ソースからのインストールを選択。

git clone git://git.code.sf.net/p/zsh/code zsh
cd zsh
./Util/preconfig
./conigure
make -j4 # docでエラーが出るが、無視して良い
make install
  • /etc/shells に/usr/local/bin/zshを加える。
  • chsh -s /usr/local/bin/zshでシェル変更

emacs

git便利だなぁ

git clone git://git.savannah.gnu.org/emacs.git
cd emacs
./autogen.sh
./configure --with-x
make bootstrap
make install

clang

gccより(主にエラーメッセージの点で)好き。

wget http://llvm.org/releases/3.3/llvm-3.3.src.tar.gz
wget http://llvm.org/releases/3.3/cfe-3.3.src.tar.gz
wget http://llvm.org/releases/3.3/compier-rt-3.3.src.tar.gz
(tar llvm)
(tar cfe)
(tar compiler-rt)
mv cfe llvm/tools
mv compiler-rt llvm/projects
cd llvm
./configure --enable-optimized --enable-jit
make
make install

ROOT

git便利だなぁ(2回目)

git clone http://root.cern.ch/git/root.git
cd root
git tag -l
git checkout v*** # 適当なバージョンを選択
./configure --with-cxx=clang
make -j4
make install

scrot

スクリーンショットを取るソフト。
xwdは矩形選択出来ない。
importxmonadの画面が矩形選択でキャプチャできない。
ということでインストール。

wget http://linuxbrit.co.uk/downloads/scrot-0.8-1.src.rpm
rpm -ivh scrot-0.8-1.src.rpm
emacs -nw ~/rpmbuild/SPECS/scrot.spec # Copyright -> Licenseに書き換え
rpmbuild -bb --define="__check_files %{nil}" scrot.spec
sudo rpm -ivh ~/rpmbuild/RPMS/x86_64/scrot-0.8-1.x86_64.rpm

tmux

これも必需品。
まずlibevent2.xを入れる必要がある。

git clone git://git.code.sf.net/p/levent/libevent
cd libevent
git checkout release-2.0.19-stable
sh autogen.sh
./configure && make
make install
git clone git://git.code.sf.net/p/tmux/tmux-code tmux
cd tmux
git tag # バージョンを確認
git checkout 1.8 # 現時点での最新版
sh autogen.sh
./configure && make
make install

VNC設定

yum install vnc vnc-server
su - username
vncpasswd

次に/etc/sysconfig/vncserversを編集する。 コメントを参考に適宜設定。

VNCSERVERS="1:username"
VNCSERVERARGS[1]="-geometry 1024x768 -nolisten tcp -localhost"

-localhostを付けることで、トンネルを必須にする。

ag

grepの強化版。

git clone https://github.com/ggreer/the_silver_searcher
cd the_silver_searcher && ./build.sh && make install

chromium

wget http://people.centos.org/hughesjr/chromium/6/chromium-el6.repo
cp chromium-el6.repo /etc/yum.repos.d/
yum install chromium

キャッシュをramdisk (/tmp)に保存するように設定する。

cd /tmp
mkdir chromium_cache
cd ~/.cache/chromium
ln -s /tmp/chromium_cache Default

mozc

これも好み。

wget http://ftp.jaist.ac.jp/pub/Linux/Vine/Vine-6.0/x86_64/Vine/RPMS.main-dvd/ibus-mozc-1.1.717.102-2vl6.x86_64.rpm
wget http://ftp.jaist.ac.jp/pub/Linux/Vine/Vine-6.0/x86_64/Vine/RPMS.main-dvd/mozc-1.1.717.102-2vl6.x86_64.rpm
wget http://ftp.jaist.ac.jp/pub/Linux/Vine/Vine-6.0/x86_64/Vine/RPMS.main-dvd/mozc-server-1.1.717.102-2vl6.x86_64.rpm
wget http://ftp.jaist.ac.jp/pub/Linux/Vine/Vine-6.0/x86_64/Vine/RPMS.main-dvd/mozc-utils-gui-1.1.717.102-2vl6.x86_64.rpm
wget http://ftp.jaist.ac.jp/pub/Linux/Vine/Vine-6.0/x86_64/Vine/RPMS.main-dvd/zinnia-0.06-3vl6.x86_64.rpm
wget http://ftp.jaist.ac.jp/pub/Linux/Vine/Vine-6.0/x86_64/Vine/RPMS.main-dvd/tegaki-zinnia-japanese-0.3-1vl6.noarch.rpm
rpm -ivh mozc-server
rpm -ivh ibus-mozc
rpm -ivh zinnia
rpm -ivh tegaki-zinnia-japanese
rpm -ivh mozc-utils-gui
rpm -ivh mozc

その後、反映するためibus-daemonの再起動をした。

pkill ibus-daemon
ibus-daemon --xim

Dropbox

cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -
cd ~/bin
wget https://www.dropbox.com/download?dl=packages/dropbox.py
chmod +x dropbox.py

自動起動させるため、起動スクリプト/etc/init.d/dropboxを作る。

#!/bin/sh
 
# chkconfig: 345 99 01
# description: dropbox
# processname: dropbox
 
exec="/home/ユーザー名/bin/dropbox.py"
user="ユーザー名"
 
start() {
    echo -n $"Starting $prog: "
    su -c "${exec} start" ${user}
}
 
stop() {
    echo -n $"Stopping $prog: "
    su -c "${exec} stop" ${user}
}
 
status() {
    su -c "${exec} status" ${user}
}
 
restart() {
    stop
    start
}
 
case "$1" in
    start)
        $1
        ;;
    stop)
        $1
        ;;
    restart)
        $1
        ;;
    status)
        $1
        ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart}"
        exit 2
esac
exit $?
chmod +x /etc/init.d/dropbox
chkconfig --add dropbox
chkconfig dropbox on

keepassx

パスワード管理。

git clone git://keepassx.org/keepassx.git
cd keepassx
git checkout 2.0-alpha5
mkdir build
cd build
cmake ..
make && make install