Raspberry Piを自動更新/アップグレードするように設定するにはどうすればよいですか?


34

現在、Raspberry Piの最新情報を取得するには、とを入力する必要がsudo apt-get updateありsudo apt-get upgradeます。これを自動的に行うように設定する方法はありますか?Raspbian Jessieを実行しています。

回答:


47

手動のcronの代わりに、をインストールできますunattended-upgrades。これは、最新のカーネルを確実にインストールするのに役立ちます。主にセキュリティのために設計されています。

https://wiki.debian.org/UnattendedUpgrades

apt-get install unattended-upgrades

調整/構成できるビットがいくつかありますが、デフォルトで問題ありません。


5
私にとって、デフォルトはうまくありませんでした。何もしませんでした。/var/log/unattended-upgrades/unattended-upgrades.logファイルが報告したAllowed origins are: []ので、基本的に更新は/etc/apt/apt.conf.d/50unattended-upgrades"origin=Raspbian,codename=${distro_codename},label=Raspbian";
取り込ま

私の骨ストック(2017年9月現在)が50unattended-upgradesリストさ"origin=Debian,codename=${distro_codename},label=Debian-Security";れ、関連するパッケージが正しく検出されているようです。もちろん、それらの多くは無視されます。ホワイトリストまたはブラックリストを設定していません。
ジョンV

3
デフォルト50unattended-upgradesは本当に愚かであり、これをRaspianで動作させるには変更する必要があります。ありませんRaspian-Security。セキュリティ更新プログラムにはラベルが付いていません。両方を追加することが重要である"origin=Raspbian,codename=${distro_codename},label=Raspbian";"origin=Raspberry Pi Foundation,codename=${distro_codename},label=Raspberry Pi Foundation";/etc/apt/apt.conf.d/50unattended-upgrades
user643011

23

ターミナルで、次を入力します。

sudo su

ルートレベルのプロンプトにアクセスします。次に、実行します:

crontab -e

crontab、特定の時間に自動的に実行するタスクのテーブルの編集を開始します。好みのテキストエディターで開きます。次の行を含むように変更します。

0 7 * * 1 apt update && apt upgrade -y

毎週月曜日の午前7時にアプリを自動的に更新およびアップグレードするには。お好みに合わせて調整する方法については、crontabを参照してください。


2
コマンド&&は関連しているので、おそらく同じ行にコマンドを配置する方がよいでしょう。「更新」が失敗した場合、「アップグレード」を行う理由はありません。
tedder42

crontabの中で0日曜日の手段が、あなたのコードの中で、あなたが入れている1コマンドは、月曜日に、ない日曜日実行されますので、
rav_krを

3
dist-upgrade優れているupgrade、あなただけ使って壊れた依存関係になってしまいますupgrade。また、ダイアログの確認を必要とする更新を回避することもできません。@ tedder42さんは、Debianが好む方法を(を使用してunattended-upgrades)指摘しました。
ryanpcmcquen

&&を追加した後、2番目のsudoを見逃しました。とにかくルートcrontabにありますが。
user643011

1
そこにあるべきではありませんsudo。をroot使用してアカウントに切り替えましたsu。スーパーユーザーのcrontabは、スーパーユーザー特権で実行されます。
goldilocks

8

cron-aptをインストールして構成できます。以下を実行してインストールします。

apt-get install cron-apt

メインの設定ファイルは/ etc / cron-apt / configです

構成に追加することの1つは次のとおりです。

MAILON="always"

これは、エラーが発生した場合だけでなく、実行するたびに電子メールを送信します。

デフォルトのセットアップではアップデートが自動的にインストールされないことに注意してください(これを行わない理由はいくつかあります)が、そうするように設定することができます。このプログラムが提供する単純なcronソリューションに対する利点の1つは、インストールするものを制御できることです(新しいパッケージのダウンロード、セキュリティ更新プログラムのインストール、またはすべての更新プログラムのインストールのみ)。

実行時間を設定するには、/ etc / cron.d / cron-aptファイルを編集します。

ここで詳細情報と設定オプションを見つけることができます

パッケージには非常に優れたドキュメントが含まれていますが、gzipで圧縮されています。ファイルを抽出するには:

  1. 動作するディレクトリを作成します-mkdir cron-apt_documentation
  2. 新しいディレクトリに変更します-cd cron-apt_documentation
  3. 圧縮ファイル-cp /usr/share/doc/cron-apt/README.gzをコピーします。(末尾のドットに注意してください)
  4. ファイルを解凍する-gunzip README.gz
  5. ファイルを読む-cat README | もっと少なく

またはzcat /usr/share/doc/cron-apt/README.gz | less

5

デフォルト設定でunattended-upgradesは、Raspbian Busterで壊れています。カーネルやその他のソフトウェアの重要なアップデートはインストールされません。オプションは次のとおりです。

推奨オプション:

sudo apt install unattended-upgrades

echo 'Unattended-Upgrade::Origins-Pattern {
//      Fix missing Rasbian sources.
        "origin=Debian,codename=${distro_codename},label=Debian";
        "origin=Debian,codename=${distro_codename},label=Debian-Security";
        "origin=Raspbian,codename=${distro_codename},label=Raspbian";
        "origin=Raspberry Pi Foundation,codename=${distro_codename},label=Raspberry Pi Foundation";
};' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-raspbian

より高速なセキュリティ更新(ただし、パッケージはrasbianに承認されていないため安定性は低下します)には、debian-securityパッケージをaptに追加できます。

echo 'deb http://deb.debian.org/debian-security/ buster/updates main contrib non-free' | sudo tee /etc/apt/sources.list.d/debian-security.list

おそらくdebianリポジトリ用の新しいaptキーインストールする必要があります

別のオプション:

  • cron-aptを使用して回避します。 sudo apt install cron-apt

  • それを回避する他の方法。

目的に最も適しているため、無人アップデートを使用してパッケージを修正することをお勧めします。Cron-aptは同様の目的のために設計されているため、2番目に最適なオプションです。カーネルの更新後にシステムが自動的に再起動できるかどうかはわかりません。通常、無人アップグレードにはそのオプションがありますが、上記の修正で動作するかどうかはわかりません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.