トランザクションインストールプロセスは、Unix / LinuxのWindowsインストーラと似ています。

トランザクションインストールプロセスは、Unix / LinuxのWindowsインストーラと似ています。

Windowsインストーラに似たUnix / Linuxのトランザクションインストールプロセスはありますか?

Makefileやパッケージマネージャ(debなど)などのインストールスクリプトは、ファイルを直接コピーして既存のファイルを上書きすることがよくあります。

答え1

Windowsインストーラツールのプロパティについてはまったくわかりませんが、一度見てください。Nix パッケージマネージャ(そしてNixOS GNU/Linux ディストリビューションその周りに構築)。以前のコンテンツをまったく上書きしないため、アトミックアップデート機能があります。

別のアプローチは、ファイルシステムスナップショットサポートを使用することです。yumスナップショットのようにbtrfs(返品snapperOpenSUSEにはdpkg事前/事後作業もある可能性があるので、この作業も可能だと思います。

編集するファイルシステムスナップショットを使用する./configure && make && make installこともトランザクションです。

答え2

一般的なパッケージマネージャは、パッケージがインストールされていることを確認することに注意を払います。通常、古いバージョンが引き続きインストールされ、新しいファイルが解凍されますが、名前が異なる移行期間があります。移行中にシステムがクラッシュしても、ソフトウェアは動作し続ける可能性が高いです。インストールを完了するには、インストールの復元コマンドが必要です。一部の新しいファイルが所定の位置にあり、一部の古いファイルがまだ所定の場所にある期間がありますが、サイズは小さいです。

一方、インストールエラーがある場合は、エラーが発生した時点で新しいバージョンが利用できなくても、プログラムが新しいバージョンに移行した可能性があります。これはやや避けられないことです。おそらく、プログラムを起動し、既存のファイルを開いたが正しく解釈できないため、新しいバージョンが機能しないことがわかります。ほとんどのLinuxパッケージマネージャにはアップグレードを元に戻す簡単な方法はありません。通常、以前のバージョンのパッケージを手動でダウンロードして強制インストールする必要があります。

makefileまたは同等のファイルを使用してソースコードからコンパイルされたソフトウェアをインストールする場合は、ソフトウェアを独自のディレクトリにインストールする必要があります。各バージョンを独自のディレクトリにインストールし、古いバージョンを削除する前に新しいバージョンをテストします。プログラムはインストールディレクトリですぐに使用できるため、古いバージョンと新しいバージョンを切り替える必要はありません。新しいバージョンを実行するだけです。使用拾って入れるまたはXストーPATHなどで実行可能ファイルを持つことができるように、共通階層にシンボリックリンクを作成します。追跡プログラム

関連情報