CentOS6.xをインストールしたら真っ先にやること個人的まとめ

**ちょくちょく改訂しています。**
#必ずやるべきこと
##sudoの有効化
Ubuntuなどでは標準でsudoが有効になっていますが、CentOS6は標準では使えません。`su`はディレクトリ移動が面倒、セキュリティ的に微妙なので`sudo`を使えるようにしておきましょう。端末を開き、以下のコマンドを入力します。

```bash
su
#(rootのパスワードを入力)
visudo
```

`visudo`は恐らく`vi /etc/sudoers`と同等なものだと思います。入力すると、Vi(m)の編集画面となります。

```
# %wheel        ALL=(ALL)       ALL
```

もしくは

```
# %wheel  ALL=(ALL)       NOPASSWD: ALL
```

となっているところを探し、行頭の`#␣`(コメント)を外します。(片方だけ)前者は`sudo`時にパスワードが必要ですが、後者は不要です。VimはWindowsで一般的なエディタとはかなり異なる操作体系を持つので、Vimに不慣れな方でも編集できるように以下説明を加えます。まず、Vimにはいくつかのモードがあります。1つ目はコマンドモードでキーボードからの入力は文字入力ではなくてコマンド実行となります。この編集に最低限必要なVimのコマンドを以下に示しておきます。

<dl>
<dt>:wq</dt>
<dd>保存してVimを終了します。</dd>
<dt>:q!</dt>
<dd>現在の変更を破棄してVimを終了します。</dd>
<dt>i</dt>
<dd>挿入モードに切り替えます。</dd>
<dt>I</dt>
<dd>カーソルを行頭に移動し、挿入モードに切り替えます。</dd>
<dt>/(検索語)</dt>
<dd>検索します。Enterで実行し、nで次の位置、Nで前の位置にカーソルを移動します。</dd>
<dt>h/j/k/l</dt>
<dd>左から左・下・上・右にカーソルを動かします。</dd>
<dt>Ctrl+U/Ctrl+D</dt>
<dd>それぞれ上・下に半画面分カーソルを動かします。</dd>
<dt>x</dt>
<dd>カーソル上(・もしくはカーソルのすぐ右)の文字を削除(Deleteキーと同じ)</dd>
<dt>0</dt>
<dd>カーソルを行頭に移動させます。</dd>
<dt>Escキー</dt>
<dd>コマンドを入力している途中の場合、中断します。</dd>
<dt>u/ctrl+r</dt>
<dd>アンドゥ/リドゥ</dd>
<dt>自然数</dt>
<dd>その回数だけ後続のコマンドを実行(例: <code>40u</code>なら40回アンドゥ)</dd>
</dl>

2つ目は挿入モードです。このモードではキーボードから文字を入力すると入力した文字が挿入されます。他のエディタに近いモードです。3つ目はビジュアルモードといい、範囲選択する時のモードですが、ここでは説明を省略します。他にもコマンドラインモードがありますが、これも説明を省略します。挿入モードからコマンドモードに切り替える際はEscを押すか、Altキーを押しながらコマンドの1文字目を入力します。

変更する際には「`%wheel`」で検索し、`0`で行頭に移動して`2x`で行頭の「`#␣`」を削除するのがベストだと思います。変更したら必要に応じてEscキーを押してコマンドモードに戻り、「:wq」で保存・終了します。シェルに戻ったら次のコマンドを入力して、自分のアカウントをsudo可能なグループ`wheel`に追加します。ただし、次のコマンドを含めてこれから「`MINE`」が出てきたら自分のユーザ名に変更してください。

```bash
gpasswd -a MINE wheel
```

追加できたら

```bash
exit
```

でrootとしての操作を終了し、自分のアカウントに戻ります。そして、一旦ログアウトしてから再ログインします。(再起動でも可)これで「`sudo SOMECOMMAND`」で`su`を使わずにroot権限の必要なコマンドを実行することができるようになりました。
##rootでもソースビルドしたソフトウェアを使えるようにする
`yum`でインストールするソフトを使ううちはまだいいのですが、自分でソフトの最新版をソースコードからコンパイルしてインストルする必要がこの先出てくるかもしれません。そのソフトをrootでも使う場合は問題が生じます。デフォルトではrootは`yum`でインストールしたソフト(`(/usr)/(s)bin`内)しか使えず、自分でソースビルドしたソフト(`/usr/local/(s)bin`内)は使えないのです。そこで、rootでも使えるようにします。まず、次のコマンドを実行します。

```bash
sudo visudo
```

次に、次の行を探します。(コマンドモードで検索コマンドを使用してください)

```
Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin
```

この行を次のように変更します。

```
Defaults    secure_path = /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
```

変更したらコマンドモードに戻り、`:wq`で保存・終了します。編集の際には上で紹介していない以下のコマンドも併用すると便利です。
<dl>
<dt>w</dt>
<dd>1単語分右にカーソルを移動します。</dd>
</dl>
##wget・コンパイラ一式のインストール
ソースビルドをする際にはほぼ必ず使います。インストールしておきましょう。以下のコマンドでインストールできます。

```bash
sudo yum -y groupinstall "Development Tools"
sudo yum -y install wget
```

##パッケージ管理ソフトporgのインストール
ソースビルドしたソフトウェアのアンインストールは大変です。予め管理しておかないとソフトウェアによってはそれらしいファイルを探して手動で削除するという危険な作業が要求されます。そこで、そういったソフトを管理するソフトを最初にソースビルドしてインストールします。以下のコマンドでインストールできます。

```bash
wget http://sourceforge.net/projects/porg/files/porg-0.8.tar.gz
tar -xf porg-0.8.tar.gz
cd porg-0.8
./configure --host=x86_64-redhat-linux --build=x86_64-redhat-linux CFLAGS='-march=core2 -O3' --disable-grop
 make
sudo make install
sudo make logme
```

注意事項ですが、`--disable-grop`を付けないとコンパイルできません。また、tarアーカイブは解凍が終了次第、各自で始末しておいてください。

##mozcのインストール
http://qiita.com/Sa2/items/5e35bf6b7271dead604f
で紹介されている手法を改良して、GitHubに自動でインストールするシェルスクリプトのリポジトリを作成しました。上のURLだと`yum`を使っていないのでまずいと思うのでこちらの方がいいと思います。
https://github.com/tats-u/install-mozc-centos6
これは以下と同等です。コピペして実行してください。(Vine Linuxという別のディストロのパッケージ・EPELという外部リポジトリを使用しているので、そこはご了承ください)

```
sudo yum -y localinstall http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
sudo yum -y install protobuf qt qt-x11
sudo yum -y localinstall http://ftp.kddilabs.jp/pub/Linux/packages/Vine/Vine-6.3/x86_64/Vine/RPMS/zinnia-0.06-3vl6.x86_64.rpm http://ftp.kddilabs.jp/pub/Linux/packages/Vine/Vine-6.3/x86_64/Vine/RPMS/tegaki-zinnia-japanese-0.3-1vl6.noarch.rpm http://ftp.kddilabs.jp/pub/Linux/packages/Vine/Vine-6.3/x86_64/Vine/RPMS/mozc-server-1.5.1090.102-1vl6.x86_64.rpm http://ftp.kddilabs.jp/pub/Linux/packages/Vine/Vine-6.3/x86_64/Vine/RPMS/mozc-utils-gui-1.5.1090.102-1vl6.x86_64.rpm http://ftp.kddilabs.jp/pub/Linux/packages/Vine/Vine-6.3/x86_64/Vine/RPMS/ibus-mozc-1.5.1090.102-1vl6.x86_64.rpm http://ftp.kddilabs.jp/pub/Linux/packages/Vine/Vine-6.3/x86_64/Vine/RPMS/mozc-1.5.1090.102-1vl6.x86_64.rpm
```

インストールできたらiBusの再起動(`ibus-daemon -drx`もしくはiBusアイコン右クリック→再移動)を行い、iBusの設定を開きMozcを追加してください。(任意でAnthyの削除も行う)

#IPAフォントのダウンロード
フリーで使える中では一番できがよいと思われるフォントです。IPA (P)ゴシック/明朝は次のコマンドでインストールします。また、IPAゴシックはプログラミング用フォントとしてそこそこ優秀です。

```bash
sudo yum -y install ipa-gothic-fonts ipa-mincho-fonts ipa-pgothic-fonts ipa-pmincho-fonts
```

IPAexゴシック/明朝は次のURLからダウンロードできます。

http://ipafont.ipa.go.jp/ipaexfont/download.html

