Raspberry PiをRaspbian Jessie Liteにアップグレード

以前Raspberry Piのインストールログ - kame-tの日記
インストールログをまとめたが
先日Raspbian Jessie Liteがリリースされたのを受けて
https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=127060
自宅のサーバをアップグレードしてみた

前回同様メモ程度

  • 作業端末でイメージの書き込み
% sudo dd if=2015-11-21-raspbian-jessie-lite.img of=/dev/sdd

サーバ利用するのでIPアドレスを固定に変更
/etc/network/interfacesではなく
DHCPを使うので/etc/dhcpcd.confの設定を下記に変更

interface eth0
static ip_address=192.168.0.xx/24
static routers=192.168.0.oo
static domain_name_servers=192.168.0.oo 8.8.8.8

SSHがデフォルトで動作しているのでリモートで接続

% ssh pi@192.168.0.xx
  • root領域の拡張
$ sudo raspi-config

localtimeは作業PCからscp

$ sudo cp ~/localtime /etc/localtime
$ sudo localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
$ cat /etc/locale.gen
ja_JP.UTF-8 UTF-8
  • apt-get
# apt-get upgrade
# apt-get install postfix
# apt-get install postfix-policyd-spf-python
# apt-get install dnsutils
# apt-get install procmail
# apt-get install fetchmail
# apt-get install telnet
# apt-get install emacs
# apt-get install emacs-mozc
# apt-get install mozc-data
# apt-get install gnupg2
# apt-get install ruby
# apt-get install sqlite3
# apt-get install ruby-sqlite3
# apt-get install ruby-dbd-sqlite3
# apt-get install stunnel4
# apt-get install git
# apt-get install tcsh
# apt-get install screen
# apt-get install ntpdate
# apt-get install pwgen
# apt-get install libssl-dev
# apt-get install ntpdate
# apt-get install squid
# apt-get install pptpd
# apt-get install golang
# apt-get autoremove

pptpdはデフォルトでdisableなので

# systemctl is-enabled pptpd.service
disable
# systemctl enable pptpd.service

不要なサービス起動の停止

# insserv -r rsync
# insserv -r fetchmail
# insserv -r stunnel4
# insserv -r saned
  • ユーザの作成とバックアップからのホーム領域の復元
% rsync -ac bk/home/xx 192.168.0.xx:/home/xx

すでにgit cloneしているので

% cd Mew
% make distclean
% git pull
% ./configure
% make
% sudo make install
% sudo cp /usr/share/emacs/24/site-lisp/subdirs.el /usr/local/share/emacs/site-lisp
  • hyperestraier and qdbm

バージョンは変わらず(T_T)なのでそのまま再コンパイル

% cd qdbm-1.8.78
% make distclean
% ./configure --enable-zlib
% make
% sudo make install
% sudo ldconfig
% cd hyperestraier-1.4.13
% make distclean
% ./configure
% make
% sudo make install
  • fetchmailMewのstunnel用に.certsファイルを作成
$ for i in /usr/share/ca-certificates/mozilla/*; do cp $i ~/.certs/`openssl x509 -hash -noout -in $i`.0; done

動作確認

% openssl s_client -connect imap.gmail.com:993 -CApath ~/.certs/

fetchmailrcはこんな感じ

sslcertck
sslcertpath "~/.certs"

また今回はRaspbianデフォルトのstunnelで接続できた

  • emacsの日本語入力をanthyからmozcへ変更
(require 'mozc)
(setq default-input-method "japanese-mozc")

但し遅い...raspberrypi2なら大丈夫かも

  • cronの設定
  • rsyslogの設定
    • /etc/rsyslog.conf
  • ntpの設定
    • /etc/ntp.conf
  • sshdの設定

イントラネット用とインターネット用デーモン(違うポート番号・公開鍵限定)

Port 22
Port xxxx
PermitRootLogin no
PasswordAuthentication no
Match Address 192.168.0.0/24
    PermitRootLogin without-password
    PasswordAuthentication yes

上位ルータで22番は閉じてハイポートxxxxのみを開放
なおMatchは最下行にする必要あり

わざわざコンパイルしていたが
mackerel-agentのARM版バイナリーはRaspberry PI 2でもさくっと動く - Qiitaみたい
/usr/local/sbin/mackerel-agentにコピーして
/usr/local/etc/mackerel-agent.confをバックアップから復元
/etc/init.d/mackerel-agentを置いて

% sudo insserv mackerel-agent