web-dev-qa-db-ja.com

安全な自動更新のためのどの適切なオプション

私の 前の質問 に関連して、パッケージをアップグレードするときにどのaptオプションを使用する必要がありますか?

  • アップグレードの結果として他のパッケージが削除される場合、aptは何も触れずに停止します
  • アップグレードの結果として新しいパッケージがインストールされ、それらが競合や削除を引き起こさない場合、aptはそれらをインストールします
  • 他のパッケージがアップグレードされる場合、私は停止する傾向があります

助けてくれてありがとう

3
bronto

特にman apt.confman apt-getのマニュアルページで調査を行ったところ、次のことがわかりました。何か忘れたと思ったらコメントしてください。

  • オプション--only-upgradeを使用するか、apt構成アイテムAPT::Get::Only-Upgradeをtrueに設定します
  • apt構成アイテムAPT::Get::force-yesをfalseに設定
  • オプション--no-removeを使用するか、apt構成アイテムAPT::Get::Removeをfalseに設定します

--trivial-only/APT::Get::Trivial-Onlyがここで役立つかどうかわからないため、さらに調査する必要があります。

aptitudeを使用すると、関連する部分は次のようになります。

  • safe-upgradeコマンドを--no-new-installsオプションとともに使用する
  • Aptitude::Delete-Unusedをfalseに設定して、未使用のパッケージが自動的に削除されないようにします(未使用のものについては、適性に同意できない場合があります...)
  • -R/--without-recommendsを追加すると役立つ場合があり、さらに調査が必要です

更新古いシステムでいくつかのテストを行いました:

# grep ^Ubuntu /etc/motd
Ubuntu 10.04.4 LTS

apt-getはより慎重に見え、結果は通常のapt-get upgradeapt-get -o APT::Get::Only-Upgrade=true --no-remove -o APT::Get::force-yes=false upgradeの間で違いはありません。

aptitudeはより積極的であり、「安全なオプション」がその役割を果たしているようです。標準アップグレード(実際にはsafe-upgradeを実行します)

# aptitude -s -y upgrade
W: The "upgrade" command is deprecated; use "safe-upgrade" instead.
Lettura elenco dei pacchetti... Fatto
Generazione albero delle dipendenze   
Lettura informazioni sullo stato... Fatto
Reading extended state information   
Initializing package states... Fatto
Resolving dependencies...
The following NEW packages will be installed:
  linux-image-2.6.32-55-generic-pae{a}
The following packages will be upgraded:
  linux-generic-pae linux-image-generic-pae linux-image-server linux-libc-dev linux-server
5 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/32.8MB of archives. After unpacking 98.2MB will be used.
Would download/install/remove packages.

「安全な」オプションが追加されました。

# aptitude -s -y --no-new-installs -R -o Aptitude::Delete-Unused=false safe-upgrade 
Lettura elenco dei pacchetti... Fatto
Generazione albero delle dipendenze   
Lettura informazioni sullo stato... Fatto
Reading extended state information   
Initializing package states... Fatto
Resolving dependencies...
The following packages have been kept back:
  linux-generic-pae linux-image-generic-pae
The following packages will be upgraded:
  linux-image-server linux-libc-dev linux-server
3 packages upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
Need to get 0B/878kB of archives. After unpacking 0B will be used.
Would download/install/remove packages.

私が欲しかったものにはるかに似ています。

残念ながら、どちらのセットも、install/safe-upgradeの代わりにupgradeコマンドを使用した場合、新しいパッケージのインストールや他のパッケージのアップグレードを妨げるものではないようです。正方形に戻る:apt-get/aptitudeが、潜在的に、妄想的に危険な操作を実行するときに停止させることができません。ある意味、セーフティネットの方がいいのですが、転倒を防ぐことはできません。

4
bronto