ArchLinuxのGUI環境設を整える vol.1


##はじめに

`ArchLinux`とは、最初から快適に使えるOSではなく、最小限の構成から独自に必要な物を判断し、インストール、カスタマイズして作り上げていくタイプのOSです。

したがって、インストールや環境設定は大変ですが、それなりに意味はあります。

どのような意味があるのかというと、パソコンがどのようなパッケージを元にどのような構成で動いているのかが分かってくるというところが大きいかと思います。

また、機能面にしても、不要なパッケージが入っていないため、`Windows`や`Mac`、`Ubuntu`などとは違って、これらを特定し、アンインストールする必要がありません。軽いし快適です。

`ArchLinux`を使っていて、システムのカスタマイズに不満が出てきた場合は、`Gentoo`を使ってみるのも良いかと思います。

今回は、仮想マシンとして`ArchLinux`をインストールし、ウィンドウマネージャーを起動してみるまでを解説したいとおもいます。

解説環境は、 `Mac`を使用します。OSや個人環境によって適時読み替えて下さい。


##ArchLinuxのインストール

###Download

まずは、当該Linuxディストリビューションのトレントファイルを検索してみましょう。人気のあるLinuxディストリビューションは、トレントを使ったほうがダウンロードは高速です。
*ダウンロードと同時に、アップロードが行われるのでダウンロードするファイルには注意が必要です。

```bash:~/.zshrc
function torrent-search(){w3m "http://torrentz.eu/search?f=$1"}
```

```
source ~/.zshrc
 
torrent-search archlinux
```

目当てのトレントファイルが見つかったら、それをダウンロードします。そして、トレントクライアントアプリを使って、ファイルをダウンロードします。ここでは、`rtorrent`というものを使用します。

```
sudo port install rtorrent

rtorrent hoge.torrent
```

メニュー画面のおおよその操作方法は以下のとおりです。

| キー | 効果 |
|-----------|------------|
| C-s |ダウンロードを開始する|
| C-d |ダウンロードを停止する|
| C-q |終了|

しかし、`ArchLinux`が人気のLinuxディストリビューションとはあまり思えないため、ここでは、直接ダウンロードすることにします。

```
w3m -N http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/iso/2013.05.01/ https://www.archlinux.org/download/
```



###VirtualBox

VirtualBox上に仮想マシンを作成します。マシンに直接インストールする場合は、この手順を飛ばして下さい。


1 以下のシェルスクリプトをパスの通った場所に置いて、実行権限を与えます。そして、シェルを再起動すれば、当該シェルスクリプトをパス無しで参照できます。

(1) シェルスクリプトの作成

```
cd && vim vm-cli
```

```bash:~/vm-cli
#!/bin/zsh
# vm-cli <name> <memory> <size> <iso>
# 使用例 : $ vm-cli archlinux 2048 8000 ~/Downloads/archbang-03.03.2013-i686.iso
 
# http://www.kkaneko.com/rinkou/virtualbox/virtualboxusage.html
 
# 実行時に指定された引数の数、つまり変数 $# の値が 4 でなければエラー終了。
if [ $# -ne 4 ]; then
echo "指定された引数は$#個です。" 1>&2
echo "実行するには4個の引数が必要です。" 1>&2
exit 1
fi
 
# 仮想マシン定義ファイルの生成
VBoxManage createvm --name "${1}" -register
 
# 登録済みの仮想マシンのプロパティの設定
VBoxManage modifyvm ${1} --memory ${2} --acpi on --hwvirtex on --hwvirtexexcl on --nestedpaging on --largepages on --vtxvpid on --accelerate3d on --accelerate2dvideo on --nic1 bridged --bridgeadapter1 eth0 --usb on --usbehci off
 
# 仮想ハードディスクイメージファイルの生成
VBoxManage createhd --filename ~/VirtualBox\ VMs/${1}/${1}.vdi --size ${3}
 
# 仮想マシンのSATAストレージコントローラの作成
VBoxManage storagectl ${1} --name ${1}sata1 --add sata --bootable on
 
# 仮想ハードディスクと仮想DVDドライブの割り当て
VBoxManage storageattach ${1} --storagectl ${1}sata1 --port 1 --type hdd --medium ~/VirtualBox\ VMs/${1}/${1}.vdi
VBoxManage storageattach ${1} --storagectl ${1}sata1 --port 2 --type dvddrive --medium ${4}
 
# 作成した仮想マシンの起動
VBoxManage startvm ${1}
 
exit 0
```

