Jak správně nainstalovat novější verzi balíku do Ubuntu 14.04 LTS/Mint 17.x ap.

Pokud používáte LTS (long-term-support) verze Ubuntu Linuxu (12.04, 14.04) nebo Linux Mint 13 a 17.0-17.3, tak se možná setkáváte s tím, že některý balík potřebujete v novější verzi, než je k dispozici v repozitáři vaší verze systému. Způsobů, jak si s tím poradit je víc, buď aktualizovat celý operační systém, v Ubuntu je případně řada balíků k dispozici přes PPA repozitáře, některé balíky v deb formátu nabízejí přímo vývojáři, ale pak je i možnost využít zdrojového apt-get repozitáře z novější verze Ubuntu. Pozor, jedná se o něco jiného, než si natvrdo stáhnout již zkompilovanou (binární) verzi balíku z novější verze distribuce, což vřele NEdoporučuji (a taky to skoro nikdy nefunguje kvůli vazbě na jiné verze klíčových systémových knihoven).

Pro ukázku zde uvedu příklad balíku smartmontools obsahující nástroj smartctl, sloužící k zjišťování SMART hodnot disků a SSD a spouštění self-testů. Tento nástroj pak používá i grafická nadstavba gsmartcontrol.

V Linux Mint 17.3, postaveném na Ubuntu 14.04 LTS, existuje verze 6.2 někdy z roku 2013, která nepodporuje názvy řady hodnot vyskytujících se u SSD, a zejména má velký problém s (ne)podporou SMARTu vůbec u řady USB HDD boxů a externích disků.

Novější smartmontools 6.3 v Ubuntu 15.10 a 6.4 z chystaného Ubuntu 16.04 řadu problémů řeší, v mém případě vlastně všechny: jsem schopen přečíst SMART u všech externích USB disků, co mám, a z neznámých atributů u SSD Crucial, které používám, se staly známé včetně popisků.

Nejdřív proč nepoužívat zkompilované binární verze deb balíčků pro novější verze Ubuntu: rozbije to celý systém, vznikne spousta nevyřešených závislostí, a při přidání repozitáře nové verze Ubuntu to zase bude chtít aktualizovat úplně celý systém. Nové verze balíků jsou kompilované s vazbou na nové verze systémových knihoven, počínaje glibc6, na které stojí skoro celý systém :-)

Pokud chceme novou verzi balíku, musíme ji mít zkompilovanou pro naši verzi knihoven přítomných v současném systému. Některé balíky takto zkompilované jsou přítomné v „backport“ repozitáři, který lze použít, pokud náš balík v tomto repozitáři je. Pro smartmontools tomu tak není a tak zbývá možnost si novou verzi zkompilovat.

K tomu je nejvhodnější použít zdrojový balík z novější verze Ubuntu, který obsahuje všechny instrukce pro automatické zkompilování a vytvoření správného deb balíku pro instalaci. Do seznamu repozitářů apt jsem přidal řádek

deb-src http://ftp.cvut.cz/ubuntu xenial main restricted universe multiverse

tedy využil jsem rovnou místního zrcadla balíků na ČVUT, z chystané distribuce Ubuntu 16.04 Xenial Xerus. Důležité je to, aby se jednalo o řádek začínající deb-src, a nikoli deb, jinak bychom přidávali binární, již zkompilované balíky!

Následuje aktualizace seznamu balíků a stažení závislostí pro zkompilování dané verze balíku:

sudo apt-get update && sudo apt-get build-dep smartmontools/xenial

Teď už stačí stáhnout zdrojový balík a ten zkompilovat do deb balíku kompatibilního s naší distribucí:

sudo apt-get -b source smartmontools/xenial

Vznikl nám tím binární deb soubor, který můžeme nainstalovat a tím naši zastaralou verzi smartmontools aktualizovat (přesné jméno souboru se může lišit, klávesou Tab lze zpravidla nechat název v terminálu dokončit):

sudo dpkg -i ./smartmontools_6.4+svn4214-1_amd64.deb

Pokud by náhodou ještě vznikly nedořešené závislosti, mělo by je opravit

sudo apt-get -f install

Původní verze smartctl:

smartctl 6.2 2013-07-26 r3841 [x86_64-linux-4.2.0-25-generic] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

Nová verze smartctl:

smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.2.0-25-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

Tohle je externí USB 3.0 750 GB disk ADATA Classic CH11, který se u staré verze smartmontools představil jen jako „CH11“ a SMART vůbec nedokázal zobrazit, u té nové už vše funguje, tak jak má (až na chybné zobrazení kapacity grafickou nadstavbou gsmartcontrol, kde jsou bajty místo gigabajtů), tedy vidíme, že uvnitř je disk od Toshiby:

gmartcontrol64-usbdisk

 

Upozornění: Nedoporučuji tohle dělat u serverů, přístupných z internetu a balíků, kde reálně hrozí bezpečnostní chyby, zejména pokud takový balík nabízí nějakou síťovou službu – takto aktualizovaný balík bude mít neustále novější verzi, než případné bezpečnostní aktualizace původního balíku pro naši verzi systému, a ty by se tak už automaticky nikdy nenainstalovaly. Rovněž se automaticky nebudou stahovat, kompilovat a instalovat nové verze zdrojového balíku z novější verze distribuce.

Autor

Martin

Pracuji jako ajťák a grafik na volné noze, zejména ale pro brněnskou firmičku vyrábějící ekodrogerii. Dále působím v brněnském systému místní směny Rozleťse, Českém zahrádkářském svazu, České psychedelické společnosti, spolku Archetypal a Mezinárodní komunitě dzogčhenu. Asi mě baví kumulovat různé funkce a přidávat si spoustu práce. Lidi o mě říkají, že jsem multifunkční, což je asi trochu pravda :-)

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *