やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Raspbian stretch 9.0 2018-11-13 Desktop システム構築手順まとめ

 いくつもの記事に分断されて面倒なのでひとつの記事にまとめた。(20,000文字以上)

記入日

 2019-02-15。

目次

  1. 必要なもの
  2. 手順

必要なもの

  1. インターネット接続環境
  2. OS(Raspbian)のダウンロード&書込マシン
  3. ハードウェアの購入

1. インターネット接続環境

 OS(Raspbian)をダウンロードするためにインターネット接続環境が必要である。

2. OS(Raspbian)のダウンロード&書込用マシン

 OS(Raspbian)をダウンロードし、HDDに書き込むためのマシン(PC)が必要である。

 今回は書込用マシンもRaspberry Piとする。

3. ハードウェアの購入

 Raspberry PiやHDDなどが必要である。

  • Raspberry Pi 3B+
  • HDD Case
    • USB 3.0
    • SATA
    • inch: 2.5
    • 厚み: 7mm/9mm/12.5mm
  • HDD
    • SATA
    • inch: 2.5
    • 厚み: 7mm/9mm/12.5mm
  • USBハブ
    • セルフパワー(最大1.9A)
  • HID
    • Display
    • Keyboard
    • Mouse
+-------+
|RPI3B+ |
+-------+
  |
  [USB2.0]--[HDD case]--[HDD]

 Raspberry Piは通常SDカードにOSを書込んでブートする。しかしSDカードは書込上限がありすぐに寿命が来てしまう。そこでHDDを使う。HDDにOSを書き込んでブートする。

 USB接続した補助記憶装置(HDD)からブートするUSB Bootという機能を使う。

3-1. ラズパイ電力不足の解決

 今回は書込用マシンもRaspberry Piである。このとき、起動用と書込対象の2つのHDDが接続される。このままではRaspberry Pi電力不足に陥り起動できなくなるため、セルフパワーのUSBハブを使う。

+-------+
|RPI3B+ |
+-------+
|  |
|  [USB2.0]--[HDD case]--[HDD] ※書込用マシンのOS入り
|  [USB2.0]--[USBハブ]--[HDD case]--[HDD] ※書込対象HDD
|            |
[ACアダプタ] [ACアダプタ]
|            |
[ACコンセント]

手順

  1. 起動ディスクをつくる
  2. 初回ブートする
  3. 設定する
  4. アプリ入手
  5. アプリ拡張機能インストール
  6. アプリ設定ファイル入手

1. 起動ディスクをつくる

  1. ダウンロードする
  2. HDDに書き込む

1-1. ダウンロードする

  1. ダウンローダをダウンロードする
  2. ダウンローダでOSイメージをダウンロードする

1-1-1. ダウンローダをダウンロードする

  1. 書込用マシンを起動する
  2. ターミナルを起動する
  3. 以下コマンドでダウンローダをダウンロードする
sudo apt install -y aria2

1-1-2. ダウンローダでOSイメージをダウンロードする

  1. OSイメージを選定する
  2. OSイメージのURLをコピーする
  3. OSイメージをダウンロードする
  4. SHA-256で確認する
1-1-2-1. OSイメージを選定する
  1. ブラウザを起動する
  2. 公式サイトを見る

 Raspbian stretch 2018-11-13から3種類に増えた。以下の3つがある。

種類 URL SHA-256 概要
Full http://director.downloads.raspberrypi.org/raspbian_full/images/raspbian_full-2018-11-15/2018-11-13-raspbian-stretch-full.zip 0ca644539fdaf4e19ec7cebf9e61c049b82ba45b1a21cdec91fa54bd59d660d2 GUI版+アプリ多数
Desktop http://director.downloads.raspberrypi.org/raspbian/images/raspbian-2018-11-15/2018-11-13-raspbian-stretch.zip a121652937ccde1c2583fe77d1caec407f2cd248327df2901e4716649ac9bc97 GUI版(マウス入力)
Lite http://director.downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2018-11-15/2018-11-13-raspbian-stretch-lite.zip 47ef1b2501d0e5002675a50b6868074e693f78829822eef64f3878487953234d CUI版(コマンド入力)
1-1-2-2. OSイメージのURLをコピーする
  1. 公式サイトからOSイメージをダウンロードする
  2. ブラウザ(Chromium)のダウンロード一覧を表示する(Ctrl+J)
  3. ダウンロードを中止する
  4. ダウンロード項目を右クリックする
  5. リンクのアドレスをコピーをクリックする