(2) パスの確認

```
echo $PATH
```

(3) 実行権限の付与

```
chmod +x vm-cli
```

(4) シェルスクリプトをパスの通った場所にコピー

```
sudo cp ~/vm-cli /usr/local/bin/
```

(5) シェルの再起動

```
exec $SHELL
```

2 では、以下のコマンドを使って、仮想マシンを作成します。ダウンロードしておいたイメージファイルを参照します。なお、ネットワーク設定においては、マシンによって複雑になることが予想されるため、GUIで行なって下さい(自動で設定されるとおもいます)。

```
vm-cli archlinux 1000 20000 ~/Downloads/archlinux-2013.05.01-dual.iso
```

###ArchLinuxのインストール手順

1 私は、`MacBookAir`のキーボードは、日本語配列を使用しています。よって、まずは、日本語キー配列を使用できるようにします。

```
loadkeys jp106
```

2 次に、パーティションを作成します。ここでは、`New`より2つの領域を作成し、それぞれ***10GB***くらいを目安に設定します。

```
cfdisk /dev/sda
```

`sda1`は、 ***boot***を設定しておきましょう。

サイズを指定できたら、 `Write`で ***yes***とし、 `Quit`で終了します。

3 次に、作成した領域を所定のフォーマット形式でフォーマットします。

```
mkfs.ext4 /dev/sda1 && mkfs.ext4 /dev/sda2
```

4 そして、フォーマットした領域をマウントし、必要なフォルダを作成していきます。

```
mount /dev/sda1 /mnt && mkdir -p /mnt/home && mount /dev/sda2 /mnt/home
```

5 コマンド`$ vi /etc/pacman.d/mirrorlist`を実行します。

パッケージ管理のサーバーリストを編集し、日本のサーバーアドレスをリスト上位に持ってきます。`jp`で検索をかければよいかと思います。

```/etc/pacman.d/mirrorlist
Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
```

6 次に、必要になるであろうツールを一括インストールしていきます。必要ないと判断した場合は、 `pacman -Rs <tool>` としてアンインストールしてください。

```
# ベースシステムのインストール
pacstrap /mnt base base-devel
 
# ブートローダーのインストール
pacstrap /mnt grub-bios
```

7 `/etc/fstab`の生成を行います。


```
genfstab -p -U /mnt >> /mnt/etc/fstab
```

8 `/mnt`をルートディレクトリとして作業します。

```
arch-chroot /mnt
```

以下、 `arch-chroot`での作業になります。

```01
# タイムゾーンの設定
ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
 
# initial ramdisk
mkinitcpio -p linux
 
# ホストネームの設定(hogeには任意のネームを入れる)
echo hoge > /etc/hostname
 
# 日本語キー配列に対応
echo KEYMAP="jp106" > /etc/vconsole.conf
 
# 変なところを日本語にされても嬉しくないので
echo LANG=en_US.UTF-8 > /etc/locale.conf
```

```02
vi /etc/locale.gen
```

以下の文字列を含む行をコメントアウトします。


`en_US.UTF-8 UTF-8`

`ja_JP.UTF-8 UTF-8`


```03
# ロケールを生成
locale-gen
 
# ネットワーク簡単設定ツールのインストール
pacman -S ifplugd
 
# ブートローダーをブートセクタに書き込む。書き込み先は適時変更
grub-install --target=i386-pc --boot-directory=/boot --recheck --debug /dev/sda
 
# GRUB設定ファイルにOS起動設定を書き込む
grub-mkconfig -o /boot/grub/grub.cfg
 
# rootのパスワードを設定
passwd
 
# arch-chrootを抜ける
exit
```

9 最後に、アンマウントとシャットダウンを行います。

```
# アンマウント
umount /mnt/home && umount /mnt
 
# シャットダウン、rebootでもよい(ただし、VirtualBoxの場合は、ISOをアンマウントしなければならないので、シャットダウンが望ましい)
poweroff
```

`VirtualBox`を使用した場合は、以下のコマンドでISOファイルをアンマウントし、仮想マシンを起動します。*仮想マシンの定義が`archlinux`の場合ですので注意が必要です。

```
VBoxManage storageattach archlinux --storagectl archlinuxsata1 --port 2 --type dvddrive --medium emptydrive
 
VBoxManage startvm archlinux
```

