アップデートパッケージのロールバックをサポートするディストリビューションはありますか?

アップデートパッケージのロールバックをサポートするディストリビューションはありますか?

更新後に変更されたパッケージのロールバックをサポートするツールまたは完全なディストリビューションはありますか?

例:パッケージA、B、Cをアップグレードしました。数日間このパッケージを使用した後、Bで取引を中断するバグが見つかりました。

バグレポートを送信すると同時に、Bを以前のバージョンにダウングレードして、やりたいことをする必要があります。同時に、AはBに依存するため、ダウングレードも必要ですが、Cは両方に独立しているため、現在のバージョンを維持できます。

この機能をサポートするツールやディストリビューションはありますか?

ほとんどのディストリビューションにはパッケージをダウングレードする方法があることがわかりますが、以前のパッケージがリポジトリから削除されたため、これはしばしばやや概略的であっても不可能であり、場合によっては(Xサーバーやメサポストをアップグレードするなど) …汚れた。

答え1

ニックOSアップグレードのロールバックはサポートされていますが、私が理解しているように、あなたは望むほど進行しません。 A、B、Cを一度にアップグレードする場合は、AとBだけでなくタスク全体をロールバックできます。 A、B、CをロールバックしてからCをアップグレードできます...)しかし、トランザクションの観点からは意味があります。

Debian(とスナップショットアーカイブ既存のパッケージがない場合は、Bをダウングレードすることができます。または、同じツールaptaptitudeは、ほとんどの場合、Aもダウングレードする必要があることがわかります(単にBをアップグレードしたくないと確信している場合)。しかし、あなたが言ったように、これは少し混乱する傾向があり、パッケージのダウングレードはとにかくDebianではサポートされていません(つまり、ほとんどの場合動作しますが、うまくいかないとバグではありません)。

答え2

展開yumベースの展開(例:レッドハットEL中央オペレーティングシステムなど)次のことができます。

  1. 次のコマンドを使用して、システムの変更履歴を確認してください。sudo yum history list

    Loaded plugins: fastestmirror
    ID     | Login user               | Date and time    | Action(s)      | Altered
    ------------------------------------------------------------------------------
        10 | Administrator <admin>    | 2016-03-08 09:08 | Install        |   11   
         9 | Administrator <admin>    | 2016-03-03 16:48 | Install        |    1   
         8 | Administrator <admin>    | 2016-03-03 16:09 | Install        |    5   
         7 | Administrator <admin>    | 2016-02-26 18:13 | Install        |    1   
         6 | Administrator <admin>    | 2016-02-26 15:12 | Install        |   27   
         5 | Administrator <admin>    | 2016-02-26 15:07 | Install        |    1   
         4 | Administrator <admin>    | 2016-02-26 15:05 | Install        |    3  <
         3 | Administrator <admin>    | 2016-02-26 15:03 | Install        |    1 > 
         2 | Administrator <admin>    | 2016-02-26 15:01 | I, U           |   49   
         1 | System <unset>           | 2016-02-26 14:38 | Install        |  296   
    history list
    
  2. 詳細を確認するには、以下を使用してください。sudo yum history info 10

  3. 履歴の前のポイントにロールバックするには、次のようにします。sudo yum history rollback 9

警告する

いくつかの明確な注意があります。

  1. 以前のパッケージがもう利用できなくなったら、それはめちゃくちゃです(@vonbrand引用)。
  2. yum以外のアイテムをインストールすると、記録が壊れることがあります。

私の例では、<IDがある行4(最後の列)にあることは、その点を過ぎてロールバックできないことを意味します。

sudo yum history rollback 2
Loaded plugins: fastestmirror
Transaction history is incomplete, before 4.
 You can use 'history rollback force', to try anyway.
Error: Failed history rollback, incomplete

答え3

存在するSUSEを開く簡単に使えますBtrfsファイルシステムを使用したSnapper

使用する場合基準インストール中のファイルシステムの構成、デフォルトで有効

Snapperが有効になるとyast2完全に統合されますzypper。何かをインストールまたはアップグレードするたびに(またはユーザーを作成するときなど)、ファイルシステムのスナップショットが作成されます。

システムを以前の状態にロールバックするには、を実行しますyast2 snapper

ここに画像の説明を入力してください。

答え4

Fedoraでは(他のディストリビューションでも同様です)、以前のバージョンに戻るように要求できます。

dnf downgrade <packages>

パッケージの2番目のバージョンを提供したら、次のように特定のバージョンを要求できます。

dnf downgrade <package>.<version>

これは、パッケージがリポジトリでまだ利用可能な場合にのみ機能します。それにもかかわらず、この機能は聞いたことがありません。アップグレードの一部が構成変更の場合、ロールバックが正確な以前のバージョンである必要はないという障害があります。

関連情報