私がしたRaspberryPiの設定は, 「RaspberryPiの設定 まとめリスト」にまとめてあります.
- 今回の設定のメリット
- パッケージの最新版を利用できる.
- セキュリティ的にアップデートは随時しておいたほうが良い.
- というか必須な感じ.
- 今回の設定のデメリット
- 不具合発生しそうとか? でもやったほうが良いよね.
sshしていることを前提にします.
aptのアップデート
aptのアップデートをします. ちまたではapt-getが多いですが, apt-getの上位互換がaptなので, aptを使うほうがよろしいらしい.
ソースはこちら「Is ‘apt-get’ deprecated? [duplicate]」
まぁ, aptもapt-getもパッケージツールなので, 必要なものがaptに無ければapt-getを使うというぐらいで良いのかも.
ではssh先でaptのアップデート.
$ sudo apt update
$ sudo apt upgrade
aptのみで良いですが, apt-getもやりたい方はこちららしいです.
$ sudo apt-get update
$ sudo apt-get upgrade
$ apt-get dist-upgrade
ファームウェアのアップデート
ssh先で次のコマンドを打ちます.
$ sudo rpi-update
その後, 再起動すれば終わりです.
$ sudo reboot
自動アップデート
いちいち手動でアップデートをするのもめんどくさく, 忘れることも多いと思うので自動アップデートも設定します. 次のコマンドを打ちましょう.
$ # 設定ファイルの作成, aptの自動アップデート設定
$ sudo sh -c 'echo "59 23 * * * /usr/bin/apt update ; /usr/bin/apt -y upgrade ; /usr/bin/apt -y autoremove ; /usr/bin/apt clean" > /root/crontab_root_file'
$ # ファームウェアのアップデート自動化
$ sudo sh -c 'echo "59 23 * * * /usr/bin/rpi-update" >> /root/crontab_root_file'
$ # 自動アップデートの登録
$ sudo crontab -u root /root/crontab_root_file
ちょっとややこしいと思いますが, コマンドを追加している部分は
「echo “59 23 * * * /usr/bin/apt update ; /usr/bin/apt -y upgrade ; /usr/bin/apt -y autoremove ; /usr/bin/apt clean”」
などです.
数字の部分「59 23 * * *」は順に「分 時 日 月 曜日」となります.
毎日23時59分に
「apt update ; apt -y upgrade ; apt -y autoremove ; apt autoclean"」
というコマンドを実行します. 自動アップデートや, アップデートした後に不要なものの削除などの設定です. ファームウェアのアップデートも同じです.
実際に登録されたかは, 次のコマンドを打てば良いです.
$ # 登録されたリストを表示
$ sudo crontab -u root -l
59 23 * * * /usr/bin/apt update ; /usr/bin/apt -y upgrade ; /usr/bin/apt -y autoremove ; /usr/bin/apt clean
59 23 * * * /usr/bin/rpi-update
「/usr/bin/apt update ; /usr/bin/apt -y upgrade ; /usr/bin/apt -y autoremove ; /usr/bin/apt clean」などが登録されているのがわかります.
おまけ
ワンライナーみたいにするなら,
$ (sudo crontab -u root -l ; echo "59 23 * * * /usr/bin/apt update ; /usr/bin/apt -y upgrade ; /usr/bin/apt -y autoremove ; /usr/bin/apt clean" | sort | uniq) | sudo crontab -u root -
$ (sudo crontab -u root -l ; echo "59 23 * * * /usr/bin/rpi-update" | sort | uniq) | sudo crontab -u root -
こんな感じ.
自動再起動
こういうアップデートは再起動しないと設定が反映されない場合もあるので, 時々再起動しなければいけない場合があります.
自分はそれがめんどくさいので, 定期的に再起動してくれるようにこれも設定しました.
$ # 設定ファイルに追記
$ sudo sh -c 'echo "0 4 * * 1 /sbin/reboot" >> /root/crontab_root_file'
$ # 自動アップデートの登録
$ sudo crontab -u root /root/crontab_root_file
これは任意でやって下さい.
参考文献
- Is ‘apt-get’ deprecated? [duplicate]
- UnattendedUpgrades
- Debian/ubuntu のapt自動アップデートのUnattendedUpgradesを設定する
- Ubuntu 16.04: 自動アップデート / アップグレードの設定をする
- Debian 系で unattended-upgrades を有効にする場合の追加設定 (メール通知, autoremove, autoclean, 再起動)
- How to create a cron job using Bash automatically without the interactive editor?
- cron の設定ガイド
- ファームウェア