これで、`ArchLinux`が立ち上がったらインストールは完了です。

##ArchLinuxの初期設定

では、ArchLinuxの最低限の設定を行なっていきます。

1 まず、ネットに繋がらないのでは、話しにならないので、ネットに繋がるように設定します。ココら辺の設定は、マシンによっても環境によっても異なってくる部分ですので、適時読み替えて下さい。

```
ip link
 
systemctl start dhcpcd@enp0s3
 
systemctl enable dhcpcd@enp0s3
 
ping -c 3 google.com
```

2 次に、 `sudo`の設定を行なっていきます。

```
pacman -S sudo
 
visudo
```

以下の文字列を含んだ行をコメントアウトします。

`Defaults env_keep += "HOME"`

`$wheel ALL=(ALL) ALL`

3 次に、 `VirtualBox`専用の設定です。不要な設定は個別に取り除いて下さい。

```
pacman -S virtualbox-guest-utils
 
modprobe -a vboxguest vboxsf vboxvideo
 
echo -e 'vboxguest\nvboxsf\nvboxvideo\nvboxdrv\nvboxnetadp\nvboxnetflt' > /etc/modules-load.d/virtualbox.conf
```

4 最後に、ユーザーを作成します。 `hoge`の部分は、ユーザーネームになります。

```
useradd -m -g users -G wheel,storage,power -s /bin/zsh hoge
 
passwd hoge
```

5 おまけとして、個人的によく使うツールもインストールしておきます。これらがないと、作業効率が格段に落ちてしまいます。

```
pacman -Syu vim zsh tmux bash-completion net-tools
```

##GUI環境の構築

`ArchLinux`でログインマネージャーやウィンドウマネージャーを導入する方法を紹介します。


ここでは、ログインマネージャーは、 `SLiM`、ウィンドウマネージャーは、 `Awesome`を採用することにします。

出来る限り最低限の構成を解説していきます。`ArchLinux`のGUI環境を便利にするためには、後で色々と追加していって下さい。

###Xのインストール
```
pacman -S xorg-server xorg-xinit
```

###SLiM本体とテーマをインストール

```
pacman -S slim archlinux-themes-slim slim-themes
```

###Awesomeのインストール

```
pacman -S awesome
```

###.xinitrcの設定

```
cp /etc/skel/.xinitrc ~/
 
echo -e "VBoxClient-all &" >> ~/.xinitrc
 
echo "exec awesome" >> ~/.xinitrc
```

###startx
ここまでの手順で`X`が起動するか確認してみます。ちなみに、`Ctrl`+ `Alt`+ `F2`でターミナルに戻ります。

```
startx
```

起動していなかったら、ログを見て問題を解決します。

```
vi /var/log/Xorg.0.log
```

###SLiMの設定

```
vim /etc/slim.conf
```

特定の文字列を以下のようにコメントアウトまたは、変更します。

```/etc/slim.conf
# zsh特有の設定
# https://wiki.archlinux.org/index.php/SLiM_(%E6%97%A5%E6%9C%AC%E8%AA%9E)
login_cmd exec /bin/zsh -l ~/.xinitrc %session
 
# numlockxいらず
# http://pc-usr.seesaa.net/article/213154213.html
numlock on
 
# デフォルトユーザーを設定(hogeの部分にユーザーネームを入れます)
default_user hoge
 
# オートログイン
auto_login yes
 
# デーモンとして実行
daemon yes
 
# テーマの変更
# http://chaitealatte-lightice.blogspot.jp/2012/08/arch-linux_28.html
current_theme archlinux-simplyblack
```

###最終確認

```
systemctl enable slim.service
 
reboot
```

再起動すれば、指定したユーザーでウィンドウマネージャーが起動した状態でログインしていると思います。これは、`Awesome`ですので、一旦ログアウトします。



すると、ログインマネージャー`SLiM`が表示されるとおもいます。


表示されないという場合は、`/etc/rc.conf`に設定を書いてみて下さい。

```/etc/rc.conf
DAEMONS=(slim)
MODULES=(vboxguest vboxsf vboxvideo)
```

お疲れ様でした。あまりに文章が長いと途中で切れてしまうため、続きは次回になります。具体的には、` yaourt`や`Awesome`について紹介していく予定です。よろしくお願いします。