nachdem ich bei einem upgrade von gcc-4.9 zu der Situation kam, dass die Paketabhängigkeiten nicht aufgelöst werden konnten, habe ich mich entschieden, hier mal was dazu zu posten, insbesondere deswegen, da die Suche nach der eigentlichen Fehlermeldung:
"unable to install new version of `<binaryname>': Device or resource busy"
Im Internet quasi gar nicht zu tage gefördert hat, was hilfreich hätte sein können.
Hier das Problem:
Code: Alles auswählen
# LANG=C apt-get -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
cpp-4.9 g++-4.9 gcc-4.9
Suggested packages:
gcc-4.9-locales g++-4.9-multilib libstdc++6-4.9-dbg libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan1-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libquadmath0-dbg
The following packages will be upgraded:
cpp-4.9 g++-4.9 gcc-4.9
3 upgraded, 0 newly installed, 0 to remove and 797 not upgraded.
37 not fully installed or removed.
Need to get 0 B/28.1 MB of archives.
After this operation, 3772 kB disk space will be freed.
Do you want to continue? [Y/n] y
Reading changelogs... Done
(Reading database ... 577278 files and directories currently installed.)
Preparing to unpack .../g++-4.9_4.9.2-10+deb8u2_amd64.deb ...
Unpacking g++-4.9 (4.9.2-10+deb8u2) over (4.9.2-10) ...
dpkg: error processing archive /home/ox/Downloads/debian-jessie-backports/mirror/ftp.hosteurope.de/mirror/ftp.debian.org/debian-security/pool/updates/main/g/gcc-4.9/g++-4.9_4.9.2-10+deb8u2_amd64.deb (--unpack):
unable to install new version of `/usr/bin/g++-4.9': Device or resource busy
Preparing to unpack .../gcc-4.9_4.9.2-10+deb8u2_amd64.deb ...
Unpacking gcc-4.9 (4.9.2-10+deb8u2) over (4.9.2-10) ...
dpkg: error processing archive /home/ox/Downloads/debian-jessie-backports/mirror/ftp.hosteurope.de/mirror/ftp.debian.org/debian-security/pool/updates/main/g/gcc-4.9/gcc-4.9_4.9.2-10+deb8u2_amd64.deb (--unpack):
unable to install new version of `/usr/bin/gcc-ranlib-4.9': Device or resource busy
Preparing to unpack .../cpp-4.9_4.9.2-10+deb8u2_amd64.deb ...
Unpacking cpp-4.9 (4.9.2-10+deb8u2) over (4.9.2-10) ...
dpkg: error processing archive /home/ox/Downloads/debian-jessie-backports/mirror/ftp.hosteurope.de/mirror/ftp.debian.org/debian-security/pool/updates/main/g/gcc-4.9/cpp-4.9_4.9.2-10+deb8u2_amd64.deb (--unpack):
unable to install new version of `/usr/bin/cpp-4.9': Device or resource busy
Processing triggers for man-db (2.7.0.2-5) ...
E: Sub-process /usr/bin/dpkg returned an error code (1)
Also versuchte ich spasseshalber die Datei /usr/bin/g++-4.9 nach /usr/bin/g++-4.9_ zu bewegen, vieleicht liegt es ja daran.
# mv -i /usr/bin/g++-4.9 /usr/bin/g++-4.9_
Und irgendwie kam hier wieder "Device or resource busy", womit ich endlich den Verursacher des Problems ausfindig gemacht hatte.
Da die Datei sich nicht wegbewegen liess, liegt die Vermutung nahe, dass sie auch nicht überschreibbar gewesen sein muss.
Nach einem Neustart des Systems, liess sich die Operation per apt ordnungsgemäß durchführen.
Dennoch bleibt die Frage: wie kam dieser Zustand zustande?
Und wieso kann dpkg und apt nicht einfach mal vernünftige Fehlermeldungen produzieren?
Gruß,
weedy