このエントリーをはてなブックマークに追加


Raspbianの自動アップデート設定手順・unattended-upgrades

Raspbian(stretch)では、パッケージなどのアップデートアプリケーションがメニューにありませんでした。
本資料では、unattended-upgradesを使った自動アップデート設定手順を記しています。

sudo apt update && sudo apt -y upgrade のcronで十分かも!?とも思いますが…


スポンサーリンク

参考記事

unattended-upgradesパッケージをインストールする

ターミナル(LX Terminal)による操作となります。

  1. LX Terminalを起動します。
  2. unattended-upgradesをインストールする前にパッケージをすべてアップグレードします。
    コマンドは以下の通りです。
  3. apt updateを実施
    以下のコマンドを入力しEnterキーを押し実行してください。
    sudo apt update
  4. apt upgradeを実施
    以下のコマンドを入力しEnterキーを押し実行してください。
    sudo apt -y upgrade
  5. unattended-upgradesパッケージを以下のコマンドでインストールします。
    以下のコマンドを入力しEnterキーを押し実行してください。
    sudo apt-get install unattended-upgrades
  6. unattended-upgradesの設定を行います。
    以下のコマンドを入力しEnterキーを押し実行してください。
    sudo dpkg-reconfigure -plow unattended-upgrades
  7. unattended-upgradesの設定画面が表示されます。
    すべて<はい>で良いと思います。
    決定キーはEnterキーで項目移動はカーソルになります。
    01.png
     
  8. カーソルの下を押し<了解>にフォーカスを移動しEnterキーを押します。
    02.png
     

unattended-upgrades設定ファイルの修正

上記の操作でunattended-upgradesパッケージのインストールが完了しました。
以下の手順で設定ファイルを修正します。
設定ファイルは以下の場所にあります。(パッケージインストール中に表示されていますね。)
/etc/apt/apt.conf.d/50unattended-upgrades

  1. 設定ファイルを修正する前にバックアップを取っておきましょう。
    以下のコマンドを入力しEnterキーを押し実行してください。
    cp /etc/apt/apt.conf.d/50unattended-upgrades /tmp/50unattended-upgrades.org
  2. テキストエディタで設定ファイルを開きます。
    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
  3. 設定ファイルに以下の記述を追記します。
    "o=${distro_id},n=${distro_codename}";
    また以下の内容の先頭に // を追記し以下の行を無効にします。
    origin=Debian,codename=${distro_codename},label=Debian-Security";
    追記した場所は以下のキャプチャのアンダーラインの部分になります。
    03.png
     
  4. 修正が完了したら保存しテキストエディタを閉じます。

動作確認を行う

unattended-upgradesの動作確認を行います。
動作ログは以下のパスに出力されます。

/var/log/unattended-upgrades
  1. 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
  2. 出力された内容を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による自動アップデート設定手順でした。


スポンサーリンク

添付ファイル: file02.png 299件 [詳細] file03.png 308件 [詳細] file01.png 272件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-06-29 (土) 14:56:39