web-dev-qa-db-ja.com

Linuxカーネルのdpkg依存関係を解決する方法は? (Debian)

Sudo apt-get dist-upgradeを実行するときに、このエラーをどのように解決しますか?

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
Setting up linux-image-4.9.0-3-AMD64 (4.9.30-2+deb9u2) ...
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-4.9.0-3-AMD64
/etc/kernel/postinst.d/zz-update-grub:
/usr/sbin/grub-mkconfig: 1: /etc/default/grub: ]#: not found
run-parts: /etc/kernel/postinst.d/zz-update-grub exited with return code 127
dpkg: error processing package linux-image-4.9.0-3-AMD64 (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of linux-image-AMD64:
 linux-image-AMD64 depends on linux-image-4.9.0-3-AMD64; however:
  Package linux-image-4.9.0-3-AMD64 is not configured yet.

dpkg: error processing package linux-image-AMD64 (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 linux-image-4.9.0-3-AMD64
 linux-image-AMD64
E: Sub-process /usr/bin/dpkg returned an error code (1)

私はDebian9(stretch)を使用しており、カーネルの最新バージョンは実際には現在持っているものです( linux-image-4.9.0-3-AMD64Sudo dpkg --configure -aを実行すると次のメッセージ:

Sudo dpkg --configure -a
dpkg: dependency problems prevent configuration of linux-image-AMD64:
 linux-image-AMD64 depends on linux-image-4.9.0-3-AMD64; however:
  Package linux-image-4.9.0-3-AMD64 is not configured yet.

dpkg: error processing package linux-image-AMD64 (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 linux-image-AMD64

私はこれらのコマンドを無駄に実行しようとしました:

Sudo apt-get autoclean
Sudo apt-get clean
Sudo apt-get update
Sudo apt-get upgrade
Sudo apt-get dist-upgrade
Sudo apt-get -f install

そして、Sudo dkpg --purge linux-image-4.9.0-3-AMD64を実行し、カーネルを更新して再インストールすると、次の依存関係エラーが発生します。

dpkg: dependency problems prevent removal of linux-image-4.9.0-3-AMD64:
 linux-image-AMD64 depends on linux-image-4.9.0-3-AMD64.

dpkg: error processing package linux-image-4.9.0-3-AMD64 (--purge):
 dependency problems - not removing
Errors were encountered while processing:
 linux-image-4.9.0-3-AMD64

前もって感謝します。

2
JohnJohn

依存関係の問題はありません。パッケージ構成に問題があります。

トランスクリプトの関連部分は次のとおりです。

/etc/kernel/postinst.d/zz-update-grub:
/usr/sbin/grub-mkconfig: 1: /etc/default/grub: ]#: not found
run-parts: /etc/kernel/postinst.d/zz-update-grub exited with return code 127

それ以降はすべてこの問題の結果です。カーネルのインストール後のスクリプトが失敗したため、パッケージlinux-image-4.9.0-3-AMD64が正しくインストールされておらず(Debianの用語では構成されていません)、それに依存するパッケージはありません。 tどちらかが正しくインストールされています。

明らかに、/etc/default/grubにタイプミスがあります(行の先頭に]が迷っているようです)。それを修正してから、進行中のインストールを

apt-get -f install

依存関係とは何の関係もないことがわかりました。更新中に何かが壊れ、GRUBが台無しになります。GRUBを再インストールするには、次のように呼び出します。

Sudo apt-get update
Sudo apt-get install --reinstall grub
Sudo apt-get dist-upgrade
Sudo apt-get upgrade
Sudo apt autoremove

次に、再起動してapt-get dist-upgradeを再度実行してみてください。問題は、解決されているはずです。

1
JohnJohn