1-1-2-3. OSイメージをダウンロードする
  1. OSイメージファイル保存先(/home/pi/root/db/iso/os/raspbian)に移動する
  2. ダウンローダでOSイメージファイルをダウンロードする

 コマンドの例は以下。パスやURLは任意に編集すること。URLは先程コピーしたOSイメージのURLを使う。

cd /home/pi/root/db/iso/os/raspbian
time aria2c -x10 http://director.downloads.raspberrypi.org/raspbian/images/raspbian-2018-11-15/2018-11-13-raspbian-stretch.zip

 シェルスクリプトファイルにするなら以下。OutPath, OsImgUrlを任意に変更して使う。

download_os_image.sh

OutPath=/home/pi/root/db/iso/os/raspbian
OsImgUrl=http://director.downloads.raspberrypi.org/raspbian/images/raspbian-2018-11-15/2018-11-13-raspbian-stretch.zip
cd "${OutPath}" 
time aria2c -x10 "${OsImgUrl}"

 おそらく1時間くらいかかる。1GB以上ある。

1-1-2-4. SHA-256で確認する

 ダウンロードが完了したらSHA-256でデータ破損などがないか確認する。(必須ではない)

 ファイルのSHA-256を算出するコマンドは以下。

shasum -a 256 /home/pi/root/db/iso/os/raspbian/2018-11-13-raspbian-stretch.zip > checked.txt

 出力されたchecked.txtファイルの内容と公式サイトで公開されているSHA-256の値が一致していれば、ファイル破損なく正常にダウンロードできたと思われる。

 たとえば2018-11-13のDesktop版なら以下で確認できる。

cd /tmp/work
echo 'a121652937ccde1c2583fe77d1caec407f2cd248327df2901e4716649ac9bc97' > expect.txt
shasum -a 256 /home/pi/root/db/os/raspbian/2018-11-13-raspbian-stretch.zip | cut -d ' ' -f 1 > actual.txt
diff -s expect.txt actual.txt

 diff -sにより以下のメッセージが出ればOK。

expect.txt と actual.txt は同一です

 もし違えば、例えば以下のようになる。

< a121652937ccde1c2583fe77d1caec407f2cd248327df2901e4716649ac9bc97
---
> a121652937ccde1c2583fe77d1caec407f2cd248327df2901e4716649ac9bc97A

 SHA-256値が違うときはファイル破損している可能性がある。原因と対処は以下。

原因 対処
ダウンロード時にデータが破損した ダウンロードし直す
公式サイトの元データが改ざんされて提供者の意図せぬデータになっている 公式情報をみる等して事実確認。事実なら改善を待つか古い版をダウンロードする

1-2. HDDに書き込む

  1. 対象HDDの名前を特定する
  2. HDDにOSイメージを書き込む

1-2-1. 対象HDDの名前を特定する

  1. ターミナルを起動する
  2. df -hコマンドを打つ
  3. 書込対象HDDの名前を探す
$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/root        917G  171G  709G   20% /
devtmpfs         370M     0  370M    0% /dev
tmpfs            375M   62M  314M   17% /dev/shm
tmpfs            375M   11M  365M    3% /run
tmpfs            5.0M  4.0K  5.0M    1% /run/lock
tmpfs            375M     0  375M    0% /sys/fs/cgroup
tmpfs             32M   32K   32M    1% /var/log
tmpfs            500M   16K  500M    1% /tmp
tmpfs             16M     0   16M    0% /var/tmp
tmpfs            768M  9.1M  759M    2% /home/pi/.cache/chromium/Default
tmpfs            1.0M   16K 1008K    2% /home/pi/.cache/lxsession/LXDE-pi
/dev/sda1         43M   22M   21M   52% /boot
tmpfs             75M     0   75M    0% /run/user/1000
/dev/sdb1         61M   51M  9.3M   85% /media/pi/boot

 上記が一例。区別は以下。

