デフォルトでインストールされているソフト

Debian Linuxならインストール直後では基本的なソフトしかインストールされておらず、用途に応じてソフトをインストールしていくのだが流儀だが、Raspberry Piはオプション扱いのソフトも既にインストールされているものがあるようだ。

ざっと確認したのはこれだけ、

  • gcc・・・・インストール済み
  • perl・・・・インストール済み
  • python・・・インストール済み
  • ruby・・・・インストールされていない
  • sshd・・・・インストール済み
  • git・・・・インストール済み
  • svn・・・・インストールされていない

詳細は分からないが結構インストールされているようだ。
つまりイメージを作った方のお気に入りのソフトがインストールされているということだ。

vimのインストール

ばんとさん好みの環境を構築だ。
まずはvim。
ばんとさんはLinuxではvimを愛用してるのだ。

bant@raspberrypi ~ $ sudo apt-get install vim
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
提案パッケージ:
ctags vim-doc vim-scripts
以下のパッケージが新たにインストールされます:
vim
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
674 kB 中 0 B のアーカイブを取得する必要があります。
この操作後に追加で 1,615 kB のディスク容量が消費されます。
以前に未選択のパッケージ vim を選択しています。
(データベースを読み込んでいます ... 現在 80954 個のファイルとディレクトリがイン ストールされています。)
(.../vim_2%3a7.3.547-7_armhf.deb から) vim を展開しています...
vim (2:7.3.547-7) を設定しています ...
update-alternatives: /usr/bin/vim (vim) を提供するために 自動モード で /usr/bin/vim.basic を使います
update-alternatives: /usr/bin/vimdiff (vimdiff) を提供するために 自動モード で /usr/bin/vim.basic を使います
update-alternatives: /usr/bin/rvim (rvim) を提供するために 自動モード で /usr/bin/vim.basic を使います
update-alternatives: /usr/bin/rview (rview) を提供するために 自動モード で /usr/bin/vim.basic を使います
update-alternatives: /usr/bin/vi (vi) を提供するために 自動モード で /usr/bin/vim.basic を使います
update-alternatives: /usr/bin/view (view) を提供するために 自動モード で /usr/bin/vim.basic を使います
update-alternatives: /usr/bin/ex (ex) を提供するために 自動モード で /usr/bin/vim.basic を使います

これでvimが使える。

vimの起動

vimの起動

ntpdate をインストール

初期設定が終わって時刻を確認してみると予想通り大幅に狂っていた。
ネットワークに接続する端末の時刻が狂ってるのは好ましくはない。自動で時刻を修正するソフトの導入が必要だ。時刻管理のNTPサーバを導入してもいいのであるが、小さなRaspberry Piには荷が重すぎるような気がしたので、ネット上のNTPサーバから時刻を貰って修正するntpdate (client)を導入することにした。

bant@raspberrypi ~ $ sudo apt-get install -y ntpdate
[sudo] password for bant:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
liblockfile-bin liblockfile1 lockfile-progs
以下のパッケージが新たにインストールされます:
liblockfile-bin liblockfile1 lockfile-progs ntpdate
アップグレード: 0 個、新規インストール: 4 個、削除: 0 個、保留: 0 個。
122 kB のアーカイブを取得する必要があります。
この操作後に追加で 409 kB のディスク容量が消費されます。
取得:1 http://mirrordirector.raspbian.org/raspbian/ wheezy/main liblockfile-bin armhf 1.09-5 [17.9 kB]
取得:2 http://mirrordirector.raspbian.org/raspbian/ wheezy/main liblockfile1 armhf 1.09-5 [14.4 kB]
取得:3 http://mirrordirector.raspbian.org/raspbian/ wheezy/main ntpdate armhf 1:4.2.6.p5+dfsg-2 [79.0 kB]
取得:4 http://mirrordirector.raspbian.org/raspbian/ wheezy/main lockfile-progs armhf 0.1.17 [10.6 kB]
122 kB を 2秒 で取得しました (50.3 kB/s)
以前に未選択のパッケージ liblockfile-bin を選択しています。
(データベースを読み込んでいます ... 現在 80914 個のファイルとディレクトリがイン ストールされています。)
(.../liblockfile-bin_1.09-5_armhf.deb から) liblockfile-bin を展開しています...
以前に未選択のパッケージ liblockfile1:armhf を選択しています。
(.../liblockfile1_1.09-5_armhf.deb から) liblockfile1:armhf を展開しています...
以前に未選択のパッケージ ntpdate を選択しています。
(.../ntpdate_1%3a4.2.6.p5+dfsg-2_armhf.deb から) ntpdate を展開しています...
以前に未選択のパッケージ lockfile-progs を選択しています。
(.../lockfile-progs_0.1.17_armhf.deb から) lockfile-progs を展開しています...
man-db のトリガを処理しています ...
liblockfile-bin (1.09-5) を設定しています ...
liblockfile1:armhf (1.09-5) を設定しています ...
ntpdate (1:4.2.6.p5+dfsg-2) を設定しています ...
lockfile-progs (0.1.17) を設定しています ...

