ここで、Google Chromeのサイレント自動更新を有効にする方法を読みました。ただし、Spotify、Dockyなど、サイレントアップデートを有効にする他のリポジトリがあります。
Ubuntu 10.04システムでこれを実行しようとしています。しかし、この質問はすべてのUbuntuバージョンに当てはまります。私が持っている無人アップグレードパッケージがインストールされています。
これどうやってするの?
ここで、Google Chromeのサイレント自動更新を有効にする方法を読みました。ただし、Spotify、Dockyなど、サイレントアップデートを有効にする他のリポジトリがあります。
Ubuntu 10.04システムでこれを実行しようとしています。しかし、この質問はすべてのUbuntuバージョンに当てはまります。私が持っている無人アップグレードパッケージがインストールされています。
これどうやってするの?
回答:
まず、インストールgksu
:
sudo apt-get install gksu
お使いのシステムの無人アップデートを有効にする最も簡単には、ファイルを編集することで50unattended-upgrades
内部を/etc/apt/apt.conf.d/
例えば、あなたの好みのテキストエディタで:
gksu gedit /etc/apt/apt.conf.d/50unattended-upgrades
その中で、Allowed Originsブロックのコメントセクションをコメントアウトする必要があります
変化する
Unattended-Upgrade::Allowed-Origins {
"${distro_id} ${distro_codename}-security";
// "${distro_id} ${distro_codename}-updates";
// "${distro_id} ${distro_codename}-proposed";
// "${distro_id} ${distro_codename}-backports";
};
に
Unattended-Upgrade::Allowed-Origins {
"${distro_id} ${distro_codename}-security";
"${distro_id} ${distro_codename}-updates";
// "${distro_id} ${distro_codename}-proposed";
// "${distro_id} ${distro_codename}-backports";
};
更新したいUbuntuリポジトリにないソフトウェアの場合、ファイルにオリジンとアーカイブを追加する必要があります。それらがPPAに何であるかを見つけるには、フォルダーを開きます/var/lib/apt/lists/
。これは、各パッケージリソースの状態情報のストレージ領域です。探しているのは、名前がReleaseで終わるファイルです。
テキストエディタで開きます。つまり、Google Chromeの場合:
gedit /var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_Release
Origin: Google, Inc.
Label: Google
Suite: stable
Codename: stable
Version: 1.0
Date: Thu, 17 Nov 2011 19:09:01 +0000
Architectures: i386 amd64
Components: main
Description: Google chrome-linux repository.
起源は明らかであり(Origin: Google, Inc.
)、アーカイブはSuiteの下にあるもの(Suite: stable
)になります。
Origin
またはのいずれかSuite
が欠落している場合、空の文字列になります。ただし、両方が不足している場合は、おそらく同じソースの他のソースを含めずに、そのソースを無人アップグレードで使用することはできないことに注意してください。
これらの2行を書き留めたら、この例のために、この50unattended-upgrades
形式"<origin>:<archive>";
を使用してファイルを編集し、行を追加する必要があります"Google\, Inc.:stable";
。
Google Chromeの起源はややややこしいですが、そこにはエンドポイントとカンマがありますが、ほとんどのリリースファイルは読みやすいでしょう。
別の例として、Node JSソースNode Source
は、アーカイブではなくオリジン()を指定します。ので、それを一致させることができます"Node Source:";
。
許可されたOriginsは、シェルスタイルのワイルドカード(より具体的には、Pythonのfnmatch())を使用して照合されます。競合するソースを含めないように十分に注意している場合、のようなものを書くことができ"Node *:*";
ます。
50unattended-upgrades
編集する前にファイルのバックアップを作成することを忘れないでくださいsudo cp /etc/apt/apt.conf.d/50unattended-upgrades /etc/apt/apt.conf.d/50unattended-upgrades.bak
。
ファイルで行われた変更をテストするにsudo unattended-upgrades
は、パラメータ--dry-run
とで使用できます--debug
。
--dry-run
アップグレードを実際にインストールせず、すべてが正常であることを確認して検証する以外は、無人アップグレードサイクルを実行します。
--debug
詳細モードを有効にします。
あなたはいつものログを確認することができますunattended-upgrades
で/var/log/unattended-upgrades/unattended-upgrades.log
。
ファイルを編集することにより、無人アップグレードの構成を変更できます。構成の/etc/apt/apt.conf.d/10periodic
オプションは/etc/cron.daily/apt
スクリプトヘッダーにあります。それらを読んで、無人アップグレードの頻度を設定してください。
--dry-run
です、更新されたリストに利用可能な更新があるかどうかをチェックし、それらを出力します。あなたの設定が何であれリストが更新され/etc/cron.daily/apt
、手動で実行してもリストは更新されません
@Bruno Pereiraの回答の自動化されたアプローチ:( 回答が役立つと思う場合は、githubリポジトリにスターを付けることを検討してください。)
コードリンク:https : //github.com/abhigenie92/unattended_upgrades_repos
追加するリポジトリを確認します。
$ python automatic_upgrade.py
Add repos:
"Ubuntu:xenial";
"LP-PPA-kubuntu-ppa-backports:xenial";
"LP-PPA-tuxonice:xenial";
"LP-PPA-webupd8team-sublime-text-3:xenial";
Skipping files due to not present origin or suite. Or origin being a url.:
packagecloud.io_slacktechnologies_slack_debian_dists_jessie_InRelease
tiliado.eu_nuvolaplayer_repository_deb_dists_xenial_InRelease
次に、編集/etc/apt/apt.conf.d/50unattended-upgrades
してそれらを含めます。
// Automatically upgrade packages from these (origin:archive) pairs
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
"${distro_id}:${distro_codename}-updates";
"${distro_id}:${distro_codename}-proposed";
"${distro_id}:${distro_codename}-backports";
"Ubuntu:xenial";
"LP-PPA-kubuntu-ppa-backports:xenial";
"LP-PPA-tuxonice:xenial";
"LP-PPA-webupd8team-sublime-text-3:xenial";
};
....
....
それらが含まれているかどうかを確認します。
$ sudo unattended-upgrade --dry-run --debug
Initial blacklisted packages:
Initial whitelisted packages:
Starting unattended upgrades script
Allowed origins are: ['o=Ubuntu,a=xenial-security', 'o=Ubuntu,a=xenial-updates', 'o=Ubuntu,a=xenial-proposed', 'o=Ubuntu,a=xenial-backports', 'o=Ubuntu,a=xenial', 'o=LP-PPA-kubuntu-ppa-backports,a=xenial', 'o=LP-PPA-tuxonice,a=xenial', 'o=LP-PPA-webupd8team-sublime-text-3,a=xenial']
pkgs that look like they should be upgraded:
Fetched 0 B in 0s (0 B/s)
fetch.run() result: 0
blacklist: []
whitelist: []
No packages found that can be upgraded unattended and no pending auto-removals
"Raspberry:stable";
しても機能しませんでした。代わりに、たとえば"o=Raspberry, a=stable";
編集/etc/apt/apt.conf.d/50unattended-upgrades
、次を追加します。
Unattended-Upgrade::Origins-Pattern {
"origin=*";
};
これにより、すべてのパッケージの無人アップグレードが可能になります。
origin:''
、例えばからのdatadog-agent を持つパッケージがありますsite:'apt.datadoghq.com'
。その場合、"origin=";
オリジンが空のパッケージをスキップしないように追加する必要もあります。しかし、その後はの"site=*";
代わりに使用する方が良いでしょう"origin=*";
。
/etc/apt/sources.list.d/my_repo.list
が、パッケージはアップグレードされません。手動で動作しsudo apt update
ます。どのような手がかりですか?
次のリンクには、再実行を強制してcronに自動更新を開始させる指示があります。cronを停止する手順はこちら
sudo service anacron stop
sudo service cron stop
sudo rm -rf /var/run/unattend* /var/run/cron* /var/run/anacron*
sudo rm -rf /var/lib/apt/periodic/*
cronを再起動して自動更新をすぐに(または少なくとも数時間以内に)実行するには
sudo service cron start
sudo anacron -fn
使い方
いくつかのことがトリガーになります。
/etc/cron.daily
cronによる実行、特にから起動され/etc/cron.daily/apt
ます。Cronは/etc/cron.daily
午前6時25分に実行されます(を参照/etc/crontab
)
Anacronは新興企業から実行されますか?そして/etc/cron.daily
、アップタイムの5分後に起動します(を参照/etc/anacrontab
)
注APT::Periodic::RandomSleep
はで設定できます
/etc/apt/apt.conf.d/10periodic
が、デフォルトは1800秒(30分)であるため、/etc/cron.daily/apt
実行後30分まで更新は行われません。
ログ
動作する場合は、このフォルダーにログが記録されるはずです/var/log/unattended-upgrades
。
/etc/cron.daily/apt
デフォルトのUbuntu 12.04インストールから- 。そう自動APTの更新は行われませんでした:-( ServerFaultの回答serverfault.com/a/568329/ 95570は、そのファイルを再作成するための詳細を提供しました