package linux-image-2.6.31-20-generic 2.6.31-20.57 failed to install/upgrade: run-parts: /etc/kernel/postinst.d/nvidia-common exited with return code 10
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Invalid
|
High
|
Unassigned | ||
Lucid |
Invalid
|
High
|
Unassigned | ||
nvidia-common (Ubuntu) |
Fix Released
|
High
|
Alberto Milone | ||
Lucid |
Fix Released
|
High
|
Alberto Milone |
Bug Description
Binary package hint: linux-image-
Nothing special to report other than I was trying to allow Update Manager to perform its usual updates, in this case a kernel upgrade. I always do kernel upgrade separately, i.e., either update the linux-* packages first and then the rest, or vice versa. In this case, everything else was up-to-date except the 7 kernel packages. The errors encountered, as I'm sure are included in the automatically attached logfiles, had to do with nvidia and virtualbox kernel modules being already installed.
ProblemType: Package
Architecture: i386
Date: Sun Mar 7 13:30:45 2010
DistroRelease: Ubuntu 9.10
ErrorMessage: run-parts: /etc/kernel/
InstallationMedia: Ubuntu 9.10 "Karmic Koala" - Release i386 (20091028.5)
NonfreeKernelMo
Package: linux-image-
ProcVersionSign
SourcePackage: nvidia-common
Title: package linux-image-
Uname: Linux 2.6.31-19-generic i686
Related branches
tags: | added: karmic |
Changed in linux (Ubuntu): | |
importance: | Undecided → Medium |
assignee: | nobody → Alberto Milone (albertomilone) |
Changed in linux (Ubuntu Lucid): | |
importance: | Medium → High |
Changed in linux (Ubuntu Lucid): | |
status: | Confirmed → In Progress |
Changed in nvidia-common (Ubuntu Lucid): | |
importance: | Undecided → High |
status: | New → In Progress |
assignee: | nobody → Alberto Milone (albertomilone) |
Changed in linux (Ubuntu Lucid): | |
status: | In Progress → Invalid |
assignee: | Alberto Milone (albertomilone) → nobody |
Hi,
A couple of quick comments.
First, as a temporary workaround,as root user I simply backed up and then removed the nvidia-common file in the /etc/kernel/ postinst. d and /etc/kernel/ header_ postinst. d directories. Then, by running "apt-get -f install", I was able to get the kernel packages to finally finish installing correctly. Then, I copied the nvidia-common file back into the two directories mentioned, and everything with apt now works again (i.e., apt-get update, apt-get autoremove, etc).
In other words, running the following might temporarily help others with this problem:
sudo cp -pi /etc/kernel/ postinst. d/nvidia- common /tmp/nvidia-common postinst. d/nvidia- common header_ postinst. d/nvidia- common postinst. d/nvidia- common header_ postinst. d/nvidia- common
sudo rm -f /etc/kernel/
sudo rm -f /etc/kernel/
sudo apt-get -f install
sudo cp -pi /tmp/nvidia-common /etc/kernel/
sudo cp -pi /tmp/nvidia-common /etc/kernel/
Second, here's what I've discovered technically that might help the experts figure out the correct solution. Non-experts may not wish to read any further.
I added a "set -x" command to the 2nd line of /etc/kernel/ postinst. d/nvidia- common. This revealed the error return code 10 and error message line "RET='10 nvidia- common/ obsolete- driver doesn'\''t exist'". This lead me to notice at least one problem:
(1) /usr/share/ nvidia- common/ obsolete- driver in fact does NOT exist
Apparently, it has been renamed to simply /usr/share/ nvidia- common/ obsolete.
At this point, I tried to diagnose further, and the problem clearly follows from the db_set commands within the /etc/kernel/ [header_ ]postinst. d/nvidia- common files. However, being still somewhat new to Ubuntu/Debian (I come from RHEL world), I'm not familiar with debconf and could not readily find documentation what what db_set is suppposed to do (and looking at /usr/share/ debconf/ confmodule didn't help, as db_set simply calls _db_cmd "SET", which I couldn't quickly figure out what that does).
At any rate, I tried the following, all of which do not work:
(2) globally replacing "obsolete-driver" with "obsolete" does NOT work nvidia- common/ obsolete" does NOT work.
(3) globally replacing "obsolete-driver" with "/usr/share/
I tried (3) because, after putting an "echo PWD=`pwd`" line at the start of nvidia-common script, I noticed it was being running from PWD=/, so I thought the problem might be a directory location, but still no joy.
At this point, I just gave up and tried removing the nvidia-common files from /etc/kernel, and, as I mentioned first, that worked for me.
For what it's worth, below is the relevant output from "apt-get -f install" from attempt (2) above, that is, "obsolete-driver" replaced with "obsolete" (the error message was the same in all cases, i.e., "RET='10 nvidia- common/ obsolete doesn'\''t exist'").
Hope this helps folks get this resolved. It seems to be affecting a lot of people and a similar bug has high priority / triaged status. I'll crossref next.
Cheers,
Doug
run-parts: executing /etc/kernel/ postinst. d/nvidia- common debconf/ confmodule
+ . /usr/share/
++ '[' '!' '' ']'
++ PERL_DL_NONLAZY=1
++ export PERL...