Smart Package Manager

Balíčkovacích programov v Linuxe je už dosť veľký počet, ale zrejme stále ich nie je dostatočné množstvo. Najnovším objavom je program SMART, aj keď ho zrejme poniektorí aj používate, pre mňa ako používateľa Mandrivy je to novinka. Rád objavujem nové veci a práve preto som si nenechal ujsť možnosť vyskúšať si tento sľubný program.

Úvod

Prečo je tento program hodný minimálne článku? Pokiaľ ste ho niekedy videli, použili alebo ho používate, určite mi dáte za pravdu, že je vhodný nielen pre Mandrivu, ale je vhodný aj pre ostatné distribúcie. Prečo? SMART pracuje, ako inak, s RPM balíkmi, či už sú to Red Hat balíky, alebo mdv (mdk) balíky od Mandrivy, no samozrejmosťou sú aj DEB balíčky pre debianovské distribúcie, ale aj s balíkmi určenými pre Slackware. V tomto článku si ukážeme, ako sa s nimi vysporiadať.

Domovská stránka tohto projektu je labix.org/smart. Na tejto stránke nájdete nielen zdrojové kódy, ale aj binárne balíčky pre Mandrivu, Fedoru, Debian, SuSE, PCLinuxOS, Slamd64 či Ccux Linux. Je distribuovaný pod GNU GPL licenciou, čo umožňuje jeho široké nasadenie. Smutné však je, že na stránke k nemu doteraz neexistuje dokumentácia. Možno výber názvu tohto projektu nebol práve najšťastnejší, ale Google sa ho po tomto článku hádam aj naučí a zaradí ho hlbšie do svojich odkazov ;-).

Jeho používanie vôbec nie je zložité, kto niekedy používal Synaptic na Debiane, pravdepodobne ho neprekvapí jeho výzor. V grafickom režime sú tieto dva programy veľmi podobné. Rozdiel je azda v shelli. SMART je rovnako použiteľný v grafike ako aj v príkazovom riadku. Teda ani tí, ktorí sú zástancami shellu, nie sú ukrátení.

Bolo by zrejme načase predstaviť si ho trochu bližšie. Spúšťa sa, na prekvapenie mnohých, príkazom smart :-). Celá syntax je:

# smart príkaz [voľba] [argument]

Pre nováčikov v Linuxe je "okienko" asi to najdôležitejšie. Spustíme ho príkazom:

# smart --gui

Ak ho spustíme na pozadí, teda za --gui dáme znak &, okienko sa nám oddelí od shellu ;-).

Myslím si, že tým som vyčerpal možnosti grafickej časti, veď každý, kto vie čítať a klikať, si veľmi jednoducho vyberie svoj balík, ktorý chce nainštalovať. Môžete sa v ňom prehrabávať medzi softvérom alebo vyhľadať len vami požadovaný balík.

Pre fajnšmekrov sú ale dôležitejšie príkazy. Rovnako ako GUI, je možné si spustiť jeho shell verziu:

# smart --shell

Okrem názvu a verzie programu nás privíta veľmi jednoducho a to:

smart>

Viac získame akurát len ak zadáme príkaz help.

smart> help
Documented commands (type help <topic>):

----------------------------------------
EOF download flag install query reinstall shell undo

check exit help keep quit remove stats update

commit fix info ls redo search status upgrade

smart>

Takýto spôsob používania príliš neobľubujem, skôr dávam prednosť samostatným príkazom. Nedostatok informácií v man (neboli nainštalované, alebo manuálové stránky neexistujú vôbec) je nahradený argumentom -h alebo --help. Ak teda neviete, ako použiť daný argument, stačí k nemu napísať parameter -h a dostanete veľmi pekné a výstižné "howto" aj s príkladmi použitia. Pre príklad uvádzam príkaz update:

[root@kraksna otrek]# smart update -h
Usage: smart update [options] [channelalias] .

This command will update the known information about the
given channels. If no channels are given, all channels
which are not disabled or setup for manual updates will
be updated.

Options:
-h, --help Show this help message and exit
--after=MIN Only update if the last successful update happened before the
given delay

Examples:
smart update
smart update mychannel
smart update mychannel1 mychannel2

[root@kraksna otrek]#

Základ teda máme za sebou, pomoc si už vieme bez problémov vyvolať ;-). Tu by teoreticky náš článok mohol skončiť, ale ukážeme si samozrejme aj viac.

V prvom rade by sme si mali pridať zdroje, veď bez zdrojov je celý program nanič. Po nainštalovaní SMART-u máme pridané, nazvime to, štandardné zdroje. Jednak je to databáza balíkov, ktoré máme nainštalované a aj zdroje, pokiaľ máme Mandrivu, z cooker vetvy. Tieto zdroje si môžeme zmeniť, prípadne pridať naše vlastné. Ich sumár dostaneme nasledovne:

# smart channel --show

Získame tak kompletný zoznam zdrojov. Pokiaľ chceme pridať niektorý náš zdroj, na to máme príkaz:

#smart channel --add nazov name=.Cooker contrib. type=urpmi baseurl=ftp://url hdlurl=ftp://url/hdlist.cz

Dôležitou informáciou je názov. Ak chceme zmazať náš zdroj, potrebný je na to práve tento údaj. Pre rôzne distribúcie sa bude líšiť pridávanie zdrojov práve v zadaní typu. Pre Mandrivu je to samozrejme typ urpmi. V tabuľke sú k nahliadnutiu rôzne typy, ktoré je možné použiť:

Typ

Popis

