Debian: 一貫性の悪い状態のパッケージを削除または再インストールしてください

Debian: 一貫性の悪い状態のパッケージを削除または再インストールしてください

パッケージ管理に問題があります。

ある時点でbluezパッケージが破損しているため、アップデートなどを中断したようです。アンインストールおよび/または再インストールしようとしましたが、エラーのみが発生しました。このパッケージが破損している限り、aptでは何もできません。

パッケージの出力を削除してみました。

$ sudo aptitude remove bluez 
The following packages will be REMOVED:  
  bluez 
The following partially installed packages will be configured:
  dictionaries-common dmsetup grub-pc ifupdown install-info rsyslog 
0 packages upgraded, 0 newly installed, 1 to remove and 235 not upgraded.
Need to get 0 B of archives. After unpacking 1,737 kB will be freed.
dpkg: error processing bluez (--remove): 
 Package is in a very bad inconsistent state - you should
 reinstall it before attempting a removal.
configured to not write apport reports
                                      Errors were encountered while processing:
 bluez
E: Sub-process /usr/bin/dpkg returned an error code (1)
A package failed to install.  Trying to recover:
Setting up install-info (4.13a.dfsg.1-8) ...
/var/lib/dpkg/info/install-info.postinst: 32: /var/lib/dpkg/info/install-info.postinst: update-info-dir: not found
dpkg: error processing install-info (--configure):
 subprocess installed post-installation script returned error exit status 127
Setting up ifupdown (0.7~alpha5+really0.6.15) ...
/var/lib/dpkg/info/ifupdown.postinst: 122: /var/lib/dpkg/info/ifupdown.postinst: update-rc.d: not found
dpkg: error processing ifupdown (--configure):
 subprocess installed post-installation script returned error exit status 127
Setting up locales (2.13-18) ...
/var/lib/dpkg/info/locales.postinst: 64: /var/lib/dpkg/info/locales.postinst: locale-gen: not found
dpkg: error processing locales (--configure):
 subprocess installed post-installation script returned error exit status 127
Setting up dictionaries-common (1.11.6) ...
/var/lib/dpkg/info/dictionaries-common.postinst: 45: /var/lib/dpkg/info/dictionaries-common.postinst: update-dictcommon-aspell: not found
dpkg: error processing dictionaries-common (--configure):
 subprocess installed post-installation script returned error exit status 127
Setting up grub-pc (1.99-12) ...
/var/lib/dpkg/info/grub-pc.postinst: line 438: grub-mkdevicemap: command not found
/var/lib/dpkg/info/grub-pc.postinst: line 263: grub-probe: command not found
/var/lib/dpkg/info/grub-pc.postinst: line 263: grub-probe: command not found
/var/lib/dpkg/info/grub-pc.postinst: line 263: grub-probe: command not found
/var/lib/dpkg/info/grub-pc.postinst: line 559: grub-install: command not found
/var/lib/dpkg/info/grub-pc.postinst: line 669: update-grub: command not found
dpkg: error processing grub-pc (--configure):
 subprocess installed post-installation script returned error exit status 127
Setting up dmsetup (2:1.02.65-1) ...
/var/lib/dpkg/info/dmsetup.postinst: 8: /var/lib/dpkg/info/dmsetup.postinst: update-initramfs: not found
dpkg: error processing dmsetup (--configure):
 subprocess installed post-installation script returned error exit status 127
Setting up rsyslog (5.8.5-1) ...
/var/lib/dpkg/info/rsyslog.postinst: 45: /var/lib/dpkg/info/rsyslog.postinst: update-rc.d: not found
dpkg: error processing rsyslog (--configure):
 subprocess installed post-installation script returned error exit status 127
Errors were encountered while processing:
 install-info
 ifupdown
 locales
 dictionaries-common
 grub-pc
 dmsetup
 rsyslog

Debian テストを実行しています。これは実際にこの特定のパッケージの問題ですか、それともdpkgの問題ですか?パッケージマネージャを変更するにはどうすればよいですか?

答え1

これまでこのメッセージを見たことがないため、bluezに固有のものと推測されます。メッセージに従って再インストールしてみましたか?