名前 概要
/dev/sda1 起動中のシステム。間違ってもこれに書き込んではダメ!
/dev/sdb1 書込対象とするHDD

 HDDは/dev/sd?1の書式になる。?にはazが順に入る。どのHDDに書き込むかはHDD内にあるファイル内容などで確認すること。今回は/dev/sdb1が書込対象である。

1-2-2. アンマウントする

 書込先をアンマウントする。書込先は/dev/sdbなのでそれに対応するマウントをアンマウントする。

umount /media/pi/boot
umount /media/pi/rootfs

 アンマウントしないとブートできないHDDが出来上がってしまう。

 デバイス名などの例は以下。

項目 名前
バイス /dev/sd[a-z]+[1-9]?[0-9]* /dev/sda, /dev/sdb, /dev/sdc, ...
バイス名+パーティション/dev/sd[a-z]+[1-9]?[0-9]* /dev/sda1, /dev/sda2, /dev/sda3, ...
ラズパイ・マウント名 boot[1-9]?[0-9]*, rootfs[1-9]?[0-9]* /media/pi/boot, media/pi/rootfs, /media/pi/boot1, media/pi/rootfs1

1-2-3. HDDにOSイメージを書き込む

 /dev/sdbにRaspbianを書き込む。コマンドは以下。

time unzip -p /home/pi/root/db/iso/os/raspbian/2018-11-13-raspbian-stretch.zip | sudo dd of=/dev/sdb bs=4M conv=fsync

 2時間くらいかかった。

 シェルスクリプトなら以下。

write_os_image_to_HDD.sh

OutPath=/home/pi/root/db/iso/os/raspbian
OsImgFileName=2018-11-13-raspbian-stretch.zip
unzip -p ${OutPath}/${OsImgFileName} | sudo dd of=/dev/sdb bs=4M conv=fsync

 ダウンロードと書込のスクリプト

download_and_write_os_image.sh

OutPath=/home/pi/root/db/iso/os/raspbian
OsImgFileName=2018-11-13-raspbian-stretch.zip
OsImgUrl=http://director.downloads.raspberrypi.org/raspbian/images/raspbian-2018-11-15/${OsImgFileName}
WriteDevice=/dev/sdb

Download() {
    cd "${OutPath}"
    time aria2c -x10 "${OsImgUrl}"
}
Write() {
    unzip -p "${OutPath}/${OsImgFileName}" | sudo dd of=${WriteDevice} bs=4M conv=fsync
}
SwitchWrite() {
    local message="OSイメージ「${OutPath}/${OsImgFileName}」を「${WriteDevice}」に書き込みます。「${WriteDevice}」の内容がすべて消去されますが良いですか? (y/N): "
    read -p "${message}" yn; case "$yn" in [yY]*) { echo "書込みを開始します。"; Write; };; *) echo "中止します。";; esac

}
# ダウンロード
Download
# HDD書込
SwitchWrite

2. 初回ブートする

  1. HDMI設定する
  2. 初回ブートする
  3. 初期設定する(ダイアログに従う)

2-1. HDMI設定する

 ディスプレイが19201080(16:9)だとブートしても真っ暗で何も表示されないことがある。そこでブートする前にディスプレイに合わせてHDMI設定する。/boot/config.txtファイルを編集する。(1024768(4:3)では設定不要だった)

 なお、以下は各ディスプレイを購入したとき出品者に問い合わせた設定値である。

2-1-1. cocopar 13.3 inch 16:9 1920x1080 HDMIディスプレイ

/boot/config.txt

# 2018-09-22 cocopar 13.3inch 16:9 Display
max_usb_current=1
hdmi_group=2
hdmi_mode=82
hdmi_cvt 1920 1080 60 6 0 0 0
gpu_mem=256

2-1-2. ELECROW 13.3 inch 16:9 1920x1080 HDMIディスプレイ

/boot/config.txt