#人によって必要なこと
##ソースからEmacsのインストール
`yum`でインストールできるEmacsは5年以上前のバージョンであり、最新版と比べて機能がかなり劣るのでソースからインストールしましょう。

```bash
wget http://ftp.jaist.ac.jp/pub/GNU/emacs/emacs-24.5.tar.xz
tar xf emacs-24.5.tar.xz
cd emacs-24.5
sudo yum -y install giflib-devel libjpeg-devel libpng-devel libtiff-devel gtk2-devel libXaw-devel ncurses-devel #必要最低限なライブラリをインストール(環境によってはもう少し減るかもしれません)
./configure --host=x86_64-redhat-linux --build=x86_64-redhat-linux CFLAG="-march=core2 -O3"
make
sudo porg -lp emacs-24.5 "make install" #emacs-24.5の代わりにemacsでも可？
cd ../
rm -rf emacs-24.5* #ディレクトリ・tarball削除(任意)
```

このコマンドで失敗することはないと思いますが、他のソフトのインストールも含めて./configure・makeのリンク作業などで失敗した場合は必要なライブラリを`yum list`(`grep`と併用)・`yum info`・`yum whatprovides`などで調べて`yum install`でインストールし(最悪の場合はソースビルドしたり`./configure`のオプションでライブラリを使わないようにしたりする)、再び`./configure`からやり直します。

追記: 今回導入したライブラリは`./configure`の追加オプションなしでビルドするための最低限のものです。他にも

* libxml2-devel
* libotf-devel
* gnutls-devel
* libselinux-devel
* librsvg2-devel
* dbus-devel
* gpm-devel
* GConf2-devel
* m17n-lib-devel
* libXft-devel

などが必要です。(Xubuntuでのビルドにおいて必要なのを確認しyum searchで怪しいパッケージを特定)詳しくは`./configure`の最後の方に出てくるメッセージを見てください。ライブラリのインストールは`./configure`をやった画面と別の画面で行うことをおすすめします。
##Chromeのインストール
CentOSではデフォルトでFireFoxしか使えません。GoogleはCentOS向けにもひっそりとパッケージを配布しているのですが、ある時、CentOS6.xを切り捨ててしまいました。しかし、ある方がCentOS6.xでも動くようにチューニングして、リポジトリを立ててくださいました。以下のコマンドを実行するとインストールできます。(外部リポジトリを追加するのでご了承ください)

```bash
wget http://chrome.richardlloyd.org.uk/install_chrome.sh
sudo ./install_chrome.sh
```
##Z Shellのインストール
sh(Bourne Shell; Bashのご先祖様)をかなり拡張したシェルらしいです。次のコマンドでインストールができます。

```bash
sudo yum -y install zsh
```

最新版を使いたい人はEmacsのインストールを参考にソースビルドしてください。

##Gitのインストール
`yum`でインストールできるGitのバージョンは2にも満たないのでソースビルドの方がいいと思います。

```bash
wget https://www.kernel.org/pub/software/scm/git/git-2.5.3.tar.xz
tar xf git-2.5.3.tar.xz
cd git-2.5.3
sudo yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel #公式いわく最低限必要なもの
./configure --host=x86_64-redhat-linux --build=x86_64-redhat-linux CFLAG="-march=core2 -O3"
make
sudo porg -lp git-2.5.3 "make install"
cd ../
rm -rf git-2.5.3* #始末(任意)
```

##fishのインストール
コマンド補完などが充実していてデフォルトのシェルにしなければかなり使いやすいシェルです。こちらはリポジトリが用意されています。

```bash
cd /etc/yum.repos.d/
sudo wget http://download.opensuse.org/repositories/shells:fish:release:2/CentOS_6/shells:fish:release:2.repo
sudo yum install fish
```

##TeXLiveのインストール
`yum`でインストールできるTeXLiveは古すぎるので最新版をインストールします。まずTeXLiveのダミーパッケージをインストールします。

```bash
sudo yum -y install http://mirrors.ctan.org/support/texlive/texlive-dummy/EnterpriseLinux-6/texlive-dummy-2007a-4.el6.noarch.rpm
```

次に以下のコマンドを実行し、ダウンロード・インストールを行います。

