web-dev-qa-db-ja.com

古いバージョンのubuntuでの依存関係の問題

自分でこれを理解することはできません。誰かが助けてくれることを願っています。

すでに3.13.0-68-genericを使用していますが、アップデートを実行するたびに、3.13.0-58-genericに問題があるというエラーメッセージが表示されます。

(ブート時にディスク容量が不足しているため、常に古いバージョンを削除する必要があります。古いバージョンを削除する場合は、常に最後のバージョンと最後のバージョンを残します。)

正確なエラーは

Internal Error: Could not find image (/boot/vmlinuz-3.13.0-58-generic)
 dpkg: error processing package linux-image-3.13.0-58-generic (--configure):
  subprocess installed post-installation script returned error exit status 2 
  dpkg: dependency problems prevent configuration of
   linux-image-extra-3.13.0-58-generic: 
    linux-image-extra-3.13.0-58-generic depends on linux-image-3.13.0-58-generic;
    however: Package linux-image-3.13.0-58-generic is not configured yet.

 dpkg: error processing package linux-image-extra-3.13.0-58-generic (--configure):
  dependency problems - leaving unconfigured 

Errors were encountered while processing:
 linux-image-3.13.0-58-generic 
 linux-image-extra-3.13.0-58-generic

uname -a

olivy-ThinkPad-Edge 3.13.0-66-generic #108-Ubuntu SMP Wed Oct 7 15:20:27 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

ls -la /var/lib/dpkg/info/linux-image-*.postinst

-rwxr-xr-x 1 root root 39259 Dez  8  2014 /var/lib/dpkg/info/linux-image-3.13.0-43-generic.postinst
-rwxr-xr-x 1 root root 39259 Apr 10  2015 /var/lib/dpkg/info/linux-image-3.13.0-49-generic.postinst
-rwxr-xr-x 1 root root 39259 Mai  4  2015 /var/lib/dpkg/info/linux-image-3.13.0-52-generic.postinst
-rwxr-xr-x 1 root root 39259 Jun 18 03:04 /var/lib/dpkg/info/linux-image-3.13.0-55-generic.postinst
-rwxr-xr-x 1 root root 39259 Jun 19 12:05 /var/lib/dpkg/info/linux-image-3.13.0-57-generic.postinst
-rwxr-xr-x 1 root root 39259 Jul  8 05:54 /var/lib/dpkg/info/linux-image-3.13.0-58-generic.postinst
-rwxr-xr-x 1 root root 39259 Jul 29 14:36 /var/lib/dpkg/info/linux-image-3.13.0-61-generic.postinst
-rwxr-xr-x 1 root root 39259 Aug 11 18:19 /var/lib/dpkg/info/linux-image-3.13.0-62-generic.postinst
-rwxr-xr-x 1 root root 39259 Aug 15 01:09 /var/lib/dpkg/info/linux-image-3.13.0-63-generic.postinst
-rwxr-xr-x 1 root root 39259 Okt  3 01:57 /var/lib/dpkg/info/linux-image-3.13.0-65-generic.postinst
-rwxr-xr-x 1 root root 39259 Okt  7 18:36 /var/lib/dpkg/info/linux-image-3.13.0-66-generic.postinst
-rwxr-xr-x 1 root root 39259 Nov  6 20:59 /var/lib/dpkg/info/linux-image-3.13.0-68-generic.postinst
-rwxr-xr-x 1 root root   391 Dez  8  2014 /var/lib/dpkg/info/linux-image-extra-3.13.0-43-generic.postinst
-rwxr-xr-x 1 root root   391 Apr 10  2015 /var/lib/dpkg/info/linux-image-extra-3.13.0-49-generic.postinst
-rwxr-xr-x 1 root root   391 Mai  4  2015 /var/lib/dpkg/info/linux-image-extra-3.13.0-52-generic.postinst
-rwxr-xr-x 1 root root   391 Jun 18 03:04 /var/lib/dpkg/info/linux-image-extra-3.13.0-55-generic.postinst
-rwxr-xr-x 1 root root   391 Jun 19 12:05 /var/lib/dpkg/info/linux-image-extra-3.13.0-57-generic.postinst
-rwxr-xr-x 1 root root   391 Jul  8 05:54 /var/lib/dpkg/info/linux-image-extra-3.13.0-58-generic.postinst
-rwxr-xr-x 1 root root   391 Jul 29 14:36 /var/lib/dpkg/info/linux-image-extra-3.13.0-61-generic.postinst
-rwxr-xr-x 1 root root   391 Aug 11 18:19 /var/lib/dpkg/info/linux-image-extra-3.13.0-62-generic.postinst
-rwxr-xr-x 1 root root   391 Aug 15 01:09 /var/lib/dpkg/info/linux-image-extra-3.13.0-63-generic.postinst
-rwxr-xr-x 1 root root   391 Okt  3 01:57 /var/lib/dpkg/info/linux-image-extra-3.13.0-65-generic.postinst
-rwxr-xr-x 1 root root   391 Okt  7 18:36 /var/lib/dpkg/info/linux-image-extra-3.13.0-66-generic.postinst
-rwxr-xr-x 1 root root   391 Nov  6 20:59 /var/lib/dpkg/info/linux-image-extra-3.13.0-68-generic.postinst

