Při posledním pokusu o aktualizaci Lubuntu přes správce aktualizací jsem obdržel hlášku "Balíčkovací systém je porušen", že mám zkusit příkaz:
apt-get -f install
Když jsem to udělal, proces selhal s pěknou chybovou hláškou, mezi níž jsem četl i "No apport report written because the error message indicates a disk full error". Dlouho jsem hledal, co se děje, celkově jsem tímto strávil asi dvě hodiny, než jsem se dobral k podstatě problému. Nebyl plný disk, ale počet tzv. inodes (o tom jsem slyšel prvně - co je inode?), to jsem zjistil příkazem:
df -i
Objevil jsem, že využití systémového disku bylo 100%. (pozor - neplést s místem na disku, které zobrazíte příkazem "df -h" a které vidíte i v systému jako "volné místo", tohle je něco jiného).
Problém způsobovaly nepromazané staré instalační balíčky systému v "/usr/src/". Jeden bral téměř 5% inodes.
Stačilo tedy dát (dle [3]):
cd /usr/src /usr/src$ ls df -i
a zjistil jsem, že jsou tam řádově stovky tisíc inodů. Z příkazu "ls" jsem našel nejstarší jádro (u mě to bylo linux-headers-3.2.0-29) a smazal jej příkazem:
sudo rm -rf /usr/src/linux-headers-3.2.0-29{,-generic}
Tím se uvolnilo asi 5% inodes, raději jsem tedy smazal starších jader více.
Poté už příkaz:
sudo apt-get -f install
opravil chybný balíčkovací systém a bylo po problému.
Dále příkaz pro vymazání starých jader:
sudo apt-get autoremove
Instalace aktualizací pak už normálně šlape.
[1] http://forum.ubuntu.cz/index.php?topic=64599.0 - česky, balíčkovací systém je porušen.
[2] http://askubuntu.com/questions/98752/broken-package-after-update-linux-headers-error-broken-count-0 - anglicky i s příkazy, které ovšem nepomohly, ale jsou užitečné.
[3] http://askubuntu.com/questions/361529/usr-src-is-eating-up-all-inodes - vyřešilo problém.
Tento web jsem zakládal na střední, v roce 2008. Je zde hlavně archiv mé tvorby.
Aktuální věci publikuji kvůli úspoře času na Twitter.
Honza
"Čas je materiál, ze kterého se vyrábí život."