Debian・UbuntuとRHEL系でだいぶ挙動が異なるのでまとめてみました。
目次
Debian, Ubuntu ...
Debian, Ubuntu の更新処理にも種類があります。
update
パッケージの更新はされない
- パッケージのリストを更新する
登録リポジトリからパッケージ一覧を取得する。
これは、後述の upgradeコマンド実行時に参照されます(更新が必要なパッケージの確認に利用)。
$ sudo apt update
ヒット:1 http://ports.ubuntu.com xenial InRelease
ヒット:2 http://apt.armbian.com xenial InRelease
ヒット:3 http://ports.ubuntu.com xenial-security InRelease
ヒット:4 http://ports.ubuntu.com xenial-updates InRelease
ヒット:5 http://ports.ubuntu.com xenial-backports InRelease
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードできるパッケージが 21 個あります。表示するには 'apt list --upgradable' を実行してください。
upgrade
パッケージ構成を変えない範囲で更新
- 削除を伴わないパッケージのアップグレードを行う
- カーネルのアップグレードは行われない
dist-upgrade
更新
- 更新可能なパッケージを全てアップグレードする
必要なパッケージや不要パッケージは自動で削除。 - カーネルのバージョンアップが行われる
Phased-Updates
フェーズドアップデートとは、(更新対象となっているパッケージを)全ユーザに一斉配布するのではなく、限定的に配布し徐々に広めていくことで不具合が含まれていたとしても影響を限定的なものにしようとする試みから生まれたものです。
base on PhasedUpdates - Ubuntu Wiki
Packages affected: update-manager
Push out stable release updates to expanding subsets of the userbase so that serious regressions can be detected before updates are pushed to everyone, and the process stopped. The aim is for regressions to affect a smaller proportion of our userbase.
Current status
Update Manager is currently the only package manager that supports phased updates. Any other update mechanism installs all updates regardless of the Phased-Update-Percentage.Rationale
Giving an entirely new version of any widely used software program to our entire user base all at once is unnecessarily fraught with peril.User stories
As an Ubuntu User
I want to encounter regressions in stable release updates less frequently
so that I can get my work done
影響を受けるパッケージ :update-manager安定版リリースのアップデートを全ユーザの一部(サブセット)にプッシュすることで、アップデートが全員にプッシュされる前にとても深刻な回帰(DG)を検出し、当該プロセスを停止させることができます。
目標は、回帰が全ユーザのより小さい割合に影響が留まることです。現在のステータス
Update Managerは現在、段階的な更新をサポートする唯一のパッケージマネージャです。 他の更新メカニズムは、段階的更新率に関係なく、 すべての更新をインストールします。現在のステータス
Update Managerは現在、段階的な更新をサポートする唯一のパッケージマネージャです。 他の更新メカニズムは、段階的更新率に関係なく、 すべての更新をインストールします。根拠
広く使用されているソフトウェアプログラムの全く新しいバージョンを、私たちの全ユーザ一度に与えることは、不必要に危険です。ユーザーのストーリー
Ubuntuユーザーとして
私は、安定リリースの更新での回帰(DG)がそれほど頻繁に起こらないようにしたい
私は自分の仕事を終わらせることができるように
※文中の「update-manager」は、GUI(LXDEデスクトップ環境)の「ソフトウェアの更新」を指します
RHEL ...
update
パッケージ更新
構文
yum update {package_name}
指定パッケージを最新バージョンに更新する。
パッケージ未使用時は、インストール済み全てのパッケージの更新が行われる。
upgrade
システム全体の更新
"yum upgrade"は"yum update --obsoletes"相当のコマンドで、システム全体の更新と同時に"obsolete(廃止)"します。
設定(/etc/yum.conf)で"obsoletes=1"が設定されている場合は、以下のコマンドは同義です。
- yum upgrade
- yum update --obsoletes
base on 3.3. yum を使用してコマンドラインからパッケージを更新する - Red Hat Customer Portal
Yum には upgrade コマンドもあります。これは、obsoletes 設定オプションを有効にした update と同様のものです。
デフォルトでは、obsoletes は /etc/yum.conf で on になっており、これによりこの 2 つのコマンドが同等のものになっています。
/etc/yum.conf 設定ファイル例([main] オプションの設定)
[main]
obsoletes=1