# 2018-09-21 Elecrow Display start
# 古いディスプレイ(1024x768まで対応)だとブートしなくなる。(ディスプレイが暗い状態でチカチカするのを無限ループする)その場合はコメントアウトする。
max_usb_current=1
hdmi_group=2
hdmi_mode=1
hdmi_mode=82
hdmi_cvt 1920 1080 60 6 0 0 0

# 2でないと音が出ない
#hdmi_drive=1
hdmi_drive=2
# 2018-09-21 Elecrow Display end

# 2018-09-30 https://qiita.com/tkyonezu/items/0d11c782da3921d6a9f3
program_usb_boot_mode=1
program_usb_boot_timeout=1
# 2018-09-30 https://qiita.com/tkyonezu/items/0d11c782da3921d6a9f3

2-1-3. 参考

 他のディスプレイに対応したいときなどは/boot/config.txtの設定値などを上記URLを参考にして適切に変更すること。

2-2. 初回ブートする

  1. 書込用マシンから書込完了したHDDをイジェクトする
  2. HDDをRaspberry PiにUSB接続する
  3. ACアダプタをコンセントに挿す
  4. 初回ブートを確認する

 初回ブート時はHDDの領域を自動で拡張する処理が走る。しばらく待てばデスクトップ画面が表示されるはず。