Apt-debAPT-DEB Repository
Apt-rpmAPT-RPM Repository
Deb-dirDEB Repository
Deb-sysDPKG Installed Repository
mirrorsMirror Information
Red-carpetRed Carpet Channel
Rpm-dirRPM Directory
Rpm-hdlRPM Header List
Rpm-mdRPM Meta Data
Rpm-sysRPM Installed Packages
Slack-siteSlackware Repository
Slack-sysSlackware Installed Packages
Up2date-mirrorsMirror Information
urpmiURPMI Repository


Čo môžeme robiť s našimi zdrojmi?

--remove
--edit
-y, --yes
--enable
--disable


Posledné dve možnosti ma osobne veľmi zaujali. Ak chcete aktualizovať iba niektorý zdroj, môžete všetky ostatné vypnúť. Toto môže byť užitočné pri testovaní. Na druhej strane, ak chcete byť ušetrený zbytočných otázok, neváhajte a pripíšte -y a môžete si v kľude odísť od klávesnice, smart si na všetko odpovie „yes“.

Ak už máme pridané zdroje, je načase inštalovať. Najskôr však musíme aktualizovať našu databázu.

smart update

Táto časť chvíľu trvá. Hneď po aktualizácii zdrojov je možné inštalovať jednotlivé aplikácie. Ak pridáme na koniec názov nášho zdroja, potom zaktualizujeme iba nami zadaný zdroj. SMART naraz vytvára dve spojenia na ftp server. Preto sa vám môže stať, že update skončí s chybou, ktorú je možné vidieť na obrázku. Pokiaľ sa teda stretnete s touto chybou, stačí iba spustiť update ešte raz a zdroje sa vám bez problémov zaktualizujú. Toto je ale nepraktické, ak napríklad používate cron na aktualizáciu. Výhoda dvoch konekcií je pri sťahovaní balíkov.

smart install pkgname

Stačí nám vedieť názov balíka a inštalovať. Samozrejmosťou je ponuka inštalácie závislostí, čo určite poteší nejedného nováčika v Linuxe. Ak nevieme názov žiadaného balíka, môžeme použiť aj zástupné znaky:

smart install '*kgna*'

Ak máte daný balík stiahnutý, stačí po install zadať k nemu cestu, prípadne zadať URL k danému balíku. Okrem inštalovania SMART dokáže aj preinštalovať náš program:

smart reinstall pkgname

Upgrade systému je hneď po update možný jediným príkazom:

smart upgrade

Upgrade len jedného balíka prebehne, ak pridáme na koniec jeho názov. Celý upgrade aj update môžeme urobiť v jednom kroku, ak pridáme --update. Niekto by chcel aktualizácie iba stiahnuť a nainštalovať si ich ručne. Tomu stačí pridať --download a balíky sa iba stiahnu a je už len a len na ňom, ktorý si nainštaluje. K tomu určite využije predchádzajúcu časť install.

Ak nám niektorý balík nesedí a chceme ho odstrániť, jednoducho ho zmažeme.

smart remove pkgname

Bez informácií sme asi všetci stratení, preto tu je aj možnosť query a search. Ich rôzne možnosti by som rád ponechal na každého z vás.

Záver

Na záver by som zhodnotil program SMART. Jeho možnosti či už v grafickej podobe alebo v shell podobe sú veľmi veľké. Vyzdvihol by som jeho intuitívne príkazy, ktoré naozaj kopírujú práve to, čo chceme od daného programu. Chýba však k nemu dokumentácia na internete, ktorá predpokladám, že sa čoskoro objaví. Pri dostatočnom vybavení help-u je určite ten najlepší nástroj. Ak ešte priložíme množstvo distribúcií, pre ktoré je tento nástroj určený, potom má svoju budúcnosť zaistenú.

    • Apt smarter than smart? 23.10.2006 | 17:26
      luzr   Návštevník
      Z clanku vyplyva, ze smart oproti APT neponuka nic navyse - neviem si predstavit co by aj mohol :) Takze na debiane a buntu klonoch je k nicomu. Slackwarovsky slakpkg je s nim na jednej urovni a swaret ho prevysuje. Takze na slackware je tiez k nicomu. Predpokladam, ze si najde priaznivcov na rpm-based distrach, ktorych zarucene musi oslnit lebo nepoznaju apt :) Ak si ho adoptuje niektore vacsie distro mohol by mat zaujimavu buducnost. Inak proti nemu nemam nic.. Podporuje moznost volby a to je dobre.
    • Smart 24.10.2006 | 00:07
      Avatar Pavel Ubuntu Mate, Android  Používateľ
      O Smarte bolo už dávnejšie popísané na Suseportáli. Je to určite dobrý "správca" balíkov (vyskúšal som ho), ale napriek tomu používam v Ubuntu aj v SuSE Apt (GUI Synaptic, v SuSE KDE Kynaptic) a som spokojný :-)
      Jabber ID: dumaru79@jabbim.com
    • Smart 24.10.2006 | 19:27
      Avatar Marián Sova Ubuntu 10.10  Administrátor
      Na SuSe používam smart. Oproti YaSTu je omnoho rýchlejší. Hlavne, keď je v YaSTe veľa repozitárov. To je koniec. So smartom so veľmi spokojný. Ale koľko ľudí, toľko názorov :-)
      Čo ťa nezabije, to ťa posilní | Leták na propagáciu jabbera v pdf | www.mikroprocesory.sk
    • smart-apt 25.11.2006 | 11:14
      mach   Návštevník
      Vážení, jsem mandrákista (tedy rpm) a tato distribce má dosti kvalitní urpmi. Přesto frantíci šáhli po smartu. Z důvodů proč jsem se dozvěděl, že má mít jeden z nejlepších analyzátorů závislostí a možnost "nažrat" data z různých zdrojů. Tedy i začátečník může kombinovat .deb pakáže spolu s .rpm (a není pravda, že klasické .rpm distribuce nemají apt. Jenom si ho musí stáhnout)