#author("2019-06-29T14:55:33+09:00","","") #author("2019-06-29T14:56:39+09:00","","") #navi(../) * Raspbianの自動アップデート設定手順・unattended-upgrades [#hb6a9901] Raspbian(stretch)では、パッケージなどのアップデートアプリケーションがメニューにありませんでした。~ 本資料では、unattended-upgradesを使った自動アップデート設定手順を記しています。 sudo apt update && sudo apt -y upgrade のcronで十分かも!?とも思いますが… #htmlinsert(minipc-top.html) #contents * 参考記事 [#uac06278] -[[RaspberryPiでupdate/upgradeを自動化する。>https://qiita.com/Fendo181/items/659f306232f55fc5a8de]] -[[How do I set my Raspberry Pi to automatically update upgrade?>https://raspberrypi.stackexchange.com/questions/38931/how-do-i-set-my-raspberry-pi-to-automatically-update-upgrade]] * unattended-upgradesパッケージをインストールする [#yb457344] ターミナル(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キーで項目移動はカーソルになります。 #ref(01.png) #br + カーソルの下を押し''<了解>''にフォーカスを移動しEnterキーを押します。 #ref(02.png) #br * unattended-upgrades設定ファイルの修正 [#nc077621] 上記の操作で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"; 追記した場所は以下のキャプチャの&color(red){アンダーライン}の部分になります。 追記した場所は以下のキャプチャの&color(red){アンダーライン};の部分になります。 #ref(03.png) #br +修正が完了したら保存しテキストエディタを閉じます。 * 動作確認を行う [#mdd928a1] 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はどこで設定されているの? [#d70b27f0] 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による自動アップデート設定手順でした。 #htmlinsert(minipc-btm.html)