```bash
wget http://www.ring.gr.jp/pub/text/CTAN/systems/texlive/tlnet/install-tl-unx.tar.gz
tar xf install-tl-unx.tar.gz
cd install-tl-・・・ #タブ補完
sudo ./install-tl
#↓設定を変えないのであれば↓
I
```

ダウンロード出来ない場合は`http://www.ring.gr.jp/pub/text/CTAN/systems/texlive/tlnet/`の部分を
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?TeX%20Live#tlnet
に列記されている好きなサイトに差し替えてもう一度`wget`から始めてください。
上のコマンドが実行できたらTeXLiveのインストールは完了です。最後に`.bashrc`・`.zshrc`・`.tcshrc`などを開いて

```
/usr/local/texlive/2015/bin/x86_64-linux
```

へのパスを通します。
##エイリアスの設定
エイリアスを使うとコマンドを短いタイプ数で実行することができます。例として私の設定を載せておきます。以下の内容をシェルの設定ファイルに付け加えればOKです。C Shell系・fishの場合は次のようになります。

```tcsh:.(t)cshrc・~/.config/fish/config.fish
alias q exit
alias f fish
alias z zsh
alias e emacs
alias en 'emacs -nw'
alias v vim
alias m make
alias l less
alias ll 'ls -l'
```

Z Shellなどsh系は次のようになります。確認はZ Shellで行っています。(Bashは常用していないのでわかりません)

```zsh:.zshrc
alias q=exit f=fish e=emacs en='emacs -nw' v=vim m=make l=less ll='ls -l'
```

##ネットワークに自動的に接続する
CentOS6.xではデフォルトではネットワークへの接続は手動になっています。自動化は次のような手順でできます。
1. ネットワークのアイコンを右クリック
2. 接続を編集する... を選択
3. ネットワーク接続の画面で自動で接続させたいネットワーク(System eth0など)を選択
4. 編集... をクリック
5. 自動接続する にチェック
6. 適用... をクリック
7. rootのパスワードを入力

##(VirtualBoxの仮想マシンの場合)マウントしたホストOSのディレクトリにアクセスできるようにする
まずGuest Additionsのコンパイルを行います。VirtualBoxのメニューのデバイス→Guest Additions CDイメージの挿入をクリックし、端末を開いて以下のコマンドを実行します。

```bash:bash
sudo -i
yum -y install gcc perl kernel-devel-`uname -r` #gcc・perlはインストール済みの場合あり
export KERN_DIR=/usr/src/kernels/`uname -r`
cd /media/VBOXADDITIONS_・・・/ #タブ補完をすること
./VBoxLinuxAdditions.run
exit
```

GPU関連(DRM絡み)でエラーが出ますが、通常は無視してください。その後以下のコマンドを実行します。

```bash
sudo gpasswd -a MINE vboxsf
```

そして一旦ログアウトし再ログインすると、ディレクトリ(`/media/`直下にある)にアクセスできるようになります。

##ファイルブラウザでディレクトリを開くたびにウインドウが増えないようにする
CentOS6.xでは何も設定しない場合、ディレクトリを開くたびに新しいウインドウが開き、デスクトップがごちゃごちゃします。ファイルブラウザで以下の設定をすれば、ディレクトリを開いても同じウインドウで開くようになります。

編集→設定→動作→常にブラウザウィンドウで開く　をチェック→閉じる→適当なディレクトリを開く

設定後はCtrl+Tでタブ追加・Ctrl+Wでタブを閉じる・Alt+Page Up/Downでタブの切替ができます。

<!---
##gnuplotのインストール

##Developer Toolset2をインストール
デフォルトで使用できるGCCはかなり古く、C++11に完全対応していません。以下のコマンドでGCC4.8も一応使えるようにしておくといいと思います。

```bash
wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo
yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++
```

使うにはその都度次のコマンドを入力する必要があります。(`$SHELL`の部分は必要に応じて変更)ただし、これでGitをコンパイルしたら(`CFLAGS='-march=core-avx2 -O3'`)間違ったGitのコマンドを叩いた時に「不正な命令です」とぬかしてきたので通常はデフォルトのコンパイラを使うようにした方がいいと思います。

```bash:
scl enable devtoolset-2 $SHELL
```

端末を終了するときには`exit`をもう1回入力する必要があります。

##(VirtualBoxの仮想マシンの場合)ホストOSから仮想ディスクをマウントできるようにする


--->