Dpkg

From EIK wiki

Sissejuhatus

Pakihaldussüsteem (ehk package management system, PMS) on kogum tarkvara tööriistu, et automatiseerida pakkide (programm) paigaldamist, uuendamist, konfigureerimist ning eemaldamist. Pakid sisaldavad näiteks metadata't, nagu näiteks paki nimi, kirjeldus, versioon ja palju muud. Kõik Linuxil ja Unixil baseeruvad operatsioonisüsteemid sisaldavad tavaliselt sadu kui mitte tuhandeid tarkvara pakke.

Mis on dpkg?

Dpkg on pakihaldussüsteem Debianil baseeruvatele süsteemidele (näiteks ubuntu, knoppix, collax, damn small linux, linex jne), kaasaarvatud Debian. Dpkg kasutatakse .deb pakkide installeerimiseks, eemaldamiseks, pakkide koostamiseks ning muuks vajalikuks. Võrreldes teiste pakihaldustööristadega ei tõmba dpkg pakke alla vaid töötleb neid lokaalselt. Programm on kasutatav ainult käsureal kuid sellele arendatakse ka graafilist kasutajaliidest milleks on gdeb.

On olemas kahte tüüpi Debiani (.deb) pakette:

Binaarpaketid, milles sisalduvad käivitusfailidi, konfiguratsioonifailid, juhendid, autoriõigusi ja muud informatsiooni. Binaarpaketid on ära tuntavad faililaienduse poolest, milleks on .deb. Deb pakette paigaldatakse Debiani paketihaldustarkvara dpkg vahendusel. Lisaks saab ka seda teha graafilise liidese läbi nagu näiteks Aptitude. Lühend deb pärineb Debian'ist, mis omakorda pärineb Ian Murdocki eks-naise nimest Debra.

Paketid, milles on lähtekoode sisaldavad DSC failid, mis kirjeldab paketi sisemust ja sisaldab algseid, muutmata lähtefaile (laiend tar.gz). Lähtekoddide lahtipakkimiseks kasutatakse dpkg-source nimelist programmi, mida tavaliselt kasutatakse läbi apt-get käsu.

Sõltuvused

Debiani pakettidel on erinevaid sõltuvuste vorme:

„Depends“ mille puhul paketi paigaldus ja töö sõltub otseselt sõltuvast paketist ning ilma selleta pakett ei paigaldu.

„Recommends“ puhul on küll järgneb pakett soovitatud aga sellest on võimalik kasutajal keelduda.

„Suggest“ puhul sisaldab pakett esmasega seotud pakette, mis tihti sooduatavad esimese paketi tööd.

„Conflicts“ puhul ei paigdaldata esimest paketti, kui teine pakett on juba paigaldatud.

„Replaces“ korral, paigaldatud pakett asendatakse uuega. Kõik Debiani paketid sisaldavad prioriteedi märget, mis aitab paketi halduritel pakette grupeerida.


Kasutatavad priotiteedid on järgmised:

„Required“ ehk paketid, mida on vaja süsteemi normaalseks tööks ning ka tööriistu, mida on vaja süsteemivigade eemaldamiseks. Antud pakette ei tohiks masinast eemaldada.

„Important“ ehk tähtsad paketid, mis on vajalikud igal Unixi-laadses süsteemis.

„Standard“ ehk tavapärased, süsteemi toimimiseks vajalikud paketid. Näiteks veebilehitsemiseks, failide laadimiseks ning e-maili saatmiseks.

„Optional“ ehk valikulised paketid, mis ei ole vajalikud süsteemi toimimiseks ega ka standartseteks tegevusteks.

„Extra“ ehk lisapaketid, mis võivad minna vastuollu tähtsamate pakettidega. Üldjuhul on need paketid vajalikud siis, kui kasutaja tõesti teab, milleks need on vajalikud.

Näited käskudest

  • Paki paigaldamine.
dpkg –i pakinimi.deb
  • Paki eemaldamine.

Eemaldamine nii, et konfiguratsiooni failid jäävad alles.

dpkg –r pakinimi.deb

Eemaldamine nii, et konfiguratsiooni failid EI jää alles.

dpkg –P pakinimi.deb

NB! Enamjaolt ei soovitata eemaldada pakke kasutades dpkg programmi. Kuna näiteks kui eemaldada mõni pakk kasutades käsku dpkg -r, eemaldatakse küll pakk kuid programmid mis on sellest pakist sõltuvad jäävad alles ja ei pruugi hiljem korrektselt töötada.

  • Paki uuendamine.
dpkg –i pakinimi.deb
  • Kõikide paigaldatud pakkide näitamine.
dpkg –l
  • Paki info.

Kindla paki versioon ja lühike kirjeldus.

dpkg –l pakinimi.deb

Kindla paki täpne kirjeldus (arhitektuur, suurus jne).

dpkg -p pakinimi.deb
  • Näita paigaldatud pakis olevaid faile.
dpkg -L pakinimi.deb
  • Kui on vaja teada milline pakk mingi faili tekitas (näiteks /etc kaustas olev host.conf fail).
dpkg -S /etc/host.conf

Tulemus: base-files: /etc/host.conf, mis tähendab, et fail /etc/host.conf kuulub pakile base-files.


Kasutatud kirjandus

1. http://www.debianadmin.com/manpages/dpkgmanpage.htm
2. https://help.ubuntu.com/10.04/serverguide/C/dpkg.html
3. http://nixdoc.net/man-pages/Linux/dpkg-source.1.html
4. http://estobuntu.itcollege.ee/trac/estobuntu/wiki/debianipakett
5. http://www.debian.org/doc/FAQ/ch-pkgtools.en.html
6. http://en.wikipedia.org/wiki/Dpkg
7. http://en.wikipedia.org/wiki/Deb_(file_format)
8. http://www.cyberciti.biz/howto/question/linux/dpkg-cheat-sheet.php

Autor

Andres Sumin, A22
Täiendab Ranner Selge - ekstern (2015/2016)