Program za kreiranje deb paketa. Kreiranje RPM ili DEB paketa s Checkinstall na Linuxu

Dom / Operativni sistemi

deb datoteka je arhiva u formatu ar koji sadrži instalacione datoteke programe, informacije o programu, kao i skripte ( batch fajlovi), koji se izvodi prije i nakon instaliranja i deinstaliranja programa (prisustvo skripti nije obavezno - možda nisu dio paketa).

Format deb datoteke je opisan u man stranicama deb(5) - ova pomoć se prikazuje ako upišete man deb u terminal. Također postoji dosta stranica na Internetu koje sadrže ove informacije - samo potražite deb(5) da biste ih pronašli. Ovaj vodič nije uključen ovdje jer se službeni Debian vodič za programere, pomoć za format paketa (koji se u vrijeme pisanja ovog vodiča nalazi na http://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics). en.html) napisano je da se format paketa može mijenjati, te se stoga preporučuje korištenje dpkg-deb uslužnog programa za rad s njima. Pomoć u radu sa uslužnim programom dpkg-deb može se dobiti upisivanjem komande man dpkg-deb u terminal.

GUI-deb program radi tako što kreira direktorij koji sadrži potrebne podatke i pokreće program dpkg-deb, specificirajući ovaj direktorij i druge potrebne parametre.

Ispravan direktorij za dpkg-deb za kreiranje instalacionog paketa mora prvo sadržavati "DEBIAN" poddirektorij. Ovaj direktorij treba da sadrži sve podatke koji se ne kopiraju u sistem, već koriste direktno programi za rad sa paketima - informacije o paketu, skripte koje su izvedene prije i nakon instalacije itd. Bilo koje datoteke sadržane u DEBIAN direktoriju neće biti dodane u sistem datoteka računala na kojem je paket instaliran kada je paket instaliran.

Izvan "DEBIAN" direktorija sadrži one datoteke koje će biti kopirane u sistem datoteka računala na kojem će se paket instalirati. Datoteke se moraju nalaziti u direktorijima u koje će biti smješteni prilikom instaliranja paketa. To jest, unutar direktorija kreiranog za dpkg-deb, treba kreirati kopiju dijelova sistema datoteka koji su nam potrebni - kao da je ovaj direktorij njegov korijen ("/"). Odnosno, ako je, na primjer, ime direktorija na osnovu kojeg će se kreirati paket “~/TMP_DEBS/MyProgram”, a potrebno je da prilikom instalacije u sistem datoteka datoteka "MyProgram.png" je upisana u direktorij "/usr/share/pixmaps" - potrebno je kreirati direktorij "usr" u direktoriju "~/TMP_DEBS/MyProgram", u njemu - direktorij "share", unutar "share" - direktorij "pixmaps" ", i smjestite datoteku "MyProgram.png" u direktorij "pixmaps". Kao rezultat, puna putanja do datoteke će biti "~/TMP_DEBS/MyProgram/usr/share/pixmaps/MyProgram.png". Prilikom kreiranja paketa, dio direktorija "~/TMP_DEBS/MyProgram" će biti odsječen, a tokom instalacije datoteka "MyProgram.png" će završiti na željenoj adresi "/usr/share/pixmaps". Stoga se za svaku datoteku moraju kreirati potrebni direktoriji.

Nakon kreiranja direktorija, sve što ostaje je pokrenuti dpkg-deb, proslijeđujući potrebne parametre. Najpotrebniji dpkg-deb parametri za pravljenje paketa opisani su u odjeljku "Parametri komandne linije za uslužni program dpkg-deb". Ako nema grešaka u kontrolnoj datoteci, instalacioni paket će biti kreiran.

Napravite listu paketa:

$dpkg-scanpackages. /dev/null | gzip -9c > ./Packages.gz
Mogli bismo dobiti poruku poput:

Dpkg-scanpackages: upozorenje: Paketi u arhivi, ali nedostaju u datoteci za poništavanje: dpkg-scanpackages: upozorenje: fossil linux-headers-3.8.0-avl9-pae linux-image-3.8.0-avl9-pae pdfsam sublimetext virtualbox-4.2 xserver -xorg-input-wacom zotero dpkg-scanpackages: info: Napisao 8 unosa u izlaznu datoteku paketa.
Sada postoji 8 paketa u našem spremištu. Odlično, dodajmo naše spremište u fajl:

linija kao:

Deb file:///home/username/zips/virensdebianrepository ./
Sada morate ažurirati listu paketa kako bi bili dostupni za instalaciju:

To je to, sada možete instalirati, na primjer, svježe sastavljeni uređivač teksta Sublime Text 2 (tu su odlična uputstva) kao i uvijek: Sada, da biste instalirali SublimeText, samo uradite:
# apt-get install sublimetext

Čitanje liste paketa... Gotovo Izgradnja stabla zavisnosti Čitanje informacija o stanju... Gotovo Sljedeći NOVI paketi će biti instalirani: sublimetext 0 nadograđen, 1 novoinstaliran, 0 za uklanjanje i 245 nije nadograđen.

Potrebno je nabaviti 0 B/11,4 MB arhive.

Nakon ove operacije, koristit će se 17,4 MB dodatnog prostora na disku.

UPOZORENJE: Sljedeći paketi se ne mogu provjeriti! sublimetext Instalirati ove pakete bez verifikacije? Y Odabir prethodno poništenog odabira sublimeteksta paketa.(Čitanje baze podataka ... trenutno instaliranih 247813 datoteka i direktorija.) Raspakivanje sublimetexta (sa ..././sublimetext_2.0.2_i386.deb) ... Postavljanje sublimetexta (2.0.2) ... To je to, paket će biti raspakovan i instaliran, a činjenicu da je iz lokalnog spremišta možete vidjeti ovdje: (sa ..././sublimetext_2.0.2_i386.deb)

Zaključak

Recepti opisani u ovom postu su brzi obroci, a ne foie gras sa tartufima. Za velika spremišta ili složene pakete, i dalje ćete morati pročitati dokumentaciju i priručnike. Možete koristiti i program koji ne samo da može kreirati spremišta, već ih i snimiti na CD/DVD diskove.

Posebno hvala drugaru.
brainstream

, koji je ukazao na grešku u objavi s prikazivanjem PRE okruženja. Ovo se dešava kada verujete Haskell zanatima kao što je pandoc :-)

