自動apt-getアップグレードが途中で終了する


1

設定します root 自動的に実行するcron apt-get upgrade。とても簡単です。具体的な行は次のとおりです。

@daily (apt-get update && apt-get -y upgrade) 2>&1 > /var/log/tmp.log

しかし、私はログファイルの出力を追跡してきました、そしてそれはいつもそれがそれが通常するところで出力の部分で止まります(すなわちなしで) -y 頼む Do you want to continue [Y/n]?。私はそれが実行し続けなかったことを確認します apt-get upgrade まだ更新する必要があるパッケージを示しています。この時点で停止するのはなぜですか。そしてどうやってそれを継続させるのですか?

編集する

### apt-get update output ###  

Building dependency tree...
Reading state information...
The following packages have been kept back:
  linux-generic linux-headers-generic linux-image-generic
The following packages will be upgraded:
  file libgudev-1.0-0 libmagic1 libpam-systemd libsystemd-daemon0
  libsystemd-login0 libudev1 linux-libc-dev openssh-client openssh-server
   systemd-services udev
12 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
Need to get 0 B/3,412 kB of archives.
After this operation, 16.4 kB of additional disk space will be used.

編集2:問題を解決するためにコマンドを短くしました。私も読んで man apt-get。私は私を残して、通過する新しい潜在的な旗を見つけました:

@daily apt-get -y --force-yes upgrade 2>&1 > /var/log/tmp.log

残念ながら、私はまだ同じ結果が得られます:(

回答:


2

tldr;とらないで どれか 環境変数 cron (含む PATH

数日後、私はバカだと気付きました 2>&1 間違った場所に。ログファイル名の後にそれを入れた後、それは私に私の問題を引き起こしているエラーを与えました:

dpkg: warning: 'ldconfig' not found in PATH or not executable
dpkg: warning: 'start-stop-daemon' not found in PATH or not executable
dpkg: error: 2 expected programs not found in PATH or not executable
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin

この新しい情報で、私は 最後に 見つかった 同じ問題を持つ別の投稿 。それはそれが判明 cron 環境変数は非常に限られています。これは、古い攻撃によるものです。 cron それは上記の変数を利用します。これは PATH 変数がロードされない(上記のエラーで示されている)ので、いくつかのコマンド apt-get upgrade に依存して実行できませんでした。これを設定することで修正できます PATH 手動で cron

という事実について他のいくつかのエラーもあります debconf 制御端末が必要です。これによってコマンドの実行が妨げられることはありませんが、これらを設定することで抑制できます。 DEBIAN_FRONTEND 環境変数 cron

ここにそれはすべての栄光の中にあります:

PATH=/usr/bin:/bin:/usr/sbin:/sbin
DEBIAN_FRONTEND=noninteractive
@daily apt-get -y upgrade > /var/log/tmp.log 2>&1

0

どのパッケージが更新されていませんか?

したくないですか。 apt-get dist-upgrade?の linux-image-* 例えばパッケージは単にでは更新できませんでした apt-get upgrade 新しいパッケージがインストールされているからです。新しいパッケージはでのみインストールされます dist-upgrade


はい、確かです。後でコマンドを手動で実行した後にまだ更新されるのを待っているパッケージがあることを確認したとき、私はこれに対処しようとしました。にもかかわらず、ログ出力でも、linux- *パッケージは約10個の他のパッケージと一緒に抑制されているように見えます。 will be upgraded。の will be upgraded ものはアップグレードされていません。
ubomb

地獄のために、私はそれを dist-upgradeそしてそれは同じ振る舞いをします。
ubomb

あなたの質問を編集し、正確な出力を含めることは確かに役に立つでしょう。
Zoredache

それがどのような違いを生むのか実際にはわからない(もしそれが出力に変わったものであれば、私はおそらくそれに気付いたであろう)が、それを付け加えた。
ubomb
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.