テストがてら手入力で時刻合わせをしてみる。

bant@raspberrypi ~ $ sudo ntpdate -u ntp.jst.mfeed.ad.jp
2 Jul 10:31:06 ntpdate[2686]: adjust time server 210.173.160.27 offset -0.012935 sec
bant@raspberrypi ~ $ date
2013年 7月 2日 火曜日 10:31:34 JST

時刻修正ができた。

自動で設定できるように設定をする。

bant@raspberrypi ~ $ sudo vim /etc/default/ntpdate

で設定ファイルを開き、以下ように修正し書き込む。

# The settings in this file are used by the program ntpdate-debian, but not
# by the upstream program ntpdate.

# Set to “yes” to take the server list from /etc/ntp.conf, from package ntp,
# so you only have to keep it in one place.
NTPDATE_USE_NTP_CONF=no

# List of NTP servers to use (Separate multiple servers with spaces.)
# Not used if NTPDATE_USE_NTP_CONF is yes.
NTPSERVERS=”ntp.jst.mfeed.ad.jp”

# Additional options to pass to ntpdate
NTPOPTIONS=”-u”

ntpdate を再起動してみる。

bant@raspberrypi ~ $ sudo /etc/init.d/ntpdate restart

これで起動時に更新されようになった。

長時間起動することはないとは思うが、長時間運用システムを構築するなら、自動的に時刻修正されるようcronに登録する。

bant@raspberrypi ~ $ vim /etc/cron.daily/ntpdate

でcron起動用ファイルを作成し、以下の内容を書き込む

#!/bin/sh
ntpdate-debian

そして実行属性をつけておく

bant@raspberrypi ~ $ sudo chmod + x /etc/cron.daily/ntpdate

その他ソフトのインストール

その他必要なソフトを順次インストールしていく。
とりあえず、

  • nkf
  • fdclone …亡き出射さんに敬意を表して
  • sl …(笑)

をインストールして入れてみた。

インストールは以下のようにapt-getコマンドで行う。

bant@raspberrypi ~ $ sudo apt-get install nkf

大事なこと

Debainが管理しているRaspberry Piはディスク書き込みがキャッシュされてて、乱暴に電源を落とすとSDカード上に作ったシステムが破損し二度と起動しなくなる可能性がある。

電源を切るときには、Linuxのやり方に従いシステムをシャットダウンさせる。
つまり、以下のようにシステムにシャットダウンコマンドを送る。

bant@raspberrypi ~ $ sudo shutdown -h now
[sudo] password for bant:

Broadcast message from root@raspberrypi (pts/0) (Wed Jul 3 11:23:45 2013):
The system is going down for system halt NOW!

完全にシャットダウンできたら、以下のようにネット関係のLEDは消灯しPWR LEDのみが点灯してる状況になるようなので、この状態になってから電源用のUSBケーブルを抜いて電源を切る。

シャットダウン完了

シャットダウン完了

次は

次回はRaspberry Piの考察をちょこっと書きます。

追加訂正【2013/07/03】

/etc/init.dにあるサービス定義ファイルを確認したら、NTPサーバのサービス定義ファイルがあった。
追加訂正である。

bant@raspberrypi ~ $ ls /etc/init.d
README                  hwclock.sh             mtab.sh       rsyslog
alsa-utils              ifplugd                networking    sendsigs
bootlogs                kbd                    nfs-common    single
bootmisc.sh             keyboard-setup         ntp           skeleton
checkfs.sh              killprocs              plymouth      ssh
checkroot-bootclean.sh  kmod                   plymouth-log  sudo
checkroot.sh            lightdm                procps        triggerhappy
console-setup           motd                   rc            udev
cron                    mountall-bootclean.sh  rc.local      udev-mtab
dbus                    mountall.sh            rcS           umountfs
dphys-swapfile          mountdevsubfs.sh       reboot        umountnfs.sh
fake-hwclock            mountkernfs.sh         rmnologin     umountroot
halt                    mountnfs-bootclean.sh  rpcbind       urandom
hostname.sh             mountnfs.sh            rsync         x11-common