Recepti opisani u ovom postu su brzi obroci, a ne foie gras sa tartufima. Za velika spremišta ili složene pakete, i dalje ćete morati pročitati dokumentaciju i priručnike. Možete koristiti i program koji ne samo da može kreirati spremišta, već ih i snimiti na CD/DVD diskove.

Da, ako imate nešto za dodati, napišite u komentarima, ali imajte na umu da je ovo brza objava, bez potrebe za ponovnim čitanjem Debianovih smjernica za pakiranje i druge kvantne fizike.
Anonimni komentari...

Recepti opisani u ovom postu su brzi obroci, a ne foie gras sa tartufima. Za velika spremišta ili složene pakete, i dalje ćete morati pročitati dokumentaciju i priručnike. Možete koristiti i program koji ne samo da može kreirati spremišta, već ih i snimiti na CD/DVD diskove.

Postoji greška u vašem tekstu:

"Sada, da biste instalirali Skype, samo uradite:

# apt-get install sublimetext "

Možete raspakovati pakete koristeći dpkg-deb:

2. Da li ste sastavili, instalirali i mislite da je to sve? Nema te sreće, dobra sposobnost može uništiti paket do đavola kada instalirate nešto drugo. Znate li taj osjećaj: kako? Gdje? sta? Već sam instalirao ovaj paket!!! E, to je njegova sklonost - sav je pravoslavac, što znači da je patrijarhalan i ne dozvoljava slobodoumlje.

3. Stoga je potreban hitan manevar: paket za zadržavanje sposobnosti. „Šta, drži li dobro, budi ljubazan da ga skineš!“ (c) Zato što će se od sada aptitude žaliti da nije u stanju da riješi zavisnosti bez uništavanja vašeg paketa.

4. U ovom trenutku su mi živci popustili... I otkrila sam Gentoo, i moja kosa je ponovo postala mekana i svilenkasta!

"Sada, da biste instalirali Skype, samo uradite:

@iv_vl komentari...
I otkrio sam Gentoo, i moju kosu...
Drski PR Gente?! IN moj blog??? Nema šanse! ;-)

1. Deb paket mora sadržavati održavatelja i druge gluposti
Standardna politika - treba znati koga udariti u lice za pokvareni paket :-) A onda, ovo je na bilo koji način bolje od bedlama koji se dešava u RPM fedorama i zjuzama.

2. Da li ste sastavili, instalirali i mislite da je to sve? Nema te sreće, dobra sposobnost može uništiti paket do đavola kada instalirate nešto drugo.
Samo ako stavite paket stara verzija- na primjer, imam hold na IceWM-u, koji sam instalirao od Lennyja (idiotski održavatelj je nabio led sa slomljenom posudom u Squeeze). Aptitude će vas upozoriti prije takvih manevara, ako ništa drugo.

3. Stoga je hitno potreban manevar: aptitude hold paket.... aptitude će se zakleti da nije u stanju da riješi zavisnosti
Ovo je laž i provokacija: samo ako niste stavili na čekanje nešto kao što je gcc ili glibc, to će normalno riješiti ovisnosti. Za razliku od RPM-a, koji vole odmah da odustanu u stilu "Pa nisam mogao, nisam mogao" :-)

Možda ima problema sa rješavanjem ovisnosti, to je činjenica, ali to je bolje nego pržiti jaja i slaninu na procesoru dok se čeka kraj Gentinog preuzimanja svježeg KDE-a...

4. U ovom trenutku su mi živci popustili...
Nekako si se brzo oduševio. Usput, šta je sa zavisnošću u Gentu? Kako živite tamo sa kašljem svaki put kada kijate?
Ne radim ovo...za ime trolovanja...ljudi su zainteresovani.

iv_vl

Idi prelep jezik. Jedna od njegovih supermoći je sposobnost da sve sastavi u jednu binarnu datoteku. I ovo je vrlo zgodno, ovu datoteku možete nositi svuda i koristiti je na bilo kojoj mašini. Ali želim imati mogućnost da instaliram naš program na jednostavan način.

Koristeći deb pakete, možete lako organizirati implementaciju na svoje servere. U isto vrijeme, imat ćete verzije i sve to. Najčešće koristim ubuntu, pa ćemo posebno govoriti o deb paketima koji se mogu instalirati/ukloniti pomoću apt uslužnih programa.

Šta trebate učiniti da kreirate vlastito spremište s paketima? Možete koristiti isti launchpad.net, na primjer. ali, u poslednje vreme, ne razvija se baš dobro i izgleda nepouzdano. Osim toga, zgodno ga je koristiti za svoje nekomercijalne razvojne projekte, ali će ga koristiti za distribuciju poslovnog softvera biti problematično.

Pristupimo problemu s druge strane. Prvo, moramo prikupiti deb pakete, a to je vrlo lako učiniti sami koristeći dpkg-deb uslužni program. Drugo, ove pakete moramo negdje smjestiti, a za to ćemo koristiti super jednostavno

Građevinski paketi

Za sve svoje projekte koristim . Struktura projekta izgleda otprilike ovako:

Projekt/ |- bin/ | |- projekt |- src/ | |- github.com/ | |- 4gophers/ | |- projekt/ | |- main.go |- dobavljač/

