Debiani paki loomine: Difference between revisions
No edit summary |
|||
Line 139: | Line 139: | ||
==Paki kokkupanemine ja kasutamine== | ==Paki kokkupanemine ja kasutamine== | ||
Siin on juhend, kuidas kokku panna oma, väike ja lihtne Debiani pakk. | |||
====Nõudmised==== | |||
# Debiani süsteemi, mille abil paki luua ning testida. | |||
# Mingeid faile, mida paki sisse panna. | |||
# Lisaks on vajalikud mõned pakid, mis on vajalikud oma Debiani paki valmistamiseks. Tavaliselt on need pakid vaikimisi juba paigaldatud, sellepärast, et dpkg, gcc, make jne. on vajalikud ka teisteks asjadeks. Samas mõned paketid, nagu näiteks dpkg-dev ning build-essential | |||
There are several packages that you'll need to have installed to build packages on a Debian system. Most of those packages will likely be installed by default, since you'll need dpkg, gcc, make, and so forth on most systems anyway. You will need the build-essential package and dpkg-dev package as well, which may or may not already be installed on your system. | |||
1. A simple package | |||
A debian package is basically a tar archive, and the essense of creating a debian package is that you | |||
create a directory structure in a directory called "debian" | |||
you populate the subdirectories of "debian" with files (binaries, configuration files, installation scripts, ...) | |||
add some 'control' files that contain information about the package itself | |||
pack this "debian" directory in an "archive" ; the deb package | |||
1.1. the "debian" directory | |||
create a directory, named "debian" in an appropriate location, eg your in home directory | |||
inside this "debian" directory, create a directorie called "DEBIAN" : This is called the "controll area" and will contain "controll files", files that contain information about the package itself | |||
Then, think of "debian" directory as the root of the filesystem your package will be installed on, and create subdirectories acoordingly. So, id you have a package that will be installed in /usr/sbin, create a directory debian/usr/sbin | |||
1.2. put the files in the appropriate directories under /debian. | |||
eg if your package should install a shell script in /usr.bin, copy myprogram.sh to .../debian/usr/bin/myprogram.sh | |||
1.3. create a control file in debian/DEBIAN. | |||
the file itself is called 'control', and contains a discription of the package. | |||
1.4. build the package | |||
to build the package, run dpkg-deb --build debian . | |||
Obviously, "debian" refers to your debian directory, so you need to run this from the parent directory of debian. The result is a package called "debian.deb", in your current directory. You'll want to rename it to myprogram-versionso.and.so.deb, and you kan install it with dpkg -i ./myprogram-versionso.and.so.deb . | |||
==Kasutatud kirjandus== | ==Kasutatud kirjandus== | ||
http://www.ibm.com/developerworks/linux/library/l-debpkg/index.html<br> | http://www.ibm.com/developerworks/linux/library/l-debpkg/index.html<br> |
Revision as of 09:52, 3 May 2011
Hetkel on artikkel on loomise protsessis, kuid olge mureta, 3. mai lõunaks on valmis.
Sissejuhatus
Debiani paki süsteem on üks elegantsemaid olemasolevaid meetodeid tarkvara paigaldamiseks, uuendamiseks ning eemaldamiseks.[1]
Eesmärk
Selle artikli eesmärgiks on anda inimestele tutvustav ülevaade, mis asi on Debiani pakk, millest see koosneb ning kuidas seda tehakse.
Eeldused
Kuna antud artikli puhul on tegemist tutvustava artikliga, siis mingeid erilisi oskusi ning teadmisi pole nõutud, kuid kasuks tuleb mingisugunegi kogemus Linuxi ning tolle käsureaga. Aga kui peaks jääma hätta, siis selle lingi all peaksid põhilisemad käsklused ilusasti olemas olema. Samuti ei tee paha mõne tekstiredaktori käsitluse oskus. Mõni neist on siin lingi all ära toodud.
Referaadi ülesehitus
Referaat koosneb kahest osast. Esimese osa hõlmab teooria poolt, kus räägitakse, mis asi on Debiani pakk ja millest ta koosneb.
Referaadi teine ,praktiline, pool sisaldab endas õpetust, kuidas üks lihtne Debiani pakett kokku panna.
Debiani pakk
Üldist
Debiani pakk ,lihtsalt öelduna, on failide kogum koos juhistega mis ütlevad, mida nende failidega teha. Pakk sisaldab tavaliselt programmi või programme, kuid mõnikord sisaldab see ainult dokumentatsiooni, kujundus elemente või siis teisi faile, mida on kergem pakina levitada.
Pakk sisaldab juhiseid, mis ütlevad, kus mingi fail peaks failisüsteemis olema, mis teekidest või programmidest paki sisu sõltuv on. Samuti sisaldab pakk ka juhiseid paigaldamiseks ja põhilisi seadistamise skripte. Tähele tuleks panna, et paljude pakkide puhul ei ole võimalik või ei soovitatav kasutada vaikimisi seadeid, mis asuvad konfuguratsiooni failides. Näiteks Apache paki puhul, on vajalik paigaldamise-järgne konfigureerimine.
Pakid sisaldavad tavaliselt eelkompileeritud tarkvara, aga samas võid sa pakina sisuna kasutada ka lähtekoodi. Mõned administraatorid võivad eelistada programmi paigaldada otse lähtekoodist, või siis sinu rakendus vms. vajab muudatusi, et ta kompileeruks. Ehk siis kokkuvõtvalt, kui sa levitad tarkvara, mis on vaba või kuulub open source license alla, saad sa levitada seda nii eelkompileeritud paketina kui ka lähtekoodi paketina.[2]
Metapakid
Metapakett on pakett, mis iseenesest midagi muud, peale kirjelduste ning sõltuvuste ei sisalda. Metapaketi paigaldamisel paigaldatakse kõik sõltuvused ja soovituslikud paketid, mis on võimalik paigaldada. Kui mõni sõltuv pakett repositooriumist puudub siis ei paigaldata ka metapaketti.[3]
Pakkide haldamine
Pakke haldab dpkg-nimeline programm, kuid tavaliselt kasutatakse seda läbi programmide apt/apitude 'i või Gdeb.
Debiani pakette on võimalik ka konventeerida teist tüüpi pakettideks ning vastupidi, kasutades selleks programmi nimega alien. Samuti on võimalik neid pakette teha otse, läbi lähtekoodi, selleks kasutatakse programmi Checkinstall või Debian Package Manager.
[4]
.deb laiend
.deb on laiendiks Debiani tarkvara paketi formaadile ning on kõige sagedamini kasutatavam laiend selliste binaar-pakettide puhul. Lühend deb tuleneb Debian-ist, mis omakorda on tulnud nimest Debra. Debra oli Debiani looja Ian Murdock'i tolleaegse tüdruksõbra ning (nüüdseks juba) eksabikaasa nimi. Debiani pakke kasutatakse ka teistes Debianil põhinevates distributsioonides, näiteks Ubuntu.
Mõned põhi Debiani pakid on olemas udeb -idena ("mikro debid") ning on kasutusel ainult Debiani paigaldamise algkäivituse jooksul. Kuigi need failid kasutavad .udeb faililaiendust, on neil ,võrreldes tavaliste .deb laiendusega failidega, sama struktuur. Kuid samas, erinevalt .deb-ist, sisaldavad udeb pakid ainult vajalike faile. Ehk siis erinevus seisneb selles, et dokumentatsioonifailid tavaliselt välja jäetud, ning .udeb pakid on ei ole paigaldatatavad standartsele Debiani süsteemile.[5]
Mis osadest koosneb Debiani pakk
Peale selle, et sul on olemas hea ja geniaalne programm oma Debiani paki jaoks, on paki sisse vaja ka paari kindlat tüüpi faili. Nendele järgnev peatükk keskendubki.
Paketi kontroll fail
Paketi kontroll fail ehk Control file (ingl. k.) sisaldab informatsiooni paketi, selle looja, süsteemi arhitektuuri, ning kõige muu vajaliku kohta.[6]. Lisaks sisaldab kontroll fail endas infot ka paketi sõltuvustest (inglise keeles dependencies). Siinkohal on ära toodud üks näite kontroll fail:
Package: acme Version: 1.0 Section: web Priority: optional Architecture: all Essential: no Depends: libwww-perl, acme-base (>= 1.2) Pre-Depends: perl Recommends: mozilla | netscape Suggests: docbook Installed-Size: 1024 Maintainer: Joe Brockmeier <jzb@dissociatedpress.net> Conflicts: wile-e-coyote Replaces: sam-sheepdog Provides: acme Description: The description can contain free-form text describing the function of the program, what kind of features it has, and so on. . More descriptive text.
Enamik nendest väljadest on valikulised. Kui vajadust pole, ei pea sa kõiki, näites väljatoodud, välju oma paki kontroll faili lisama. Näiteks ei ole vajalik lisada "Source" (eesti keeles "allikas") välja, kui paki allikas on mitte saadaval. Kui sinu pakk ei satu konflikti teiste pakkidega, siis ei ole samuti vajalik lisada välja "Conflicts" (eesti keeles "konflikt") jne.
Iga kontroll faili esimene väli on "Package", kuhu pannakse kirja paki nimi. Järgmiseks väljaks on "Version", sinna kantakse paki versiooni number. Sa võid siin juures kasutada üks kõik mis nummerdamise viisi, kuid see ei tohi sisaldada sidekriipsu. Numbrid, mis jäävad sidekriipsu taha, loetakse Debiani revisjoni numbriks. Näiteks, kui programmi versiooni numbriks on pandud millegipärast 1.01-1, arvestatakse versiooni numbriks 1.01 , Debiani revisjoni numbriga 1. Arvatavasti, ei ole meie eesmärk luua kohe vigade parandusega paketti.
Välja "Maintainer" juurde tuleks kirjutada oma täisnimi või siis firma nimi ning e-posti aadress, mis asub "<>"- märkide vahel. Välja "Installed-Size" juurde tuleb lisada, kui palju paigaldatud pakett ruumi võtab.
[7]
Sõltuvustest
Debiani pakettidel on mitmeid eri sõltuvuste vorme :
• „Depends“ puhul paketi paigaldus ning 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 järgnev pakett esmasega seotud pakette, mis tihti sooduatavad esimese paketi tööd.
• „Conflicts“ puhul ei tööta paigdaldu esimene pakett, kui teine pakett on juba paigaldatud.
• „Replaces“ puhul juba paigaldatud pakett asendatakse uuega. Pakettide priotiteedid Kõik Debiani paketid sisaldavad prioriteedi märget, mis aitab paketi halduritel pakette grupeerida.
Kasutatavad priotiteedid on järgmised:
• „Required“ ehk paketid, mida vajatakse 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 igapäevased süsteemi toimimiseks vajalikud paketid veebilehitssmiseks, failide laadimiseks ning e-maili saatmiseks.
• „Optional“ ehk valikulised paketid, mis ei ole vajalikud süsteemi toimimiseks ning 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.
Paketi muudatuste fail
Paketi muudatuste fail ehk Changelog (ingl.k) on fail, mis sisaldab infot muutuste kohta, mis on antud paketiga toimunud. Iga uue suurma muutusega luuakse uus kirje, mis sisaldab versiooni muutusi, muutuste kirjeldust, muutjat ning ka aega, millal muutus toime pandi. Allpool on toodud näide "Estobuntu" paketi muudatuse failist:
Estobuntu-artwork-kde (10.05-1) lucid; urgency=low Added recommends: estobuntu-artwork-plymouth -- Muutja nimi <nimi@email> Sat, 01 May 2010 16.56.14 Estobuntu-artwork-kde (10.04-1) lucid; urgency=low Initial release -- Muutja nimi <nimi@email> Sun, 18 Apr, 2010 15.52.12
postinst ja prerm
Paki jaoks vajaminevate pakkide seas on veel paar skripti, mille süsteem paneb käima siis kui pakki paigaldatakse või eemaldatakse.
postinst
Postinst skirpt sisaldab endas juhiseid selle kohta, et mida peaks süsteem tegema peale paki paigaldamist.
prerm
Prerm skript sisaldab endas juhiseid selle kohta, et mida peab süsteem tegema enne paki eemaldamist.
NB! Mõlemad failid on vajalikud.
Paki kokkupanemine ja kasutamine
Siin on juhend, kuidas kokku panna oma, väike ja lihtne Debiani pakk.
Nõudmised
- Debiani süsteemi, mille abil paki luua ning testida.
- Mingeid faile, mida paki sisse panna.
- Lisaks on vajalikud mõned pakid, mis on vajalikud oma Debiani paki valmistamiseks. Tavaliselt on need pakid vaikimisi juba paigaldatud, sellepärast, et dpkg, gcc, make jne. on vajalikud ka teisteks asjadeks. Samas mõned paketid, nagu näiteks dpkg-dev ning build-essential
There are several packages that you'll need to have installed to build packages on a Debian system. Most of those packages will likely be installed by default, since you'll need dpkg, gcc, make, and so forth on most systems anyway. You will need the build-essential package and dpkg-dev package as well, which may or may not already be installed on your system.
1. A simple package
A debian package is basically a tar archive, and the essense of creating a debian package is that you
create a directory structure in a directory called "debian" you populate the subdirectories of "debian" with files (binaries, configuration files, installation scripts, ...) add some 'control' files that contain information about the package itself pack this "debian" directory in an "archive" ; the deb package
1.1. the "debian" directory
create a directory, named "debian" in an appropriate location, eg your in home directory
inside this "debian" directory, create a directorie called "DEBIAN" : This is called the "controll area" and will contain "controll files", files that contain information about the package itself
Then, think of "debian" directory as the root of the filesystem your package will be installed on, and create subdirectories acoordingly. So, id you have a package that will be installed in /usr/sbin, create a directory debian/usr/sbin 1.2. put the files in the appropriate directories under /debian.
eg if your package should install a shell script in /usr.bin, copy myprogram.sh to .../debian/usr/bin/myprogram.sh 1.3. create a control file in debian/DEBIAN.
the file itself is called 'control', and contains a discription of the package. 1.4. build the package
to build the package, run dpkg-deb --build debian . Obviously, "debian" refers to your debian directory, so you need to run this from the parent directory of debian. The result is a package called "debian.deb", in your current directory. You'll want to rename it to myprogram-versionso.and.so.deb, and you kan install it with dpkg -i ./myprogram-versionso.and.so.deb .
Kasutatud kirjandus
http://www.ibm.com/developerworks/linux/library/l-debpkg/index.html
http://www.debian.org/doc/debian-policy/ap-pkg-binarypkg.html
http://estobuntu.itcollege.ee/trac/estobuntu/wiki/debianipakett
http://en.wikipedia.org/wiki/Deb_%28file_format%29
http://tldp.org/HOWTO/html_single/Debian-Binary-Package-Building-HOWTO/
http://download1.parallels.com/Plesk/Plesk8.2/Doc/plesk-8.2-unix-skin-guide/38251.htm#o38273
Autor
Oliver Soom
A22
osoom äti-märk itcollege.ee