ということはもしかしてNTPサーバとしてRaspberry Piが働いてるのではないかと疑問になったので確認した。

bant@raspberrypi ~ $ sudo ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*sylph.white-voi 150.26.2.66      2 u   68   64    7   29.036    0.008   1.182
 219x123x70x92.a 192.168.7.123    2 u   64   64    7   27.050   -1.198   1.207
 kazukioishi.net 133.243.238.163  2 u   65   64    7   14.287   -0.769   1.300
 pache.auto-id.w 131.113.192.40   2 u   60   64    7   23.039   -1.104   0.989

ピンポン!!! 動いてる。 😥
これは自ら導入した訳ではないのでいたしかたないかもしれないがチョンボである。

定義ファイルを確認すると、こんな感じだった。

bant@raspberrypi ~ $ cat /etc/ntp.conf
# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help

driftfile /var/lib/ntp/ntp.drift

# Enable this if you want statistics to be logged.
#statsdir /var/log/ntpstats/

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

# You do need to talk to an NTP server or two (or three).
#server ntp.your-provider.example

# pool.ntp.org maps to about 1000 low-stratum NTP servers.  Your server will
# pick a different set every time it starts up.  Please consider joining the
# pool: <http://www.pool.ntp.org/join.html>
server 0.debian.pool.ntp.org iburst
server 1.debian.pool.ntp.org iburst
server 2.debian.pool.ntp.org iburst
server 3.debian.pool.ntp.org iburst

# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
# details.  The web page <http://support.ntp.org/bin/view/Support/AccessRestrictions>
# might also be helpful.
#
# Note that "restrict" applies to both servers and clients, so a configuration
# that might be intended to block requests from certain clients could also end
# up blocking replies from your own upstream servers.

# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1

# Clients from this (example!) subnet have unlimited access, but only if
# cryptographically authenticated.
#restrict 192.168.123.0 mask 255.255.255.0 notrust

# If you want to provide time to your local subnet, change the next line.
# (Again, the address is an example only.)
#broadcast 192.168.123.255

# If you want to listen to time broadcasts on your local subnet, de-comment the
# next lines.  Please do this only if you trust everybody on the network!
#disable auth
#broadcastclient

debian関係のNTPサーバを参照しているようだ。これを国内の近いNTPサーバに書き換えたら実用になる。

となると、インストールしたntpdateが不要になるので、apt-getコマンドで削除することにした。

bant@raspberrypi ~ $ sudo apt-get purge ntpdate
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  liblockfile-bin liblockfile1 lockfile-progs
これを削除するには 'apt-get autoremove' を利用してください。
以下のパッケージは「削除」されます:
  ntpdate*
アップグレード: 0 個、新規インストール: 0 個、削除: 1 個、保留: 0 個。
この操作後に 216 kB のディスク容量が解放されます。
続行しますか [Y/n]? Y
(データベースを読み込んでいます ... 現在 80960 個のファイルとディレクトリがイン ストールされています。)
ntpdate を削除しています ...
ntpdate の設定ファイルを削除しています ...
man-db のトリガを処理しています ...

apt-get autoremoveを薦められたので実行。

bant@raspberrypi ~ $ sudo apt-get autoremove
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージは「削除」されます:
  liblockfile-bin liblockfile1 lockfile-progs
アップグレード: 0 個、新規インストール: 0 個、削除: 3 個、保留: 0 個。
この操作後に 193 kB のディスク容量が解放されます。
続行しますか [Y/n]? Y
(データベースを読み込んでいます ... 現在 80946 個のファイルとディレクトリがイン ストールされています。)
lockfile-progs を削除しています ...
liblockfile1:armhf を削除しています ...
liblockfile-bin を削除しています ...
man-db のトリガを処理しています ...

そしてcron用に作ったファイルを削除。

bant@raspberrypi ~ $ sudo rm /etc/cron.daily/ntpdate

分かったこと。

Raspberry PiはNTPサーバであるということ。
つまりネットワークに置いたらRaspberry Piの時刻に合わせるだけで相当正確な時刻が得られるということだ。