この回答 は、Windowsにアプリケーションをインストールするための.msi
およびsetup.exe
ファイルについて説明しています。
DebianまたはUbuntuの.msi
およびsetup.exe
ファイルに相当するものはありますか? .deb
パッケージファイルは.msi
またはsetup.exe
などに対応していますか?
おそらくsetup.exe
よりMSIインストーラーに近い.deb
パッケージには、ファイルシステムにコピーするファイルのツリーと、実行するインストール前およびインストール後のフックのコレクションが含まれています物)。フックは、私がWindowsで見たことがないと思うものを含めて、システム上で何でも効果的に実行できます。つまり、システムサービスのユーザーを追加します。彼らができないことの1つは、別の.deb
パッケージをインストールすることです。データベースはインストール中にロックされるため、これは依存関係によってのみ達成できます。次に、.deb
パッケージをインストールすると、インストールされたパッケージの中央データベースにエントリが作成され、メンテナンスが容易になります。
ttf-mscorefonts
パッケージは、パッケージ自体にフォントをダウンロードしてインストールするスクリプトのみが含まれているという点で興味深いものです。このスクリプトは、これらのフックの1つで実行されます。
setup.exe
に近い場合は、プロジェクトのホームページからプログラムのソースコードをダウンロードしてから、./configure && make && Sudo make install
、または作成者が使用することを決定した他の方法を実行している可能性があります。この方法では、インストールされたプログラムのデータベースにパッケージが追加されないため、後で削除することははるかに困難です。
もう1つの違いは、.deb
が依存関係を指定するため、適切なインストールが保証されることです。私の知る限り、Windowsの世界では、MSIは別のMSIのインストールを引き起こすことができないため、setup.exe
は通常、この種の依存関係の追跡に使用されます。 MSIは依存関係に名前を付けることができるというコメントがいくつかありますが、.deb
パッケージのようにMSIの中央データベースがないため、依存関係がないとインストールに失敗します。
したがって、.deb
はMSIインストーラとsetup.exe
の中間にあります。パッケージは、インストール前およびインストール後のフック中に必要なことをすべて実行でき、名前を付けて通常は独自の依存関係を見つけ、インストールの記録を中央の場所に残してメンテナンスを容易にします。
Linuxで見た単一ファイルのバイナリインストーラーは、次のように、バイナリBLOBと連結されたシェルスクリプトを含む.sh
ファイルでした。
#!/bin/bash
tmpdir=$(mktemp -d /tmp/installer.XXX)
tail -n +6 "$0" | tar -xJf - -C "$tmpdir" || exit 1
Sudo "$tmpdir/setup.sh"
rm -rf "$tmpdir"
exit
[binary content follows]
これは基本的にsetup.exe
と同等で、一時フォルダーに自己解凍し、そこから実際のインストーラーを実行します。
取得元: https://askubuntu.com/questions/13415/what-are-run-files/13416#13416
.runファイルは通常、プログラムをインストールするために実行する必要があるカスタムメイドのプログラムです。これらはファイルの場所を追跡せず、通常はアンインストール方法を提供しないため、一般的にサポートされていません。安全でないと見なされるため、スクリプトがシステムに対して何を行うかを確認する方法はありません。
彼らはwindowsのexeファイルに近いので、同じ問題が付属しています。