Asamblarea pachetelor pentru diverse distribuții - note despre linux

Prima cale. care se lasă să pună unele VirtualBox / Xen / OpenVZ / KVM / VMware, pune sistemul de operare în el și face montajul real al pachetului. Dacă aveți nevoie să automatizați ceva, trebuie să transpirați cu adevărat.

A treia cale. În repozitoriul openSUSE Tools, există un pachet de dezvoltare. care creează un mediu în chroot și colectează pachetul. Poate că singurul său dezavantaj semnificativ este că pentru a crea un mediu chroot, trebuie să aveți pachetul de distribuție necesar pe discul local. Nu e plăcut, dar poți supraviețui.

Așadar, avem nevoie de o mașină pe 64 de biți (pe care se pot construi pachete pentru ix86 și x86_64). Conectăm repozitoriul și punem pachetul de construcție. După aceea, facem o copie locală a depozitarilor pentru distribuțiile necesare (uneori doar un DVD al kitului de distribuție). Cursul minus este mare, dar dacă există suficient spațiu, atunci este deja neobservat. Desigur, va trebui să configurați sincronizarea cu depozitele. Este mai bine să împărțiți arhitecturi diferite în directoare diferite, așa că va fi mai ușor.

Pachetul de construcție din directorul / usr / lib / build / configs stochează setările pentru diferite distribuții. În mod implicit, există Debian și tot felul de SUSE. Scenarii pentru alte distribuții, și aceasta este Fedora, Mandriva, Ubuntu, inclusiv diferite versiuni pot fi obținute prin sistemul de control al versiunii osc. Dar pentru că pentru asta va trebui să descrieți toate OBS-urile în general, atunci puteți descărca doar fișierele de configurare din arhiva mea. Acestea vor trebui să fie puse în directorul / usr / lib / build / configs.

Această comandă din pachetul de construire va trage tot conținutul sursei în directorul curent. De fapt, dacă avem codul sursă, atunci este suficient să îl puneți în directorul curent. După aceasta, dați comanda (din partea utilizatorului root):

Dacă trebuie să compilam un pachet pe 32 de biți, comanda anterioară va avea următoarea formă:

Opțiunea -rpms poate conecta mai multe directoare. Pentru aceasta, calea trebuie să fie separată de simbolul ":", de exemplu:

Nu am încercat să colectez pachete deb, dar cel mai probabil nu sunt multe diferențe. Această metodă este foarte convenabilă atunci când doriți să colectați pachete pe mașina dvs., mai degrabă decât să o faceți undeva acolo. În acest caz, este mult mai convenabil să urmăriți asamblarea reușită sau nereușită a pachetului, să scrieți scripturi pentru a procesa rezultatele, a le pune în depozit și a pune ansamblul în propriul sistem de integrare continuă. Singurul dezavantaj este disponibilitatea unui spațiu liber foarte mare pentru pachetele de distribuție.

Pagina 1 din 1 1

Pasib pentru articolul - în chroot Mandriva are propria sa - dar dureros complicat și perl 🙂 până când m-am folosi virtualke cu script de instalare minimală pe care le-a copiat prin ssh că sunteți conectat și transmise LAS. Singurul plus virtualkoy - nu este pe gramada pe disc, dar poate fi folosit pe internet.

Tigro.

iurt pare a fi numit.

Aici aș fi mai interesat să învăț cum să construiesc
rpm pentru fedora.
Despre Moscova și RPM-dektoosilsya Știu ce altceva?

P.S. Și apoi cu subiectul puteți merge și a construi msi 🙂

Tigro.

Tiger, și tu colectezi această clădire?

Încă l-am colectat fie în moka, fie într-un container OVZ (uneori, de asemenea, într-un mock)

Am nevoie, poate, de ceva aproape chiar industrială, dar OBS locală încă îi sperie monstruozitatea

Tigro.

Da, am pe Fedora acum, astfel încât Yachat merge sub Mandriva și openSUSE. Construiți în acest foarte bine ajutat.

Ei bine, pentru a construi pachete pentru cele mai populare distribuții ai nevoie de Debian SID (pentru că există ultima rpm). Acolo puteți utiliza pbuilder (pentru deb), mock (pentru rpm), și construi pentru Mandriva, SUSE.

Există încă o alternativă:
1. Colectați binare portabile (independente de distribuție)
2. Împachetați-le în rpm
3. de la rpm pentru a face deb cu ajutorul alien'a

Avantajul este că compilarea trebuie efectuată numai de 2 ori (o dată pentru i386, cealaltă pentru x86_64). Dar un astfel de pachet rpm sau deb este pus pe aproape orice dir. De asemenea, puteți încărca în tar.gz pentru oricine altcineva. În plus, nu este necesar să aveți un disc pentru fiecare distribuție - este necesar doar debian etch, dar în general debootstrap poate întârzia în siguranță Internetul de la minimul necesar doar.

contra:
- O dimensiune mai mare a pachetului, deoarece trebuie să includeți bibliotecile dependente.
- Mai mult agitație cu ansamblul, din nou. este necesar să se colecteze dependenți. Eu sub această afacere ascuți un scenariu care la o ieșire din următoarea versiune să nu facă totul din nou.

Dar binarul are un mare plus - de exemplu, dacă este ktechlab sau quanta + pe distribuțiile kde4 (ar trebui să încercați în general) 🙂

Ansamblul pachetelor DEB, apropo, este foarte diferit de RPM. Și pentru Ubuntu ați uitat să menționați LaunchPad cu daemonii construi și PPA =)

Tigro.

Nu, nu am uitat, deoarece am descris construirea. Un lansator poate colecta doar sub Ubuntu. Ei bine, ca parte a construirii construirii, deb - este similară cu construirea rpm (când totul este deja făcut). Trebuie doar să știți cum să creați și să colectați pachete, de fapt, ceea ce am scris în primul paragraf.

Și referința la arhivă cu config nu funcționează. 404, spune 🙁

Tigro.

Da, a fost pierdut după ultimul incendiu. Va fi necesară restaurarea.

Articole similare