0

テスト後に実稼働の Ubuntu サーバーにデプロイする必要がある、作成したさまざまなプログラムとスクリプトがあります。ソフトウェアを Debian (.deb) ファイルとしてパッケージ化し、apt-get や aptitude などを使用してソフトウェアをインストールすることを検討しています。

これは簡単ですが、望ましくないことが判明した新しいバージョンをどのようにロールバックまたはアンインストールするかは私には明確ではありません。明らかな選択の後に がapt-get remove new-pkg続きますがapt-get install old-pkg、それは正しいアプローチでしょうか?

postinst、prerm、または postrm で物事をスムーズに進めるために従うべき (または避けるべき) 特別なルールはありますか?

すべてのソフトウェアとサーバーはプライベートであり、それが役立つ場合は、すべてを完全に制御できることに注意してください.

4

2 に答える 2

1

Debian スキームでは、通常、自動ダウングレードは考慮されていません。推奨される方法は、修正されたビルドの新しいより高いバージョン番号です (「修正」が「すべての新機能が削除された」ことを意味する場合でも)。

どうしてもアップグレードをロールバックする必要がある場合は、Debian エポック番号を使用して、ロールバック バージョンから始まるバージョン番号の新しい開始を宣言することを検討してください。たとえば、パッケージのバージョン 1.2 が壊れていて、急いで 1.1 にダウングレードする必要があるとします。次に、debian パッケージ 1.1-5 を 1:1.1-6 に再バージョン変更します。これはプレーンよりも高いバージョン番号です。 1.2-1.

手動のダウングレードは確かに望ましくないように思えます。少なくとも 1 回のダウングレード中に、少なくとも 1 つの重要なサーバーを見逃すことは確実です。

postinst、prerm、postrm については、Debian New Maintainer Guide を検討してください。

于 2011-11-02T08:39:24.247 に答える
1

apt-get と aptitude の両方で、目的のインストール バージョンを指定できます。

apt-get install <your-package>=<your-version>
aptitude install <your-package>=<your-version>

いずれにせよ、展開プロセスでこれを利用することをお勧めします。そのため、サーバーに展開するバージョンを正確に指定する必要があります。

以前のバージョンにロールバックするには、単純に以前のバージョン番号を指定する必要があります。もちろん、新しいバージョンで問題を解決する方が理にかなっている場合は、ロールバックするよりもそうしてください。

于 2011-11-22T16:43:49.500 に答える