dpkg --dry-run オプションはインストールを正しくシミュレートしません。

dpkg --dry-run オプションはインストールを正しくシミュレートしません。

任意の.DEBファイルが与えられたら、実際にデバイスにインストールせずにインストールが正常に完了したことをどうやって確認できますか?次のコードスニペットをご覧ください。

root@VirtualBox:/Folder# dpkg -i mysql-workbench_6.2.3+dfsg-7_armhf.deb 
Selecting previously unselected package mysql-workbench.
(Reading database ... 48937 files and directories currently installed.)
Preparing to unpack mysql-workbench_6.2.3+dfsg-7_armhf.deb ...
Unpacking mysql-workbench (6.2.3+dfsg-7) ...
dpkg: dependency problems prevent configuration of mysql-workbench:
 mysql-workbench depends on libatkmm-1.6-1 (>= 2.22.1); however:
  Package libatkmm-1.6-1 is not installed.
 mysql-workbench depends on libcairo2 (>= 1.14.0); however:
  Package libcairo2 is not installed.
 mysql-workbench depends on libcairomm-1.0-1 (>= 1.6.4); however:
  Package libcairomm-1.0-1 is not installed.
 mysql-workbench depends on libctemplate2; however:
  Package libctemplate2 is not installed.
 mysql-workbench depends on libgdal1h (>= 1.8.0); however:
  Package libgdal1h is not installed.
 mysql-workbench depends on libgdk-pixbuf2.0-0 (>= 2.22.0); however:
  Package libgdk-pixbuf2.0-0 is not installed.
 mysql-workbench depends on libgl1-mesa-glx | libgl1; however:
  Package libgl1-mesa-glx is not installed.
  Package libgl1 is not installed.
 mysql-workbench depends on libglibmm-2.4-1c2a (>= 2.42.0); however:
  Package libglibmm-2.4-1c2a is not installed.
 mysql-workbench depends on libgnome-keyring0 (>= 2.22.2); however:
  Package l
dpkg: error processing package mysql-workbench (--install):
 dependency problems - leaving unconfigured
Processing triggers for mime-support (3.58) ...
Processing triggers for shared-mime-info (1.3-1) ...
Errors were encountered while processing:
 mysql-workbench
root@VirtualBox:/Folder# echo $?
1
root@VirtualBox:/Folder# dpkg --dry-run -i mysql-workbench_6.2.3+dfsg-7_armhf.deb 
(Reading database ... 49115 files and directories currently installed.)
Preparing to unpack mysql-workbench_6.2.3+dfsg-7_armhf.deb ...
root@VirtualBox:/Folder# echo $?
0
root@VirtualBox:/Folder# dpkg --dry-run --simulate -i mysql-workbench_6.2.3+dfsg-7_armhf.deb 
(Reading database ... 49115 files and directories currently installed.)
Preparing to unpack mysql-workbench_6.2.3+dfsg-7_armhf.deb ...
root@VirtualBox:/Folder# echo $?
0
root@VirtualBox:/Folder# 

そのオプションを使用すると、dpkg -iコマンドは失敗し、値1を返しますが、同じコマンドを使用すると--dry-run0が返されます。その--simulateオプションを追加しても動作が変わらないようです。実際にパッケージをインストールせずに.DEBファイルが正しくインストールされたことを継続的に確認する方法についてのアドバイスはありますか?

私はRaspberry Piエミュレータで実行しています。

root@VirtualBox:/Folder# cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 8 (jessie)"
NAME="Raspbian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

ベストアンサー1

追加の依存関係をインストールせずにパッケージをインストールできることを確認するには、「エミュレーション」モードを使用することをお勧めしますapt

apt -s install ./mysql-workbench_6.2.3+dfsg-7_armhf.deb

./どちらが重要かを確認してください)。これにより、dpkg実際のインストールが実行するアクションが出力されます。パッケージのインストールにはが表示されますInst。複数のパッケージがある場合、パッケージを個別にインストールすることはできません。

今重要なのは、依存関係を知らないdpkgからではなく(確かにそうです)、依存関係が十分に強くないので使用できないということです。dpkgパッケージが他のパッケージに依存している場合、依存関係のためにパッケージインストール済み満足できないと満足できなくなります。設定。バラよりDebian Policy Section 7.2:

フィールドDependsが適用されます。ただパッケージ構成について。依存関係が満たされていない場合、パッケージが未構成のままになるのを防ぎ、依存関係が満たされた正しくインストールされたパッケージを、依存関係が満たされていないか、または満たされない他のバージョンに置き換えることができます。 、依存パッケージは未構成のまま(構成しようとするとエラーが発生するため)、正しく機能しません。

自己テストでこれを確認できます。プロセスは次のように失敗します。

dpkg: dependency problems prevent configuration of mysql-workbench

「インストール」ではなく「構成」に注意してください。出力を見ると、パッケージがインストールされているがまだ構成されていないことを意味dpkg -l mysql-workbenchします。iU

で「エミュレーション」モードを有効にすると、既定ではdpkg読み取り専用モードで実行されます。フラグを設定してこれを行いますf_noact。ソースコードでこれを見つけることができます。ソフトウェアパッケージをインストールするときは、何も作成せずにインストールタスクをシミュレートしてから構成手順に入ります。ただなるふりをしてみてこれは、モック操作が実行できる唯一のタスクです。構成には、パッケージでメンテナンススクリプトを実行することが含まれており、そのスクリプトが変更されていないことを確認したり、変更を許可せずに正常な変更を確認できることを確認することは困難です。したがって、あなたの場合、模擬は(模擬ではないテストのように)成功した​​パッケージをインストールし、構成を偽造します。だからエラーが見つかりませんでした...

おすすめ記事