Raspbian(stretch)では、パッケージなどのアップデートアプリケーションがメニューにありませんでした。
本資料では、unattended-upgradesを使った自動アップデート設定手順を記しています。
sudo apt update && sudo apt -y upgrade のcronで十分かも!?とも思いますが…
ターミナル(LX Terminal)による操作となります。
sudo apt update
sudo apt -y upgrade
sudo apt-get install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
上記の操作でunattended-upgradesパッケージのインストールが完了しました。
以下の手順で設定ファイルを修正します。
設定ファイルは以下の場所にあります。(パッケージインストール中に表示されていますね。)
/etc/apt/apt.conf.d/50unattended-upgrades
cp /etc/apt/apt.conf.d/50unattended-upgrades /tmp/50unattended-upgrades.org
sudo leafpad /etc/apt/apt.conf.d/50unattended-upgrades
sudo vi /etc/apt/apt.conf.d/50unattended-upgrades
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
"o=${distro_id},n=${distro_codename}";また以下の内容の先頭に // を追記し以下の行を無効にします。
origin=Debian,codename=${distro_codename},label=Debian-Security";追記した場所は以下のキャプチャのアンダーラインの部分になります。
unattended-upgradesの動作確認を行います。
動作ログは以下のパスに出力されます。
/var/log/unattended-upgrades
sudo unattended-upgradeプロンプト($)が戻ってくるまで待ってください。
$ ls -ltr /var/log/unattended-upgrades/ 合計 4 -rw-r--r-- 1 root root 530 6月 29 14:38 unattended-upgrades.log
cat /var/log/unattended-upgrades/unattended-upgrades.log 2019-06-29 14:41:48,252 INFO 初期状態でブラックリストにあるパッケージ: 2019-06-29 14:41:48,254 INFO 初期状態でホワイトリストにあるパッケージ: 2019-06-29 14:41:48,255 INFO 自動アップグレードスクリプトを開始します 2019-06-29 14:41:48,256 INFO 許可されているパッケージ導入元: ['o=Raspbian,n=stretch'] 2019-06-29 14:42:06,454 INFO 自動更新可能なパッケージおよび保留中の自動削除が見つかりません
distro_id, distro_codenameはどこで設定されているの?と思われた方へ。
distro_id, distro_codenameは上記で手動実行したunattended-upgradeを見るとわかります。
unattended-upgradeはPythonスクリプトです。
$ file $(which unattended-upgrade) /usr/bin/unattended-upgrade: Python script, ASCII text executable
本Pythonスクリプト内をみると、以下の記述があります。
DISTRO_CODENAME = subprocess.check_output( ["lsb_release", "-c", "-s"], universal_newlines=True).strip() DISTRO_ID = subprocess.check_output( ["lsb_release", "-i", "-s"], universal_newlines=True).strip()
これを見ると、lsb_releaseコマンドで取得していることがわかります。
$ lsb_release -c -s stretch $ lsb_release -i -s Raspbian
unattended-upgradesには、他にも設定項目がありますので、調べてみてください。
以上、unattended-upgradeによる自動アップデート設定手順でした。