[Raspberry Pi] RaspberryPi 2でCentOS7 ことはじめ

[RaspberryPiにCentOS7をインストール](http://qiita.com/pb_tmz08/items/1bfa508ad80471442d5c)しましたので


## まずはupdate
``yum update``で最新の状態にする


## つぎにキーマップ
```shell-session
# localectl set-keymap jp106
# cat /vconsole.conf
KEYMAP="jp106"
``` 
参考：[centos7でキーボードレイアウト変更](http://qiita.com/sue71/items/64c513ae181e9f7aa8f4)


## パーティション拡張
デフォルトだと2GBしかないので、拡張します。

### /root/READMEに従う
（コメントありがとうございます！）
root直下で

```shell-session
# touch /.rootfs-repartition
```

として再起動！


### /root/READMEに従わない

```shell-session
# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/root        1998672 1699032    178400  91% /
...
/dev/mmcblk0p1    307016   65064    241952  22% /boot
...

# fdisk /dev/mmcblk0
(p1をいれないように)
```
```
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p

Disk /dev/mmcblk0: 15.8 GB, 15811477504 bytes, 30881792 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xc1356df5

        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1            2048      616447      307200    c  W95 FAT32 (LBA)
/dev/mmcblk0p2          616448     1665023      524288   82  Linux swap / Solaris
/dev/mmcblk0p3         1665024     5859327     2097152   83  Linux
```

### パーティションの削除
```
Command (m for help): d
Partition number (1-3, default 3): 3
Partition 3 is deleted
```

### パーティションの作成（プライマリ）
```
Command (m for help): n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): p
Partition number (3,4, default 3): 3
First sector (1665024-30881791, default 1665024):
Using default value 1665024
Last sector, +sectors or +size{K,M,G} (1665024-30881791, default 30881791):
Using default value 30881791
Partition 3 of type Linux and of size 14 GiB is set
```

### 設定の書き込み
```
Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
```

### リブート後、サイズの変更をおこなう
```shell-session
# shutdown -r now
# resize2fs /dev/mmcblk0p3
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/mmcblk0p3 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/mmcblk0p3 is now 3652096 blocks long.

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        14G  1.7G   12G  13% /
devtmpfs        459M     0  459M   0% /dev
tmpfs           463M     0  463M   0% /dev/shm
tmpfs           463M   12M  452M   3% /run
tmpfs           463M     0  463M   0% /sys/fs/cgroup
/dev/mmcblk0p1  300M   64M  237M  22% /boot
tmpfs            93M     0   93M   0% /run/user/0
```


## いろいろインストールされていない
``git``とか``ntpdate``とか、いろいろインストールされていないので
必要なものをインストール。

### epel-release

**対応してませんでした**

AMRv7に対応するまで待ちましょう


### ntpdate
#### インストール
ラズパイは電源を落とすと、時刻が初期化されます。
ので、必要あらば正確な時刻を設定してください。

```shell-session
# yum install ntpdate
# ntpdate -s -b ntp.nict.jp
```
UTCになっていたら、timezoneを変更

```shell-session
# timedatectl set-timezone Asia/Tokyo
```

#### サービス登録
システム起動時に、時刻修正ができるようにサービス登録しました。

```shell-session
# cd /etc/systemd/system
# vi ntpdate-update.service
```
```text:ntpdate-update.service
[Unit]
Description=NTP update on Boot
After=network.service

[Service]
Type=simple
ExecStart=/usr/sbin/ntpdate -s -b ntp.nict.jp

[Install]
WantedBy=default.target
```
```shell-session
# systemctl enable ntpdate-update.service
```

### nodejs

epelでインストールできたら早かったのですが、それが叶わないので、ソースコンパイルします。

#### gcc, g++, git, make
いろいろありませんでしたので、インストール

```shell-session
# yum install gcc gcc-c++ git make
```

#### nodejs
GitHubからもってきます。
（2016年1月26日現在 masterはv6.0.0）
ここでは4.x系をインストールしたいと思います。

```shell-session
# git clone https://github.com/nodejs/node.git
# cd node
# git branch -b v4.x origin/v4.x
# ./configure --prefix=/usr
（過去の経験上、/usrにインストールしたほうがいい気がします）

# lscpu
（CPUの数を確認して）
# make -j4
（マルチプロセス数を指定する）
# make install
# source ~/.bash_profile
（インストールしたプログラムを認識させるため）

# node -v
v4.2.7-pre

# npm update -g npm
# npm -v
3.5.3

```

ビルドに1～2時間くらいかかります。まーしかたない。


### php
#### インストール
**remi** 使えません。
ので、ソースコンパイルしてもいいけど
とりいそぎ、yumでいれちゃいます。

```shell-session
# yum install php php-mysqlnd (etc..)
```

### mariadb
#### インストール
MySQLのかわりに、Mariadbになってますが、そのまま使います。
設定ファイルは、''/etc/my.cnf``のままです。

```shell-session
# yum install mariadb mariadb-server
# systemctl enable mariadb.service
# systemctl start mariadb.service
# mysql_secure_installation
# mysql -uroot -p
```

#### phpから接続

```shell-session
# php -r 'var_dump(new mysqli("localhost","user","password"));'
```
上記で確認した後は、コマンド履歴を消しておきましょう。


### Apache2.4
#### インストール

yumからインストールできなかったので
ソースからインストールする。

#### 事前準備

``nghttp2``のインストール

```shell-session
# git clone https://github.com/tatsuhiro-t/nghttp2.git/
# cd nghttp2
# autoreconf -i
# automake
# autoconf
# ./configure --prefix=/usr/local
# make -j4
# make install
# vi /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/lib
# ldconfig
# ldconfig -p | grep http
        libnghttp2.so.14 (libc6,hard-float) => /usr/local/lib/libnghttp2.so.14
        libnghttp2.so (libc6,hard-float) => /usr/local/lib/libnghttp2.so

```


``APR``系のインストール

```shell-session
# yum install apr-devel apr-util-devel
```

### Apache2.4のインストール
```shell-session
# wget http://ftp.meisei-u.ac.jp/mirror/apache/dist//httpd/httpd-2.4.18.tar.bz2
# tar jxvf httpd-2.4.18.tar.bz2
# cd httpd-2.4.18
# ./configure \
  --enable-http \
  --enable-http2 \
  --enable-nghttp2-staticlib-deps \
  --with-nghttp2=/usr/local/lib \
  --with-apr=/usr/bin/apr-1-config \
  --with-apr-util=/usr/bin/apu-1-config
# make install
```


### to be continued ...