Kada pokrenem gb build, sve binarne datoteke se ugrađuju u bin folder. Dakle, sve što trebamo je da jednostavno dodamo specifikaciju našeg budućeg deb paketa direktno u fasciklu projekta:

Mkdir projekt/DEBIAN touch projekt/DEBIAN/kontrola

Rezultat će biti ovakva struktura:

Projekt/ |- DEBIAN/ | |- kontrola |- bin/ | |- projekt |- src/ |- dobavljač/

U kontrolnoj datoteci moramo navesti informacije o našem paketu. Ne zaboravite na prazan zadnji red:

Paket: projekat Prioritet: opciono Sekcija: devel Instalirana-Veličina: 100 Održavanje: Ivan Ivanov Arhitektura: i386 Verzija: 1.0 Zavisi: libc6 (>= 2.1) Opis: Kratak opis ovdje Dugi opis ovdje

  • Paket - naziv vašeg paketa
  • Prioritet - prioritet paketa (opciono, ekstra, standardni, važan, obavezan) za obične programe je bolje postaviti opciono
  • Sekcija - sekcija kojoj pripada ovaj paket(admin, baza, komunikacija, doprinos, devel, dokument, urednici, elektronika, ugrađeni, igrice, gnome, grafika, hamradio, tumači, kde, libs, libdevel, pošta, matematika, ostalo, net, vijesti, neslobodne, oldlibs , otherosfs, perl, python, nauka, školjke, zvuk, tex, tekst, utils, web, x11)
  • Installed-Size - veličina datoteka paketa u kilobajtima
  • Održavatelj - ime i email kreatora paketa
  • Arhitektura - arhitektura procesora za koju je paket namijenjen (i386, amd64, all, source, all)
  • Verzija - verzija paketa
  • Zavisi - u ovom polju morate navesti nazive paketa od kojih zavisi vaš paket (na primjer, biblioteke)
  • Opis - u prvom redu pišemo kratak opis paketa, u ostalom detaljnije

Sve što se nalazi u fascikli projekta će ići u paket. I bin folder također. Ovaj folder sadrži našu binarnu datoteku koju treba instalirati. Da bi vaši fajlovi završili u željenom direktorijumu na računaru korisnika, potrebno je da kreirate odgovarajuću strukturu direktorijuma unutar fascikle vašeg projekta.

Vrijedi napomenuti da ovaj pristup kreiranju deb paketa nije najispravniji. Naravno, u našem slučaju svjesno preduzimamo ovaj korak, ali morate shvatiti da će deb paket sadržavati sav sadržaj foldera projekta, uključujući fascikle src, vendor i tako dalje. Naravno, možete kopirati datoteke u drugu mapu, pa čak i napisati skriptu za to, ali sve je već izmišljeno prije nas. Više na pravi način- ovo je za korištenje uslužnih programa dh_make i dpkg-buildpackage.

Sada možete sastaviti paket. Da biste to učinili, pokrenite naredbu jedan nivo više:

Dpkg-deb -z8 -Zgzip --build projekat

Jedan nivo više, kreiraće se fajl project.deb, koji se može instalirati pomoću naredbe:

Sudo dpkg -i project.deb

Vaše vlastito spremište paketa

A sada idemo na zabavni dio. Kako distribuiramo naše pakete? Pokrenimo naš vlastiti server za skladište, naravno. I za ovo ćemo koristiti server apt spremišta deb-simple.

Ovo je zaista jednostavan server koji se može instalirati samo jednom komandom:

Idite na github.com/esell/deb-simple

Ako go nije instaliran na mašini na kojoj ćete pokrenuti server sa repozitorijumom, onda možete da napravite binarni fajl lokalno i jednostavno ga kopirate. Alternativno, možete koristiti docker.

Zatim morate pokrenuti server. Ovo se može uraditi pomoću docker-a, ali ja radije koristim supervisord. Evo primjera moje konfiguracije usluge:

Command=/home/user/go1.5/bin/deb-simple directory=/home/user/deb-simple/ autorestart=true stdout_logfile=none

Ovdje je važno naznačiti putanju do binarne (komanda) i radnog foldera (direktorijuma) u koji ćemo smjestiti našu konfiguraciju.

Deb-simple server podržava https, ali nam još nije potreban. Za spremišta, morate kreirati repo folder. Naša conf.json konfiguracija će izgledati ovako:

( "listenPort" : "9090", "rootRepoPath" : "/home/user/deb-simple/repo", "supportedArch" : ["all","i386","amd64"], "enableSSL" : lažno, "SSLcert" : "server.crt", "SSLkey" : "server.key" )

Da biste učitali paket u svoje spremište, trebate koristiti HTTP API samog servisa:

Curl -XPOST "http://localhost:9090/upload?arch=amd64" -F " [email protected]"

Isto tako za brisanje:

Curl -XDELETE "http://localhost:9090/delete" -d "("filename":"project.deb","arch":"amd64")"

Sve što treba da uradimo je da dodamo naš server repozitorija na listu u /etc/apt/source.list.d/. Možete kreirati zaseban fajl sa sadržajem:

Deb http://my-hostname:9090/ stabilna glavna

Sada pokrenite sudo apt-get update i instalirajte svoje programe do mile volje.


Autor: Michael Reed
Datum objave: 4. januar 2014
Prijevod: N. Romodanov
Datum transfera: jun 2014

Reći ćemo vam kako da kreirate dve najčešće vrste Linux paketa za distribuciju softver, a možete sami distribuirati svoje pakete.

Provest ćemo vas kroz proces kreiranja softverskih paketa za dva najpopularnija paketna sistema, DEB i RPM. Možete koristiti ove tehnike za pakiranje vlastitog softvera, ili čak održavati pakete za softver za koji osjećate da leti ispod radara.

