Programinės įrangos diegimas bei tvarkymas Debian GNU/Linux pagrindu padarytose distribucijose

Autorius: Mantas Kriaučiūnas (mantas@akl.lt)
Reikalavimai: norėti suprasti, kaip naudotis Debian GNU/Linux paketų tvarkymo sistema (reikės naudotis apt, dpkg ar eiliniam vartotojui patogesniais paketų menedžeriais: aptitude, deity, synaptic, smart package manager, red-carpet)

Dirbant su bet kokia operacine sistema dažnai prireikia kažkokių naujų programų, šriftų, draiverių ar kitokių dalykėlių, kurių kažkodėl nėra tavojoje sistemoje :)
Jeigu jūs jau susidūrėte su 'šviežių baitukų poreikiu' debian operacinėje sistemoje - vadinasi šis straipsnelis kaip tik jums. Jį perskaitę sužinosite kaip jį korektiškai įdiegti programas, šriftus ir kitus įdomius dalykus Debian GNU/Linux pagrindu padarytose OS, pvz Baltix ar Ubuntu.

Debian'e, kaip ir daugumoje Linux distribucijų yra naudojama paketų valdymo sistema - t.y. programos, šriftai, dokumentacija ir t.t. sudedami į specialius archyvus, kurie vadinami paketais. Debian paketų bylų galūnė yra .deb. Viena programa gali būti išskaidyta į kelis paketus: pvz tekstų redaktorius AbiWord susideda iš paketų abiword-common, abiword-doc, abiword-gnome, abiword-gtk, abiword-plugins bei xfonts-abi.

Paketų valdymo sistema susideda iš:
1. Duomenų bazės, kurioje įrašyta kokie paketai yra įdiegti tavo į operacinę sistemą, kokios bylos kokiems paketams priklauso, taip pat priklausomybės tarp paketų (kad veiktų vienos programos joms reikia kitų programų, šriftų ir t.t., pvz abiword-gnome paketui reikalingas abiword-common paketas)
2. Įrankių (programų), kurių pagalba galima įdiegti, išmesti bei konfigūruoti paketus.

Tai tiek teorijos, o dabar norėčiau perspėti nekantriuosius:
Diegti programinę įrangą ne iš specialiai debian'ui sukurtų paketų (ne iš paketo_vardas.deb) į /usr ar kitus sisteminius katalogus (išskyrus /usr/local) yra tikra nesamonė, kadangi tuomet paketų valdymo sistema iš dalies praranda prasmę, o ir Debian GNU/Linux pagrindu padaryta OS gali pasidaryti nestabili. Tas pats galioja ir bylų, esančių sisteminiuose kataloguose trynimui ar modifikavimui.

Paketams įdiegti, išmesti bei peržiūrėti galima naudoti grafinėje bei tekstinėje aplinkoje veikiančius įrankius - paketų menedžerius arba specialias komandas. Paprasčiausia ir daugeliu atveju patogiausia yra naudotis paketų menedžeriais. Vienas iš populiariausių paketų menedžerių yra Synaptic:

packagemanager-synaptic

Jo pagalba galima ne tik įdiegti ar išmesti paketus, bet ir keisti paketų saugyklų (repozitorijų) sąrašą, konfigūruoti paketus, pažiūrėti pakeitimų žurnalą ir t.t.

Paketams įdiegti, išmesti bei peržiūrėti naudojama dpkg komanda. Pvz.: jei norite įdiegti paketą etherconf_1.10_all.deb rašykite:

dpkg -i etherconf_1.10_all.deb

Jei norite išmesti - rašykite:

dpkg -r etherconf

Kitose linux distribucijose dažnai yra naudojama rpm komanda, kuri yra praktiškai tas pats, kad ir dpkg komanda Debian GNU/Linux pagrindu padarytose distribucijose.
Paketus konfigūruoti galima su dpkg-reconfigure komanda, pvz norėdami pakeisti tinklo parametrus rašykite:

dpkg-reconfigure etherconf

Paketas, kurį konfigūruojate turi būti jau įdiegtas į sistemą.

Dirbdami su dpkg pastebėsite, kad dažnai diegiant vieną paketą gaunate pranešimą, kad paketas negali būti įdiegtas, kadangi jam reikia kažkokio kito paketo. Tokiems ir kitokiems nepatogumams išspręsti buvo sukurti aukštesnio lygio paketų įrankiai - Advanced Package Tools (sutrumpintai APT). Jų pagalba programinės įrangos įdiegimas, išmetimas bei paieška žymiai pagreitėjo ir tapo labai paprasta. APT susideda iš dviejų dalių:

