web-dev-qa-db-ja.com

debパッケージのインストールにdpkgが必要ない可能性はどのようにありますか?

以下の情報は誤解を招くようです。 dpkg(.debファイルを処理できるプログラム)を紛失した場合、他のコマンドar、tar、gzipコマンドを使用してdpkg自体の.debファイルをダウンロードできるという例と混同していますか?

これが本当なら、他のコマンドでは利用できないdpkgの何が特別なのですか?

Debianシステム管理者は、.debパッケージを定期的に処理します。これは、一貫した機能ユニット(アプリケーション、ドキュメントなど)が含まれているため、インストールとメンテナンスが容易になるためです。したがって、それらが何であるか、およびそれらをどのように使用するかを知ることは良い考えです。この章では、「バイナリ」パッケージと「ソース」パッケージの構造と内容について説明します。前者は.debファイルであり、dpkgで直接使用できますが、後者にはソースコードとバイナリパッケージの作成手順が含まれています。

差出人: http://debian-handbook.info/browse/wheezy/packaging-system.html

5.1。バイナリパッケージの構造Debianパッケージ形式は、そのコンテンツが、従来のコマンドar、tar、およびgzip(場合によってはxzまたはbzip2)を持つ任意のUnixシステムで抽出できるように設計されています。この一見些細な特性は、移植性と災害復旧にとって重要です。たとえば、誤ってdpkgプログラムを削除したために、Debianパッケージをインストールできなくなったとします。 dpkg自体がDebianパッケージであるため、システムは次の目的で実行されるように見えます...幸い、パッケージの形式を知っているので、dpkgパッケージの.debファイルをダウンロードできますそして手動でインストールします(「ツール」サイドバーを参照)。不幸なことに、プログラムar、tar、またはgzip/xz/bzip2の1つ以上が消えた場合は、不足しているプログラムを別のシステムからコピーするだけで済みます(これらはそれぞれ、依存関係がなく、完全に自律的に動作するため、単純なコピーで十分です)。

3
BluePython

これが本当なら、他のコマンドでは利用できないdpkgの何が特別なのですか?

他のコマンドはパッケージマネージャーの置き換えではありません。それがdpkgを特別なものにしている理由です。すべてのパッケージの内容を実際に抽出してルートディレクトリにドロップすることはできますが、それはそれらが正しく機能することを意味するわけではありません。依存関係を追跡したり、インストールされたパッケージ、インストール後/インストール前および削除スクリプト、およびパッケージマネージャーが提供する他の多くの優れた機能を特定したりする方法はありません。

彼らがその段落で意味したのは、あなたが大きな時間を台無しにした場合、適切なツールの間に合わせの代わりとして、ファイルをダウンロードして抽出し、システムを回復できるということです。

この一見些細な特性は、移植性にとって重要であり、災害復旧

したがって、DPKGの重要性は非常に高いですが、災害が発生した場合にかなり迅速に回復できるように、フェイルセーフが導入されています。

6
Braiam

Debian管理者ハンドブック は次のように述べています:

幸いなことに、あなたはパッケージのフォーマットを知っているので、dpkgパッケージの.debファイルをダウンロードして手動でインストールすることができます...

これは、debファイルを手動でダウンロード(またはメディアからコピー)してから、tar、gzip、...を使用してdebファイルからファイルを手動で抽出することでインストールできることを意味します(dpkgプログラムがない場合)

あなたは尋ねています:

これが本当なら、他のコマンドでは利用できないdpkgの何が特別なのですか?

dpkgのマニュアルページ から:

dpkgは、Debianパッケージをインストール、ビルド、削除、管理するためのツールです。

tarのマニュアルページ から:

Tarは、テープまたはディスクアーカイブからファイルを保存および抽出します。

gzipのマニュアルページ から:

Gzipは、Lempel-Zivコーディング(LZ77)を使用して、名前付きファイルのサイズを縮小します。

つまり、dpkgを使用すると、解凍と抽出だけでなく、インストールスクリプトの実行、パッケージ間の依存関係の確認、パッケージの削除、構成ファイルのパージなどを行うことができます。

2
Ortomala Lokni

基本的に、これは初期設定の方法です。Essentialとマークされたすべてのパッケージとその依存関係は、新しくインストールされたシステムの外部からarとtarを使用して新しいディレクトリに抽出されます。

結果のファイルシステムツリーには、chrootをその中に入れてdpkgを実行するために必要なすべてのものが含まれています。最初の呼び出しで、すべてのEssentialパッケージが再インストールされ、同じ内容のファイルが上書きされ、インストールされたパッケージが登録されます。

0
Simon Richter

つまり、dpkgを削除すると、その.debファイルをリポジトリからダウンロードし、dpkg.debファイルを手動で抽出してインストールできます。ただし、パッケージマネージャーデータベースが維持されるように、dpkgを使用する必要があります。 artargzipを使用すると、パッケージマネージャー(apt)のデータベースは変更を反映するように更新されません。

安定したシステムを維持するために、どうしても必要な場合を除いて、dpkgを使用してください。

0
Wyatt8740