Počet ćemo s vodičem za kreiranje DEB ((.deb) datoteka za distribucije izvedene iz Debiana - za to koristimo Xubuntu kao našu bazu. Nakon toga ćemo detaljno opisati tehnike potrebne za kreiranje RPM paketa za korištenje na Red Hat-u -izvedene distribucije, a mi ćemo koristiti Fedoru za ovo. Često je moguće kreirati paket na jednoj distribuciji, a zatim ga instalirati na srodnu distribuciju (npr. Ubuntu>Debian), ali ako je to važno, možda biste trebali pokušati. to sami.

Što se programa tiče, koristićemo lagani web pretraživač Dillo kao primer paketa napravljenog od izvornog koda. Kada gradite iz izvora, ako build ne radi kako se očekuje, možete, kao i obično, tražiti rješenja na Internetu. Na primjer, u slučaju Dillo-a 3.0.3, zbog previda u arhivi izvornog koda, morali smo dodati "LIBS = -lX11" prije naredbi izgradnje kako bi naredbe radile.

Izgradnja se odvija na komandnoj liniji

Resursi

Instalacija (ili virtuelna mašina) Ubuntu i Fedora

Opis korak po korak

Korak 01: Korišćenje virtuelne mašine

Korišćenje alata za virtuelizaciju kao što su VirtualBox ili Vmware je često najbolji pristup kreiranju paketa za druge sisteme. S jedne strane, ovaj pristup vam omogućava da održite relativno čistu osnovnu instalaciju, uporedivu sa postavkama s kojima će drugi vjerovatno raditi. To također znači da možete dobiti kolekciju ciljnih sistema koristeći različite distribucije. Uz to, većina alata za virtuelizaciju omogućava vam da emulirate različite arhitekture, pa stoga 32-bitna platforma može pokretati 64-bitne operativne sisteme, iako će performanse patiti.

Korak 02: Počnimo od nule

Ako nešto pođe po zlu u Ubuntuu ili Fedori, savršeno je sigurno jednostavno izbrisati izvorni direktorij i početi ispočetka. Imajte na umu da Debian alati mijenjaju originalnu arhivu, tako da ćete morati početi od nove kopije.

Dio 1: Debian

Korak 03: Instalirajte okruženje za izgradnju

Počećemo tako što ćemo instalirati većinu alata koji su nam potrebni za kreiranje programa iz izvornog koda. biranje:

$ sudo apt-get install build-essential autoconf automake autotools-dev

Sada moramo instalirati alate koji se koriste za rad sa DEB paketima. Uradite to sa sledećom komandom...

$ sudo apt-get install dh-make debhelper devscripts fakeroot xutils lintian pbuilder

Korak 04: Kreirajte GPG ključ

Ako u prošlosti niste kreirali GPG javni ključ, morate ga kreirati sada kako biste mogli potpisivati ​​pakete. Prvo unesite tekst gpg –gen-key. Odaberite zadane vrijednosti i, kada se to od vas zatraži, unesite svoje pravo ime i kontakt informacije. Pažljivo zapišite sve podatke, jer ćemo kasnije morati da ih tačno uskladimo u konfiguracionoj datoteci. Nakon toga, otkucajte naredbu ls ~/.gnupg da biste bili sigurni da novi ključ postoji (ovo je datoteka firstname_lastname.gpg). Kreirajte javni ključ od njega:

Gpg -a --output ~/.gnupg/.gpg --izvoz "[vaše ime]"

Uvezite ga sa:

Gpg --import ~/.gnupg/.gpg

Korak 05: Preuzmite paket

U ovom primjeru ćemo preuzeti i izgraditi najnoviju verziju Dillo web pretraživača. Idite na Dillo web stranicu (www.dillo.org) i preuzmite najnoviju archive.tar.bz. Koristite naredbu mkdir ~/srcand da kreirate direktorij za izvorni kod i premjestite arhivu u njega.

Korak 06: Raspakujte arhivu

Raspakujte arhivu koristeći naredbu tar -xjvf [ime arhive].tar.bz2. Imajte na umu da je praćenje konvencija imenovanja direktorija (paketname-verzija) važno za naše svrhe, i na sreću Dillo paket ih slijedi. Također je važno da je arhiva izvornog koda jedan nivo iznad direktorija izvornog koda.

Korak 07: Konfiguriranje za Debian

Postavite dh_make skriptu u novootpakovani direktorij, koji će se pobrinuti za većinu posla - dodavanje konfiguracijske datoteke i kreiranje strukture direktorija, a koji je dio alata za programere koji smo dodali ranije.

Dh_make -e -c licenca -f ../

U našem primjeru, komandna linija to će izgledati ovako:

Dh_make -c gpl3 -e [email protected]-f ../dillo-3.0.3.tar.bz2

Kada se to od vas zatraži, odaberite jednu binarnu datoteku. Pomoćna skripta skripte mora kreirati direktorij pod imenom Debian u direktoriju izvornog koda.

Korak 08: Otvorite kontrolni fajl

Otvori u uređivač teksta kontrolnu datoteku u Debian poddirektoriju. Popunite odjeljak Početna stranica (koristite Google da dovršite popis odjeljaka Debian programa) i opisna polja za ovu datoteku.

Korak 09: Istražite svoje postojeće zavisnosti

Možete istražiti koje su zavisnosti potrebne za pokretanje programa koji dolazi kao paket. Idite u direktorij s izvornim kodom i upišite naredbu dpkg-depcheck -d ./configure u terminal. Ako to učinite, dobićete greške koje ukazuju na to koji paket nedostaje koji je potreban za pravljenje programa (isporučuje se zasebno). Možete otvoriti ovaj paket upisivanjem sudo apt-get build-dep [ime paketa], što bi trebalo pomoći ako spremište vaše distribucije podržava paket. Ako nije podržan, morat ćete više puta pokretati dpkg-depcheck -d ./configur i ručno dodati pakete upisivanjem psudo apt-get install [ime paketa].

Korak 10: Dodajte zavisnosti u kontrolni fajl

Kada su svi koraci iz prethodnog koraka dovršeni, trebali biste imati listu svih potrebnih paketa. Dodajte ovu listu ovisnosti u odjeljak ovisno: kontrolne datoteke. Stavke na listi moraju biti odvojene zarezom i razmakom.

Pokušajte da dovršite ovaj korak koliko god možete i nemojte ga preskakati. Izvor: - ovo je obično početna stranica projekat. U odjeljku Datoteke: * zamijenite podatke o autorskim pravima imenima autora projekta. Možete vidjeti primjer popunjavanja odjeljka Datoteke: debian/*, u koji treba unijeti relevantne informacije. Možda ćete morati biti malo detektiv da biste pronašli informacije koje su vam potrebne. Potražite u izvornom direktoriju datoteke kao što su AUTORI i KOPIRANJE.

Korak 12: Uredite datoteku dnevnika promjena

Otvorite datoteku dnevnika promjena i provjerite jesu li ime i adresa email isti su kao oni koje ste unijeli prilikom kreiranja GPG ključa. Obično pomoćna skripta može dodati vaše korisničko ime u datoteku umjesto vašeg pravog imena. Kao i kod datoteke o autorskim pravima, nemojte preskočiti ovaj odjeljak jer to može uzrokovati zaustavljanje procesa kreiranja paketa ili kreiranje pogrešnog paketa.

Korak 13: Kreirajte paket

Ako je sve ispravno konfigurirano, konačno možemo napraviti DEB paket. Idite u izvorni direktorij i pokrenite dpkg-buildpackage -b da napravite paket, koji će biti smješten u ~/src/ direktorij. Na primjer, kreirajte paket koristeći naredbu dpkg -I [package]. Da provjerite usklađenost s Debianovom politikom, pokrenite Lintian program koristeći naredbu lintian [package]. Imajte na umu da je ovaj alat poznat kao strog i na vama je da odlučite da li su neka manja upozorenja o neusklađenosti prihvatljiva za vas. Konačno, instalirajte pakt koristeći naredbu sudo dpgk -i [package].

Dio 2: Kreiranje RPM paketa u Fedori

Korak 14: Otvorite kontrolni fajl

Prebacite se na način rada root korisnika upisivanjem su. Počnite sa instalacionom grupom razvojnih alata u yum-u, a zatim koristite yum da instalirate gcc-c++ fedora-packer. Otkucajte naredbu usermod -a -G mock da dodate svog korisnika u mock grupu. Ovo nam omogućava da izvedemo proceduru izgradnje bez potrebe da postanemo root.

Korak 15: Kreirajte okruženje za izgradnju

Pritisnite Ctrl + D da izađete iz root uloge. Upišite rpmdev-setuptree da kreirate stablo direktorija (pod ~/rpmbuild) koje nam je potrebno.

Korak 16: Preuzmite arhivu i premjestite je na željenu lokaciju

Preuzmite Dillo paket sa Dillo web stranice i premjestite arhivu u odgovarajući direktorij - upišite mv [ime arhive] ~/rpmbuild/SOURCES.

Korak 17: Kreirajte .spec fajl

Distribucije zasnovane na Red Hat-u, kao što je Fedora, koriste .spec datoteke da specificiraju proces izgradnje. Promijenite u direktorij koji sadrži takve datoteke koristeći cd ~/rpmbuild/SPECS/andcreateablank.spec i kreirajte praznu .spec datoteku koristeći rpmdev-newspec dillo.

Korak 18: Uredite .spec datoteku

Upišite naredbu gedit dillo.spec. Popunite polja Verzija, Sažetak i Licenca (u u ovom slučaju- GPLv3+). početna stranica projekat; Source0 specificira adresu izvornog koda. Navedite komentare u poljima BuildRequires i Requires. Dodaj puni opis u %opisnu oblast.

Korak 19: Napravite izvorni kod

Ako je paket uopće podržan na sistemu, pokrenite naredbu yum-builddep [ime paketa]. IN inače, morat ćete ponoviti naredbu izgradnje da biste primali poruke o grešci ili potražite dokumentaciju u arhivi izvornog koda. U SPEC direktorij upišite rpmbuild -ba[ime paketa].spec. Ako ova izrada ne uspije i prijavi dodatne nekomprimirane datoteke, označite i kopirajte ovu listu datoteka u odjeljak %files datoteke .spec i ponovo izdajte naredbu izgradnje. Paket će se sada nalaziti u RPMS direktoriju. Upišite rpm -ivh [paket] da biste ga instalirali. Upišite naredbu rpm -qa | grep [paket] da biste bili sigurni da je instaliran.

Ovaj članak nije potpun. Možete pomoći da to napišete

    Ispravljanje stila članka

    Dodavanjem više informacija o pripremi izvornih kodova za debianizaciju

Distribucije zasnovane na Debianu ne samo da imaju odličan APT sistem upravljanja paketima koji sam rješava ovisnosti, već i zgodne alate za kreiranje paketa i njihovih vlastitih spremišta. Ako ste već odlučili da napravite program iz izvornog koda, onda vam savjetujem da također proučite kako debianizirati izvorni kod. To će potrajati malo duže od standardnog

./ konfiguriši && napravi && napravi instalaciju napravi deinstaliraj

ali ne podržavaju svi izvori ovo, a ono što je još češće je da se izvori brišu nakon instalacije, a zatim se program može ukloniti samo ručno. Ali da biste to učinili, morate znati tačno šta je instalirano i gdje. I to niko sa sigurnošću ne zna, osim samih programera (pa, ili onih koji su manje-više razumjeli izvorni kod programa).

Klasifikacija montažnih kućišta

Moguće sledećim slučajevima izrade paketa:

    Izgradite iz izvora;

    Sklapanje iz binarnih datoteka;

preuzimaju se izvorni kodovi ili binarni fajlovi:

    Ne iz spremišta;

    Iz spremišta druge distribucije;

    Iz repozitorija drugog Ubuntu izdanja, iz PPA ili iz Debiana;

debianizacija:

    Nije dostupno;

    Preuzeto iz Ubuntu spremišta, iz PPA ili iz Debiana:

    • Iz druge verzije programa;

      Iz trenutne verzije programa:

      • Ne iz trenutnog Ubuntu repozitorija izdanja;

        Iz trenutnog Ubuntu repozitorija izdanja;

razlog okupljanja:

    Ni trenutno Ubuntu spremište ni PPA ne sadrže potrebnu verziju programa;

    Iz nekog razloga niste zadovoljni dostupnom verzijom programa (niste zadovoljni programskim kodom ili podacima, konfiguracijskim parametrima ili kontrolne informacije paket);

    Oba.

Izgradite iz izvora

Šta je potrebno

Dostupan je potpuni vodič za početnike za Debian Developer.

Nažalost, informacije na ruskom su malo zastarjele, najnovija uputstva su dostupna na engleskom. Ali principi se nisu promijenili, pa ako vas zanimaju detalji, bolje je detaljno pročitati priručnik.

Trebat će nam u najmanju ruku programi koje je instalirala naredba

sudo apt-get install autoconf automake libtool autotools-dev dpkg-dev fakeroot

Također možete automatski rezervirati - ovo je dokumentacija za GNU uslužne programe Autoconf, Automake i Libtool. I naravno, ono što oni sami zahtijevaju izvorni kodovi za ispravnu montažu.

Kreiranje ključa za šifriranje

Ovaj korak nije obavezan i može se preskočiti.

Da kreirate ključ, idite na Aplikacije → Dodatna oprema → Lozinke i ključevi za šifrovanje. U prozoru koji se otvori, u meniju Taster → Novi ključ, izaberite taster pgp. Popunjavanje polja Puno ime I Email adresa.

U svijetu slobodnog softvera, da biste spriječili “krađu” ili “krivotvorenje”, uobičajeno je da svoje “vrijedne” stvari potpisujete elektronski ključ, čiji je javni dio pohranjen na javnim serverima i omogućava drugim korisnicima da lako utvrde autentičnost i integritet određene stvari.
Stoga budite vrlo odgovorni kada kreirate ključ.
Niko vas ne tjera da ovdje unesete svoje pravo ime i prezime, niti bilo koje druge lične podatke, ali ako niste traženi od strane Interpola, mislim da će unošenje prezimena i imena biti ispravna odluka, iako možete koristiti samo svoj nadimak Općenito, odlučite sami. Ali molimo navedite pravu poštansku adresu koju nećete mijenjati.

Možete kreirati kutiju, ako je već nemate, na nekom popularnom mail server: na primjer, gmail.com ili yandex.ru.
Ovo će olakšati nekome u budućnosti da vas kontaktira ko vas ne poznaje, ali je iz ovog ili onog razloga naišao na "stvar" koju ste potpisali.
Zatim će se od vas tražiti da unesete lozinku kao dodatnu zaštitu. Može biti korisno ako ćete koristiti privatni ključ na mašinama u koje ne možete 100% vjerovati. Povratak- morat ćete unijeti svoju lozinku svaki put kada nešto potpišete.

Mada najnovija verzija programe seahorse ima demon koji se automatski pokreće u GNOME sesiji i može „zapamtiti lozinku“ za vrijeme trajanja sesije, ali svi programi još ne mogu raditi s njim.

Dakle, kreirali ste ključ - sada se može koristiti prilikom kreiranja paketa.
Da biste to uradili, u datoteci ~/.bashrc, ili u drugoj skripti za pokretanje vaše omiljene ljuske (za zsh ~/.zshrc), potrebno je da unesete varijable

Izvezi DEBEMAIL=vaš@e-mail

Na osnovu e-maila, ključ će se tražiti u pgp-u prilikom potpisivanja paketa.
Morate se odjaviti i ponovo prijaviti da bi promjene stupile na snagu.
Zapamtite da ako vraćate paket koji niste debianizirali, morate promijeniti verziju pomoću naredbe

dch -i

tako da vaš e-mail bude uključen u promjene. A da bi vaš javni ključ došao do servera, potrebno je da “ seahorse→ Lozinke i ključevi za šifrovanje”, postavite vezu sa serverom javnih ključeva.
Da biste to učinili, u meniju Uredi→Opcije na obeleživaču Objavljivanje ključeva morate označiti polje Objavi ključeve....
Sada možete odabrati ključ u meniju pomoću desno dugme izabrati Ključevi za sinhronizaciju i objavljivanje.

Debianizacija nije dostupna

Tako da imamo samo gcoolprog-0.5.3.tar.gz.

Obično radim sljedeće:

Predpriprema radnog imenika

"http://<путь до файла>" #Možete ga, naravno, jednostavno preuzeti preko pretraživača, ali obično je brže

Primamo fajl gcoolprog-0.5.3.tar.gz. Raspakirajmo ga i idemo u rezultirajući direktorij:

tar zxvf gcoolprog-0.5.3.tar.gz cd gcoolprog-0.5.3

Za ispravan sklop, korijenski direktorij mora sadržavati ne samo ime, već i verziju!

./ configure --prefix =/ usr && make

Ako je naredba uspješno završena, sve što ostaje je debianizacija.

Debianizacija

U tome nema ništa loše, kao što sam već rekao, postoje skripte koje uvelike pojednostavljuju ovaj proces.
Općenito, smisao cijele ove procedure je kreiranje debian direktorija u korijenu izvora, sa potrebne datoteke konfiguraciju i skripte.
Da bismo to učinili, u korijenu izvornih tekstova izvršavamo

Dh_make --createorig

Za šta da dobijemo sljedeći dijalog?

Tip paketa: pojedinačni binarni, višestruki binarni, biblioteka, modul kernela ili cdbs? [email protected] Datum: Mon, 13 Aug 2007 12:40:33 +0400 Naziv paketa: gcoolprog Verzija: 0.5.3 Licenca: blank Vrsta paketa: Single Hit potvrditi:

Ovdje ukazujemo na kreiranje paketa za jednu binarnu datoteku.

Ali ti i ja smo super i sve je prošlo bez grešaka - pojavio se debian direktorij u korijenu izvornog koda, gledajući njegov sadržaj, vidjet ćete gomilu datoteka (ekstenzija .ex) sa primjerima za sve prilike.

Opis:

Umjesto I (bez navodnika) potrebno je da unesete opis o kakvom se programu radi.
Ovo su informacije koje će korisnik vidjeti kada pogleda opis paketa.
Druga stvar je ispraviti fajl debian/pravila
u sekciji binary-arch: treba dekomentirati (tj. ukloniti # na početku reda)

Dh_install

bez ovoga ćemo dobiti prazan paket.
Ponekad debian/pravila sadrži samo:

%:dh$@

Što je prihvatljivo korištenjem debhelpera.
Ova podešavanja će biti dovoljna da se napravi paket sa jednim programom koji ne sadrži deljene biblioteke, tj. samo binarni u /usr/bin i podaci u /usr/share.

Izgradnja paketa

Sada, hajde da sastavimo paket:

U gornjem imeniku, tj. u ~/src/gcoolprog/0.5.3, dobićemo fajlove

Gcoolprog_0.5.3-1.diff.gz gcoolprog_0.5.3-1_i386.changes gcoolprog_0.5.3-1_i386.deb gcoolprog_0.5.3.orig.tar.gz

Sada možemo instalirati paket

dpkg -i *.deb

Debianizacija je preuzeta iz Ubuntu spremišta, iz PPA ili iz Debiana

Debianizacija je preuzeta iz druge verzije programa

U ovom slučaju, vrlo je zgodno preuzeti debianizaciju odatle i ispraviti je za novu verziju.

Kao što sam već rekao, možda ćemo imati sreće pa će biti dovoljno da samo promijenimo verziju. Ali hajde da ne nagađamo.

U nastavku neću komentarisati ono što je opisano u prethodnom rješenju.

mkdir ~/ src/ gcoolprog mkdir ~/ src/ gcoolprog/ 0.5.3 cd ~/ src/ gcoolprog/ 0.5.3 wget "http://<путь до файла>"

dobijamo datoteku gcoolprog-0.5.3.tar.bz2

bunzip2 gcoolprog-0.5.3.tar.bz2 gzip gcoolprog-0.5.3.tar mv gcoolprog-0.5.3.tar.gz gcoolprog_0.5.3.orig.tar.gz

sada ga raspakujemo

tar zxvf ./ gcoolprog_0.5.3.orig.tar.gz

preuzimanje prethodna verzija sa http://packages.ubuntu.com ili http://packages.debian.org, datoteku gcoolprog_0.5.1.diff.gz(na samom dnu u odjeljku Više informacija o gcoolprog-u)

wget "http://archive.ubuntu.com/ubuntu/pool/universe/g/gcoolprog/gcoolprog_0.5.1.diff.gz" gunzip gcoolprog_0.5.1.diff.gz zakrpa -p0< ./ gcoolprog_0.5.1.diff

dobijamo imenik

~/ src/ gcoolprog/ 0.5.3/ gcoolprog-0.5.1/ debian

kopirajte direktorij gcoolprog-0.5.1/debian u direktorij ~/src/gcoolprog/0.5.3/gcoolprog-0.5.3

cp -a ~/ src/ gcoolprog/ 0.5.3/ gcoolprog-0.5.1/ debian ~/ src/ gcoolprog/ 0.5.3/ gcoolprog-0.5.3 dch -i

ova naredba mijenja debian/changelog datoteku, na primjer, vidjet ćemo

Gcoolprog (0.5.1-1ubuntu2) feisty; hitnost =niska * -- denis< ubuntu_user@ mail.ru>

ali pošto imamo verziju 0.5.3, moramo promijeniti vrijednosti u

Gcoolprog (0.5.3-1ubuntu1) feisty; hitnost =niska * Novo uzvodno izdanje.< ubuntu_user@ mail.ru>--denis

Mon, 13 Aug 2007 14:13:27 +0400

sačuvaj promjene. Sada možete pokrenuti naredbu build u paketu.

Dpkg-buildpackage -rfakeroot

uzmite fajlove

cd .. ls -1 gcoolprog_0.5.3-1 .diff.gz gcoolprog_0.5.3-1 _i386.changes gcoolprog_0.5.3-1 _i386.deb gcoolprog_0.5.3.orig.tar.gz dpkg - dpkg -.

Debianizacija je preuzeta iz trenutne verzije programa

Debianizacija nije preuzeta iz spremišta trenutnog Ubuntu izdanja Za Debian trebate koristiti stranicu http://packages.debian.org, za Ubuntu - http://packages.ubuntu.com. Zatim, na primjer, u Ubuntu-u tražimo paket gcoolprog

u spremištu za buduće izdanje.

Prvo pripremimo radni direktorij

mkdir ~/ src/ gcoolprog mkdir ~/ src/ gcoolprog/ 0.5.3 cd ~/ src/ gcoolprog/ 0.5.3

sada preuzmite tri fajla

wget http:// archive.ubuntu.com/ ubuntu/ pool/ universe/ g/ gcoolprog/ gcoolprog_0.5.3-1 .dsc wget http:// archive.ubuntu.com/ ubuntu/ pool/ universe/ g/ gcoolprog/ gcoolprog_0 .5.3.orig.tar.gz wget http:// archive.ubuntu.com/ ubuntu/ pool/ universe/ g/ gcoolprog/ gcoolprog_0.5.3-1 .diff.gz

ili ista stvar, ali sa jednom komandom

Dget http:// archive.ubuntu.com/ ubuntu/ pool/ universe/ g/ gcoolprog/ gcoolprog_0.5.3-1 .dsc iz paketa
devscripts

zatim raspakujte komandom

Dpkg-izvor -x ./ gcoolprog_0.5.3-1 .dsc

Dobit ćemo direktorij gcoolprog-0.5.3. Idemo do njega i mijenjamo verziju:< ubuntu_user@ mail.ru>--denis

cd gcoolprog-0.5.3 dch -i gcoolprog (0.5.3-1ubuntu1) feisty; hitnost =niska * backport od gutsy -- denis

sačuvaj promjene. Sada možete pokrenuti naredbu build u paketu.

Dpkg-buildpackage -rfakeroot

Sada možete sastaviti paket

cd .. ls -1 . gcoolprog_0.5.3-1 .diff.gz gcoolprog_0.5.3-1 _i386.changes gcoolprog_0.5.3-1 _i386.deb gcoolprog_0.5.3.orig.tar.gz dpkg -i * .deb

Debianizacija je preuzeta iz spremišta trenutnog Ubuntu izdanja

U slučaju kada postoji paket za željenu verziju programa u spremištu trenutnog Ubuntu izdanja, ali iz nekog razloga nije zadovoljavajući i potrebno je izvršiti promjene u njegovim izvorima (npr. neka zakrpa mora biti primijenjena ) i ponovo izgrađen na osnovu onoga što je već u paketu Debianization, možete učiniti sljedeće.

Za izgradnju će vam trebati sljedeći paketi: build-essential devscripts fakeroot. Razvojni paketi će također biti potrebni, mi ćemo ih kasnije instalirati.

Preuzmite izvore: cd ~/ src apt-get izvor

apt-get source preuzima izvore iz Ubuntu spremišta u trenutni direktorij. Mnogi paketi u spremištu imaju zajedničke izvore jedan s drugim, tako da se osim izvora odabranog paketa mogu preuzeti i izvori drugih paketa (izvori zajednički za nekoliko paketa).

Instalirajte razvojne pakete potrebne za sklapanje:

sudo apt-get build-dep gcoolprog

Prikupljamo pakete:

cd gcoolprog-0.5.3 debuild -b -us -uc

debuild bi trebao biti pokrenut u izvornom direktoriju. -b -us -uc opcije se prosleđuju programu dpkg-buildpackage. Prvi zahtijeva prikupljanje samo binarnih paketa, drugi i treći ne zahtijevaju potpisivanje digitalni potpis, odnosno izvorni paket i .changes fajl. Rezultirajući paketi će biti u direktoriju jedan nivo više.

Izrada iz binarnih datoteka

Ispod je primjer onoga što možete učiniti ako je dostupan samo deb paket i nema debianiziranih izvora.

Pretpostavimo da radimo u direktoriju ~/tmp. Kreirajmo poddirektorij ~/tmp/someprog da biste raspakovali datoteke paketa, morate pokrenuti

dpkg -x ~./tmp/some-prog-123 .deb ./someprog

U cilju ekstrakcije kontrolne informacije, hajde da uradimo

mkdir ~/ tmp/ someprog/ DEBIAN dpkg -e ~/ tmp/ some-prog-123 .deb ./ someprog/ DEBIAN

Pa, sada, da biste sve to vratili u paket, morate učiniti

dpkg -b ./ someprog ~/ tmp/ some-prog-123 -new.deb

U katalogu ~/tmp/someprog/DEBIAN sadrži datoteke koje opisuju šta je paket, o čemu zavisi i kontrolne sume datoteke sadržane u njemu. Da biste napravili svoj paket, morate postaviti datoteke u direktorij ~/tmp/someprog kao da je to osnovni direktorij, to jest, ako želite da se datoteka instalira /usr/bin, morate ga staviti u direktorij ~/tmp/someprog/usr/bin, i, shodno tome, ako bi nešto trebalo biti unutra /etc, zatim unutra ~/tmp/someprog/etc itd.

Onda unutra ~/tmp/someprog kreirajte direktorij DEBIAN, obavezno koristite velika slova iu njemu datoteku ~/tmp/someprog/DEBIAN/control, ova datoteka opisuje naziv paketa, njegove zavisnosti i opis, format je vrlo jednostavan. na primjer:

Paket: libcurl3 Verzija: 7.15.2-2 Odjeljak: libs Prioritet: opciono Arhitektura: i386 Zavisi: libc6 (>= 2.3.5-1), libcomerr2 (>= 1.33-3), libidn11 (>= 0.5.18), libkrb53 (>= 1.4.2), libssl0.9.8 (>= 0.9.8a-1), zlib1g (>= 1:1.2.1), ca-certifikati Predlaže: libldap2 Zamjene: libcurl2 (<< 1:7.11.2-2) Installed-Size: 324 Maintainer: Domenico Andreoli Izvor: curl Opis: biblioteka za prijenos datoteka s više protokola libcurl je dizajnirana da bude čvrsta, upotrebljiva, pouzdana i prenosiva biblioteka za prijenos datoteka s više protokola.

.

SSL podršku pruža OpenSSL.

Za omogućavanje LDAP paketa podrške potreban je libldap2-dev.

© 2024 ermake.ru -- O popravci računara - Informativni portal