2-3. 初期設定する(ダイアログに従う)

 初回ブート後にデスクトップが表示されたら、ダイアログが表示されているはず。これに従うことで初期設定できる。基本的にはNextを押していく。

  1. ラズパイを起動してデスクトップ表示されるとダイアログが表示される (Welcome to Raspberry Pi)
  2. Nextをクリックする
  3. Set Countryページにて、CountryJapanにする
  4. Language, Timezoneも日本に自動設定される)
  5. Nextをクリックする
  6. Change Passwordページにて、システムパスワードを任意に設定する
  7. (デフォルトはユーザ名:pi, パスワード:raspberry
  8. Select Wifi Networkページにて、自宅のルータを選択してNextをクリックする
  9. Wifiのパスワードを入力してNextをクリックする
  10. Update Softwareページにて、システムアップデートはSkipする
  11. Setup Completeページにて、Rebootする

3. 設定する

  1. スワップ拡張
  2. RAMディスク設定
  3. aptのソースを日本サーバに設定
  4. ログ出力の抑制
  5. .bashrcに自作スクリプト呼出を追記
  6. システム更新
  7. 日本語フォント+日本語入力のインストール
  8. アプリのインストール

 まとめたバッチは以下。

raspbian_first_setup.sh

#!/bin/bash
# ===================================================
# 題名: Raspbian stretch 初期セットアップ自動化バッチ
# 対象OS: Raspbian stretch 9.0 2018-11-13
# 作成日: 2019-02-15
# 作成者: ytyaru
# セットアップ概要: 
#   * スワップ(拡張 or 停止)
#   * RAMディスク設定
#   * aptのソースを日本サーバに設定
#   * ログ出力の抑制
#   * .bashrcに自作スクリプト呼出を追記
#   * システム更新
#   * 日本語フォント+日本語入力のインストール
#   * アプリのインストール
# 実行タイミング:
#   SDカードにRaspbianをインストールし、
#   初回ブートし、
#   ダイアログに従ってセットアップ
#   した後に1度だけ実行する。
#   なお、システム更新はダイアログの時点ではスキップし、このバッチで行うほうが高速に完了するはず。
# ===================================================

# コマンドをsudo権限で実行する
# $1: some linux command.
run_sudo() {
    sudo sh -c "${1}"
}
# 指定したテキストを指定したファイルに追記する
# $1: text: new line text.
# $2: file: target file path.
# http://yut.hatenablog.com/entry/20111013/1318436872
# https://qiita.com/b4b4r07/items/e56a8e3471fb45df2f59
# http://wannabe-jellyfish.hatenablog.com/entry/2015/01/10/004554
# http://pooh.gr.jp/?p=6311
write_line() {
    for i in "${1}"; do
        local command="echo '${i}'"
        sudo sh -c "${command} >> \"${2}\""
    done
}
# 指定ファイルのうち先頭が指定テキストの場合、先頭に#を付与する
# $1: file: target file path.
# $2: text: target text(ヒアドキュメントで複数行指定されることを想定)
#http://linux-bash.com/archives/3745148.html
write_sharp() {
    #IFS_backup=IFS
    #IFS=$'\n'
    for i in ${2}; do
        # 末尾の改行を除去(しないと次のエラーが出る。"sed: -e expression #1, char 2: アドレスregexが終了していません")
        local line=`echo ${i} | sed -e "s/[\r\n]\+//g"`
        local sed_script="/^${line}/s/^/#/"
        local sed_cmd="sed -e \"${sed_script}\" -i.bak \"${1}\""
        run_sudo "${sed_cmd}"
    done
    #IFS=IFS_backup
}

# スワップ停止(SDカード書込上限対策)
stop_swap() {
    sudo swapoff --all
    sudo systemctl stop dphys-swapfile
    sudo systemctl disable dphys-swapfile
}
# スワップのサイズを100MBから2GBに変更する
setup_swap() {
    local SwapFilePath=/etc/dphys-swapfile
    write_sharp "${SwapFilePath}" "CONF_SWAPSIZE=100"
    write_line "CONF_SWAPSIZE=2048" "${SwapFilePath}"
    sudo systemctl stop dphys-swapfile
    sudo systemctl start dphys-swapfile
}
# RAMディスク作成(SDカード書込上限対策)
write_fstab() {
    text='
tmpfs /tmp            tmpfs   defaults,size=768m,noatime,mode=1777      0       0
tmpfs /var/tmp        tmpfs   defaults,size=16m,noatime,mode=1777      0       0
tmpfs /var/log        tmpfs   defaults,size=32m,noatime,mode=0755      0       0
tmpfs /home/pi/.cache/chromium/Default/  tmpfs  defaults,size=768m,noatime,mode=1777  0  0
tmpfs /home/pi/.cache/lxsession/LXDE-pi  tmpfs  defaults,size=1m,noatime,mode=1777  0  0
'
    write_line "${text}" "/etc/fstab"
}
# システム更新の高速化(日本用)
write_apt_sources_list() {
    text='
deb http://ftp.jaist.ac.jp/raspbian/ stretch main contrib non-free rpi
deb http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian/ stretch main contrib non-free rpi
deb http://ftp.yz.yamagata-u.ac.jp/pub/linux/raspbian/raspbian/ stretch main contrib non-free rpi
deb http://mirrordirector.raspbian.org/raspbian/ stretch main contrib non-free rpi
# firmwar update
deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ stretch main ui
'
    write_line "${text}" "/etc/apt/sources.list"
}

# ログ出力を抑制する(SDカード書込上限対策)
#http://linux-bash.com/archives/3745148.html
#http://momijiame.tumblr.com/post/92049916671/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E7%89%B9%E5%AE%9A%E8%A1%8C%E3%82%92-sed-%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%82%A2%E3%82%A6%E3%83%88%E3%81%99%E3%82%8B
#/etc/rsyslog.conf
comment_out_rsyslog_conf() {
    text='
auth,authpriv.*
*.*;auth,authpriv.none
cron.*
daemon.*
kern.*
lpr.*
mail.*
user.*
mail.info
mail.warn
mail.err
*.=debug;\
    auth,authpriv.none;\
    news.none;mail.none -/var/log/debug
*.=info;*.=notice;*.=warn;\
    auth,authpriv.none;\
    cron,daemon.none;\
    mail,news.none      -/var/log/messages
'

    write_sharp "/etc/rsyslog.conf" "${text}"
}

# .bashrcに自作スクリプト呼出を追記
append_bashrc() {
    timestamp=`date +"%Y-%m-%d %H:%M:%S"`
#    text='
## ${timestamp} 自作スクリプト呼出
#. "$HOME/root/script/sh/_called/bash/bashrc.sh"
#'
    text=$(cat <<EOS
# ${timestamp} 自作スクリプト呼出
. "$HOME/root/script/sh/_called/bash/bashrc.sh"
EOS
)
    write_line "${text}" "/etc/apt/sources.list"
}
# システム&ファームウェア更新
update_system() {
    sudo apt update -y
    sudo apt upgrade -y
    sudo apt dist-upgrade -y
}
# 日本語化
japanese() {
    sudo apt install -y fonts-vlgothic fonts-ipafont fonts-ipaexfont
    sudo apt install -y fcitx-mozc
}

# アプリケーションのインストール
install_apps() {
    install_general
    install_sdk
    install_tools_myscript_depend
}
# 汎用系アプリケーションインストール
install_general() {
    sudo apt install -y pluma
    sudo apt install -y gimp
#   install_libreoffice
}
install_libreoffice() {
    sudo apt install -y libreoffice
    sudo apt install -y libreoffice-l10n-ja
    sudo apt install -y libreoffice-help-ja
}
# 開発系アプリケーションインストール
install_sdk() {
    install_sdk_mono
    install_sdk_monodevelop
}
install_sdk_mono() {
    time sudo apt install -y apt-transport-https dirmngr
    time sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
    echo "deb https://download.mono-project.com/repo/debian stable-raspbianstretch main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
    time sudo apt install -y mono-devel
}
install_sdk_monodevelop() {
    time sudo apt install -y monodevelop
# MonoDevelop拡張機能のインストール
# https://github.com/picoe/Eto/releases
}
# 自作スクリプトで使うツール
install_tools_myscript_depend() {
    sudo apt install -y xsel
    sudo apt install -y xdotool
}
# ブラウザの設定
# * 起動時:`前回開いていたページを開く`
# * ダウンロード 保存先:`/tmp`
# ブラウザ拡張機能のインストール
# [ublock-origin](https://chrome.google.com/webstore/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm?hl=ja)|広告ブロック
# [stylus](https://chrome.google.com/webstore/detail/stylus/clngdbkpkpeebahjckkjfobafhncgmne)|ユーザスタイルシート
# [authenticator](https://chrome.google.com/webstore/detail/authenticator/bhghoamapcdpbohphigoooaddinpkbai?hl=ja)|二段階認証アプリ

# 実行する
#stop_swap
setup_swap
write_fstab
write_apt_sources_list
comment_out_rsyslog_conf
append_bashrc
update_system
japanese
install_apps
# 再起動する
reboot

3-1. スワップ拡張

  1. /etc/dphys-swapfileファイルをテキストエディタで開く(管理者権限)
  2. CONF_SWAPSIZE=100とある行の先頭に#を追記してコメントアウトする
  3. CONF_SWAPSIZE=2048を追記する(スワップサイズを2GBに拡張)
  4. systemctlを再起動する
sudo leafpad /etc/dphys-swapfile
sudo systemctl stop dphys-swapfile
sudo systemctl start dphys-swapfile

3-2. RAMディスク設定

  1. /etc/fstabファイルをテキストエディタで開く(管理者権限: sudo leafpad /etc/fstab
  2. ファイルの末尾に以下を追記する
tmpfs /tmp            tmpfs   defaults,size=768m,noatime,mode=1777      0       0
tmpfs /var/tmp        tmpfs   defaults,size=16m,noatime,mode=1777      0       0
tmpfs /var/log        tmpfs   defaults,size=32m,noatime,mode=0755      0       0
tmpfs /home/pi/.cache/chromium/Default/  tmpfs  defaults,size=768m,noatime,mode=1777  0  0
tmpfs /home/pi/.cache/lxsession/LXDE-pi  tmpfs  defaults,size=1m,noatime,mode=1777  0  0

3-3. aptのソースを日本サーバに設定

  1. /etc/apt/sources.listファイルをテキストエディタで開く(管理者権限: sudo leafpad /etc/apt/sources.list
  2. ファイルの先頭に以下を追記する
deb http://ftp.jaist.ac.jp/raspbian/ stretch main contrib non-free rpi
deb http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian/ stretch main contrib non-free rpi
deb http://ftp.yz.yamagata-u.ac.jp/pub/linux/raspbian/raspbian/ stretch main contrib non-free rpi
deb http://mirrordirector.raspbian.org/raspbian/ stretch main contrib non-free rpi
# firmwar update
deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ stretch main ui

3-4. ログ出力の抑制

  1. /etc/rsyslog.confファイルをテキストエディタで開く(管理者権限: sudo leafpad /etc/rsyslog.conf
  2. 以下の箇所をコメントアウトする(以下はコメントアウト後の状態)
###############
#### RULES ####
###############

#
# First some standard log files.  Log by facility.
#
#auth,authpriv.*            /var/log/auth.log
#*.*;auth,authpriv.none     -/var/log/syslog
#cron.*             /var/log/cron.log
#daemon.*           -/var/log/daemon.log
#kern.*             -/var/log/kern.log
#lpr.*              -/var/log/lpr.log
#mail.*             -/var/log/mail.log
#user.*             -/var/log/user.log

#
# Logging for the mail system.  Split it up so that
# it is easy to write scripts to parse these files.
#
#mail.info          -/var/log/mail.info
#mail.warn          -/var/log/mail.warn
#mail.err           /var/log/mail.err

#
# Some "catch-all" log files.
#
#*.=debug;\
#   auth,authpriv.none;\
#   news.none;mail.none -/var/log/debug
#*.=info;*.=notice;*.=warn;\
#   auth,authpriv.none;\
#   cron,daemon.none;\
#   mail,news.none      -/var/log/messages

3-5. .bashrcに自作スクリプト呼出を追記

  1. /home/pi/.bashrcファイルをテキストエディタで開く(管理者権限: sudo leafpad /home/pi/.bashrc
  2. ファイル末尾に以下を追記する
# ${timestamp} 自作スクリプト呼出
. "$HOME/root/script/sh/_called/bash/bashrc.sh"

3-6. システム更新

sudo apt update -y
sudo apt upgrade -y
sudo apt dist-upgrade -y

3-7. 日本語フォント+日本語入力のインストール

sudo apt install -y fonts-vlgothic fonts-ipafont fonts-ipaexfont
sudo apt install -y fcitx-mozc

3-8. アプリのインストール

sudo apt install -y pluma
sudo apt install -y gimp

sudo apt install libreoffice
sudo apt install libreoffice-help-ja

time sudo apt install -y apt-transport-https dirmngr
time sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/debian stable-raspbianstretch main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
time sudo apt install -y mono-devel

time sudo apt install -y monodevelop

4. アプリ入手

 上記ですでにほぼやっている。

  1. 汎用系
  2. 開発系

4-1. 汎用系

名前 概要
pluma テキストエディタ
gimp 画像エディタ
libreoffice 表計算などオフィス系
sudo apt install -y pluma
sudo apt install -y gimp
sudo apt install libreoffice
sudo apt install libreoffice-help-ja

4-2. 開発系

C

Python

Node.js

  • nodejs

5. 拡張機能

 各アプリの拡張機能インストール。

  1. Browser
  2. MonoDevelop

5-1. Browser

5-1-0. profile

 できればプロファイル丸ごとコピペが最善。(Chromium 65)。

  1. ブラウザを終了させておく(ファイルを上書きさせないため)
  2. 移行元と移行先でそれぞれの~/.config/chromium/に移動する
  3. 直下のLocal Stateファイルを移行先へ上書きする
  4. 直下のプロファイルディレクトリ(Default, Profile 1等)を移行先へ上書きする

 Googleアカウントでログインしようとしたら本人確認を求められた。友人の名前など「秘密の質問」と思われるものが提示された。全く記憶にないため入力できない。いじくりまわしているうちにメールアドレス送信してコード入力することになった。だがそれでも「本人と確認できませんでした」と怒られる。  原因不明。異なるデバイスからアクセスするとこうなる可能性がある? でも今まではこんなことなかった。丸ごとコピーするとこうなる?。超面倒くさい。

 パスワードの移行については以下。未調査。

5-1-1. profile

拡張機能 概要
ublock-origin 広告ブロック
stylus ユーザスタイルシート
authenticator 二段階認証アプリ

5-2. MonoDevelop

6. dotfiles

 各アプリの設定ファイル。

7. アカウント

 2019-02-28時点。パスワードだけでなく異なるデバイスでのログインが制限される。対処方法不明。時々刻々と変化するため対応を自動化することは不可能。

未来記事