apt-get install --reinstall bluez

dpkgを使用して、aptキャッシュからbluezパッケージをインストール/構成してみることもできます。 /var/cache/aptでbluezパッケージを見つけます。次のようにインストールします(root)。

dpkg -i <bluez debian package>

答え2

sudo dpkg-reconfigure <packages> --force

続いて

sudo dpkg --purge --force-all <packages>

答え3

/usr/sbin偶然の一致かもしれませんが、すべてのエラーはupdate-info-dir、、、、、、、、、、、およびprermのプログラム呼び出しに関連しupdate-rc.dていlocale-genます。update-dictcommon-aspellgrub-mkdevicemapgrub-probegrub-installupdate-grubupdate-initramfsupdate-rc.dinvoke-rc.dbluez/usr/sbin

最初に確認する必要があるのは、/usr/sbinrootにあるかどうかです。しかし、そうでなければ、一般的に大声で文句を言うので、PATH問題になる可能性はありません。dpkg実際にsqueezeから始めると、dpkgがupdate-rc.ddpkgで見つからないと大きな音で文句を言いますが、postinstが文句を言わなくても実行ファイルを見つけることができないのPATHがおかしいです。rsyslogdpkg

このコマンドをrootとして実行するとどうなりますか?

type update-rc.d
ls -l /usr/sbin/update-rc.d
file /usr/sbin/update-rc.d
update-rc.d --help
file /bin/sh

これらのコマンドの結果によっては、修正が提案される場合があります。興味深い手がかりを見つけたがその意味がわからない場合は、質問を編集してこの情報を追加してください。また、システムに関する「異常な」事項(SELinux、chroot、デュアルアーキテクチャのインストール...)も報告してください。

答え4

bluezこれにはパッケージに関連するエラーだけでなく、いくつかのエラーがあるようです。

これを実行するとaptitude remove、いくつかのパッケージ構成が進みます。ほとんどは基本的なシステム機能(grub、ifupdownなど)を実装します。これは、アップデートが中断されたか、アップデートの完了を妨げるいくつかのディスク/ファイルシステムエラーがあることを示します。きれいに。

つまり、きちんと更新されていない残りのパッケージは、より大きな問題の兆候である可能性があります。実際に投稿したログには、次の内容が記載されています。

/var/lib/dpkg/info/install-info.postinst: 32: /var/lib/dpkg/info/install-info.postinst: update-info-dir: not found
dpkg: error processing install-info (--configure):
 subprocess installed post-installation script returned error exit status 127

したがって、見つからないため、構成をinstall-info完了できません。update-info-dirこの文脈では、「見つからない」とは「実行できない」を意味する可能性があります。同様に、他のパッケージも次のプログラムが見つからないため失敗します。

grub-install, grub-mkdevicemap, grub-probe, locale-gen,
update-dictcommon-aspell, update-grub, update-info-dir,
update-initramfs, update-rc.d

私のシステムでは、欠落しているファイルは次のパッケージからインストールされました。

==================================  =================== 
File location                       Package             
==================================  =================== 
/usr/sbin/update-dictcommon-aspell  dictionaries-common 
/usr/sbin/grub-mkdevicemap          grub-common         
/usr/sbin/grub-probe                grub-common         
/usr/lib/grub-legacy/update-grub    grub-pc             
/usr/sbin/grub-install              grub-pc             
/usr/sbin/update-grub               grub-pc             
/usr/sbin/update-initramfs          initramfs-tools     
/usr/sbin/update-info-dir           install-info        
/usr/sbin/locale-gen                locales             
/usr/sbin/update-rc.d               sysv-rc             

最初のデバッグステップで、ファイルが実際に存在するか、読み取ることができ、実行可能であることを確認します。

次に、次のオプションをそれぞれ実行してみてください--help。正常に実行されますか?

aptitude reinstall grub-pc grub-common上記の両方のテストが正常に完了したら、sysv-rc、initramfs-tools、grub-pc、およびgrub-common()から始めてこれらのパッケージを再インストールする必要があります。

部品が作動したら、正常にaptitude reinstall bluez戻ってbluez 取り外すことができます。

関連情報