1. Duomenų bazės apie įdiegtus bei galimus įdiegti paketus (angliškai vadinama apt cache).
2. Įrankių (programų), kurių pagalba galima įdiegti, išmesti bei konfigūruoti prieinamų paketų duomenų bazę bei pačius paketus.

Duomenų bazė apie prieinamus įdiegti paketus formuojama iš taip vadinamų paketų saugyklų (šaltinių, angliškai packages sources), kurie yra surašomi į konfigūracinę bylą /etc/apt/sources.list. Pavyzdžiui stabilios Debian versijos paketų šaltinis (kitaip tariant - įrašas byloje /etc/apt/sources.list) iš iš lietuviško debian veidrodžio atrodo taip:

deb http://debian.balt.net/debian/ stable main contrib non-free

Stabilios (2005 metų 10 mėn.) Ubuntu versijos paketų šaltinis atrodo taip:

deb http://lt.archive.ubuntu.com/ubuntu breezy main restricted universe multiverse

Pradedantiesiems paketų šaltinius daug patogiau bus tvarkyti su atitinkamu įrankiu: apt-setup. Jį paleidę galėsite pridėti paketų šaltinius iš CD, interneto ar disko. Jei dirbate grafinėje aplinkoje - galite įsidiegti gtk-sources įrankį.
Pridėję jums reikalingus apt-šaltinius turite atnaujinti prieinamų paketų duomenų bazę, tai padaro komanda apt-get update.
. Paketams įdiegti naudojamos komanda: apt-get install paketo_vardas, o išmesti: apt-get remove paketo_vardas. Paketų paieškai naudokite komandą apt-cache search raktiniai žodžiai. Tarkim jūs norite įsidiegti kokią nors garso grojimo programą. Taigi - iš pradžių reikia susirasti:
apt-cache search audio player
įvykdę šią komandą gausite paketų sąrašą su aprašymais:
mp3blaster - Full-screen console mp3 and ogg vorbis player
mpg321 - A Free command-line mp3 player, compatible with mpg123
noatun-plugins - plugins for Noatun, the KDE media player
python-id3 - Python module for id3-tags manipulation
rawrec - Buffered raw audio recorder/player
rio500 - Diamond Rio500 digital audio player support
setcd - Control the behaviour of your cdrom device
smpeg-gtv - SMPEG GTK+ MPEG audio/video player
smpeg-plaympeg - SMPEG command line MPEG audio/video player
splay - Sound player for MPEG-1,2 layer 1,2,3
toolame - MPEG-1 layer 2 audio encoder
xmms - Versatile X audio player that looks like Winamp
Paskaičius rastų paketų aprašymus tereikia įdiegti jums patinkančią programą, pvz xmms: apt-get install xmms

Darbui su paketais yra sukurta keletas apt apvalkalų, kurie dar labiau pagreitina ir palengvina programų įdiegimą, suradimą ar išmetimą. Patogiausi iš jų yra aptitude (tekstinio režimo) bei stormpkg ir synaptic (dirba tik grafinėje aplinkoje).
Darbui su paketais tekstiniame režime rekomenduoju naudoti ne apt-get, o aptitude. Ją galima naudoti ne tik dialoginiame režime (jis įsijungia paleidus aptitude be jokių parametrų), bet ir kaip apt-get pakaitalą komandiniame režime - pvz.:
įdiegti paketą: aptitude install paketo_vardas
išmesti paketą: aptitude remove paketo_vardas
kitas komandinio režimo galimybes gausite parašę: aptitude --help

Taigi, surasti, įdiegti, bei išmesti programas jau mokame, beliko sužinoti kur rasti tuos paketų šaltinius, kuriuose yra naujos programos, šriftai, draiveriai ir t.t. arba blogiausiu atveju, kur rasti atskirus paketus. Ieškoti siūlyčiau pradėti tokiais metodais:

