Raspbianの自動アップデート設定手順・unattended-upgrades †
Raspbian(stretch)では、パッケージなどのアップデートアプリケーションがメニューにありませんでした。
本資料では、unattended-upgradesを使った自動アップデート設定手順を記しています。
sudo apt update && sudo apt -y upgrade のcronで十分かも!?とも思いますが…
スポンサーリンク
参考記事 †
unattended-upgradesパッケージをインストールする †
ターミナル(LX Terminal)による操作となります。
- LX Terminalを起動します。
- unattended-upgradesをインストールする前にパッケージをすべてアップグレードします。
コマンドは以下の通りです。
- apt updateを実施
以下のコマンドを入力しEnterキーを押し実行してください。
sudo apt update
- apt upgradeを実施
以下のコマンドを入力しEnterキーを押し実行してください。
sudo apt -y upgrade
- unattended-upgradesパッケージを以下のコマンドでインストールします。
以下のコマンドを入力しEnterキーを押し実行してください。
sudo apt-get install unattended-upgrades
- unattended-upgradesの設定を行います。
以下のコマンドを入力しEnterキーを押し実行してください。
sudo dpkg-reconfigure -plow unattended-upgrades
- unattended-upgradesの設定画面が表示されます。
すべて<はい>で良いと思います。
決定キーはEnterキーで項目移動はカーソルになります。
- カーソルの下を押し<了解>にフォーカスを移動しEnterキーを押します。
unattended-upgrades設定ファイルの修正 †
上記の操作でunattended-upgradesパッケージのインストールが完了しました。
以下の手順で設定ファイルを修正します。
設定ファイルは以下の場所にあります。(パッケージインストール中に表示されていますね。)
/etc/apt/apt.conf.d/50unattended-upgrades
- 設定ファイルを修正する前にバックアップを取っておきましょう。
以下のコマンドを入力しEnterキーを押し実行してください。
cp /etc/apt/apt.conf.d/50unattended-upgrades /tmp/50unattended-upgrades.org
- テキストエディタで設定ファイルを開きます。
LeafPad, vim(vi), nanoで開く場合のコマンドを以下に記します。
- LeafPad
sudo leafpad /etc/apt/apt.conf.d/50unattended-upgrades
- vim
sudo vi /etc/apt/apt.conf.d/50unattended-upgrades
- nano
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
- unattended-upgradeコマンドの実行
以下のコマンドを入力しEnterキーを押し実行してください。
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コマンドで確認してみます。
上記で設定ファイルを修正しないと、パッケージ導入元が Debian と表示されます。
導入元がRaspbianであれば問題ありません。
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はどこで設定されているの?と思われた方へ。
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による自動アップデート設定手順でした。
スポンサーリンク