たくさんありがとう!

DEBパッケージのインストール後スクリプト(/var/lib/dpkg/info/linux-image-3.13.0-58-generic.postinst)のどこかに、以下のコードスニペットがあります

die "Internal Error: Could not find image (" . $realimageloc
  . "$kimage-$version)\n" unless -e $realimageloc
  . "$kimage-$version";

unless -e $realimagelocfalseを返す場合、つまりファイル/boot/vmlinuz-3.13.0-58-genericが存在しない場合、スクリプトは失敗します。


2つの可能性:

  • ダミーファイルを作成する

    Sudo touch /boot/vmlinuz-3.13.0-58-generic
    
  • 走る

    Sudo apt-get install -f
    

[〜#〜] or [〜#〜]

  • dieステートメントを非アクティブ化します

    • インストール後スクリプトを編集する

      Sudo nano /var/lib/dpkg/info/linux-image-3.13.0-58-generic.postinst
      
    • コードブロックを検索する

      die "Internal Error: Could not find image (" . $realimageloc
        . "$kimage-$version)\n" unless -e $realimageloc
        . "$kimage-$version";
      

      行をコメントアウトして、各行に#を追加するだけです

    • 次のように表示されるはずです。

      # Paranoid check to make sure that the correct value is put in there
      if    (! $kimage)                 { $kimage = "vmlinuz"; } # Hmm. empty
      elsif ($kimage =~ m/^b?uImage$/o) { $kimage = "vmlinuz"; } # these produce vmlinuz
      elsif ($kimage =~ m/^b?zImage$/o) { $kimage = "vmlinuz"; } # these produce vmlinuz
      elsif ($kimage =~ m/^[iI]mage$/o) { my $nop = $kimage;   }
      elsif ($kimage =~ m/^vmlinux$/o)  { my $nop = $kimage;   }
      else                              { $kimage = "vmlinuz"; } # Default
      
      $ENV{KERNEL_Arch}=$kernel_Arch if $kernel_Arch;
      
      
      # die "Internal Error: Could not find image (" . $realimageloc
      #  . "$kimage-$version)\n" unless -e $realimageloc
      #  . "$kimage-$version";
      
      # search for the boot loader in the path
      my $loader_exec;
      ($loader_exec = $loader)  =~ s|.*/||;
      my ($loaderloc) = grep -x, map "$_/$loader_exec",
        map { length($_) ? $_ : "." }  split /:/, $ENV{PATH};
      
      
      ######################################################################
      ######################################################################
      ###########        Test whether a relative symlinkwould be OK #######
      ######################################################################
      ######################################################################
      ######################################################################
      
    • ファイルを保存して実行

      Sudo apt-get install -f
      
0
A.B.