1. Visų pirma pažiūrėti ar reikalingos programinės įrangos nėra jūsų naudojamoje debian versijos (distribucijas) repositoriume. Pagrindinis debian repositoriumo puslapis yra http://packages.debian.org. Visų pirma siūlyčiau susirasti ar yra tenai kartais nėra reikiamos programinės įrangos. Ieškoti yra labai paprasta - tereikia įrašyti raktinį žodį (pvz jei reikia draiverių NVIDIA video kortai įrašykite žodį nvidia). Jei pas jus teisingai sukonfigūruoti apt šaltiniai - paieškai galite naudoti komandą apt-cache search arba apt apvalkalus - deity, stormpkg ir pan. Jei rasite reikiamą programinę įrangą, skirtą jūsų naudojamai debian versijai - puiku, tereikia pasinaudoti paketų įdiegimo įrankiais - dpkg (diegiant atskirus, diske esančius paketus) arba apt-get install (diegiant paketus iš paketų šaltinių).

2. Jei paketo nėra debian repositoriume, galima nueiti į apt-get.org (pagrindinis neoficialių debian paketų šaltinių puslapis) arba paprasčiausiai paieškoti paketų šiuose puslapiuose: www.debian.org, www.debianplannet.org, www.debianhelp.org, www.google.com ir t.t. ir paieškoti ar kartais ten nėra reikiamos programos (ar reikalingos programos versijos). Pvz naujos bandomosios Xfree86 versijas randasi http://people.debian.org/~branden/, ten yra ir nuoroda į naujausius XFree paketus stabiliai Debian versijai (pvz Potato (2.2) ar Woody (3.0)). Taip pat daug debian paketų galima rasti http://www.internatif.org/bortzmeyer/debian/apt-sources/.

3. Jei naudojame stable (ar kitą distribuciją, kurioje reikia daug ką atnaujinti, norint įdėti paketą iš unstable ar testing) ir norime įsidėti paketą (arba kažkokią ), kuris yra unstable ar testing tai atsisiunčiame paketo pirminius tekstus (sources) iš debian paketų repozitoriaus (apt-get source paketo_vardas) ir pasidarome iš jų deb paketą savo sistemai (dpkg-buildpackage):
a) į /etc/apt/sources.list įdedi reikiamos distr. (testing, unstable) deb-src šaltinį
b) apt-get update
c) apt-get build-dep paketo_vardas (ši komanda atsiunčia ir įdiegia visus paketus, kurių reikia pasirinkto paketo kompiliavimui. Jei ji dar nėra realizuota jūsų naudojamoje debian versijoje - praleisk ją, o paskui rankiniu būdu, su apt-get install ar pan. sudėk visus reikiamus devel paketus)
d) apt-get source paketo_vardas (gali panaudoti --build parametrą)
e) jei nenaudojai --build ankstesnėj komandoj padaryk: dpkg-source -x paketo_vardas.dsc (ši komanda išskleidžia atsiųstą pirminių tekstų (sources) archyvą ir pritaiko debian'o programuotojų padarytus pakeitimus, kurie būna byloje paketo_vardas.diff.gz. paketo_vardas.dsc atsiras einamajame kataloge po 'apt-get source' komandos )
cd paketo_vardas
dpkg-buildpackage -D -us -uc (ši komanda sukompiliuoja ir padaro deb paketus)
cd ..
f) valio, tu jau turi reikiamus deb paketus, skirtus tavo OS (įsitikinimui - komanda ls -la :)), gali daryti dpkg -i ir t.t.
Taip pat labai patogu yra naudotis apt-build programa.

4. Jei vistiek nerandate jums reikalingų programų (arba rastos paketų versijos yra per senos) - pažiūrėkite Experimental distribuciją - į /etc/apt/sources.lists įdėkite:

deb http://debian.balt.net/debian ../project/experimental main contrib non-free

(debian.balt.net galima pakeisti bet kuriuo kitu debian mirror, nes Experimental distribucija yra kiekviename debian veidrodyje, žr.:
http://www.debian.org/doc/manuals/quick-reference/ch-system.en.html#s-dirtree)
daugiau inf apie Experimental distribuciją rasite:
http://www.debian.org/doc/developers-reference/ch-resources.en.html#s4.7.4.2

5. Jei aukščiau pasiūlyti būdai netinka, tačiau paketą galima gauti RPM formatu, bandykite pasinaudoti alien programa. (konvertuoja tarp deb, rpm ir kitų formatų)

6. Žinoma, dar galima patiems kompiliuotis ar instaliuotis visokiu instalerių pagalba (kaip Windows OS), tačiau tik ne į tuos pačius katalogus, kur dedami failai iš paketų, o pvz į /usr/local arba /home. O jei programoms reikia kad pvz X'ai būtų /usr/X11R6 tai nepamirškime puikios Linux savybės - simbolinių nuorodų (symlink) ;)