#author("2019-06-29T14:54:37+09:00","","")
#navi(../)
* Raspbianの自動アップデート設定手順・unattended-upgrades [#hb6a9901]
Raspbian(stretch)では、パッケージなどのアップデートアプリケーションがメニューにありませんでした。~
本資料では、unattended-upgradesを使った自動アップデート設定手順を記しています。

&color(red){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){アンダーライン}の部分になります。
#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 自動更新可能なパッケージおよび保留中の自動削除が見つかりません

* その他 [#p652b43b]
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)


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS