.debパッケージのインストールが実行するアクションを表示するにはどうすればよいですか?


33

アップグレード予定のパッケージに関連付けられているスクリプト/トリガーを表示できるようにしたいので、たとえば、Webサーバーが再起動されるかどうかを判断できます。私にそれを示す適切なオプションが見つかりません(またはapt / dpkg)。私が得ることができる最高のものは、内容(ファイル)です。これを表示するために見逃した、シミュレート/詳細/コンテンツスイッチの組み合わせはありますか?

さらに、パッケージの結果(サービスの再起動など)が発生した場合、今すぐ実行したくないのですが、一部またはすべてのスクリプトを実行せずにパッケージをインストールする方法はありますか?


なぜこれが否決されたのですか?私にとっては理にかなった質問のようです(通常、このようなことは必要ないはずです)
sleske 09年

1
私を殴る。コメントや回答に特に注意を払う必要はありません。ランダムな投票です。「通常は行うべきではない」ということは、「どんな状況でも教育的であっても決して行うべきではない」と同じです。:(
サムブライトマン

回答:


20

dpkg -I package.deb使用dpkg -e package.debして制御ファイルとその他の情報を印刷するか、またはを使用して制御情報ファイルのみを抽出できます。

また、dpkgが何を行うかを確認するために、ドライランを実行できます--dry-run

dpkg --dry-run -i package.deb

これらのオプションを見逃してしまったに違いない、ありがとう。-あまり表示されないようです-最初の行(interrobang)のように見えます。
サムブライトマン

2
注:パッケージファイルをローカルで使用できるようにする必要があります。最初に「aptitude download <packagename>」でダウンロードします。
マルタインHeemels

3
-eオプションはDEBIANcontrolファイルと実行されるさまざまなスクリプトファイルを含むディレクトリを作成します。postinstパッケージが正常にインストールされた後に実行されるため、通常非常に興味深いです。
dwurf

8

いいえ、aptitudeを使用してこれを行う方法はわかりません。

スクリプトを直接見ることができます。アップグレード中に実行されるスクリプトはパッケージに含まれています。arを使用してdebを解凍します。

ar -x package.deb

次に、を調べますcontrol.tar.gz。スクリプトが含まれています。


いくつかの冗長オプションを指定したaptitude -sが、アップグレード全体で実行されるスクリプトを実際に示していれば、より良いでしょう。それは本質的に私が求めていたものですが、ミカエルの答えは少し簡単だと思います。
サムブライトマン

2

あります--debugのためのオプションは、dpkgのように、sudo dpkg --debug=72200 -i package.deb

詳細出力にはいくつかの利用可能なオプションがあり、それらを組み合わせることができます。

次を実行すると、使用可能なすべてのオプションを確認できますdpkg --debug=help

pi@kaldi:~ $ dpkg --debug=help
dpkg debugging option, --debug=<octal> or -D<octal>:

 Number  Ref. in source   Description
      1  general          Generally helpful progress information
      2  scripts          Invocation and status of maintainer scripts
     10  eachfile         Output for each file processed
    100  eachfiledetail   Lots of output for each file processed
     20  conff            Output for each configuration file
    200  conffdetail      Lots of output for each configuration file
     40  depcon           Dependencies and conflicts
    400  depcondetail     Lots of dependencies/conflicts output
  10000  triggers         Trigger activation and processing
  20000  triggersdetail   Lots of output regarding triggers
  40000  triggersstupid   Silly amounts of output regarding triggers
   1000  veryverbose      Lots of drivel about eg the dpkg/info directory
   2000  stupidlyverbose  Insane amounts of drivel

Debugging options can be mixed using bitwise-or.
Note that the meanings and values are subject to change.

それでもインストールは行われますよね?
サムブライトマン

はい、100%正しいです。これは、別の(開発)インスタンスで実行する必要があります。
エスティボルド

1

いいえ、メンテナースクリプトの一部を実行することはできません。それを実現するためのフックはありません。

手作業でスクリプトを調べることで、スクリプトが何をするかを見ることができます-繰り返しますが、「ドライラン」は何をするかしないかを正確に伝えることはできず、「これらの引数でpostinstを実行します」のみです。

これらがステージング環境とテスト環境がある理由です。


個々のスクリプトの一部ではなく、スクリプトのサブセットを意味しました。それが明確でない場合は申し訳ありません。スクリプトと引数を知っていると、手品を調べたり、不便な部分を修正したりすることができます。
サムブライトマン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.