Nu se întâmplă des, dar se întâmplă, în viața administratorului de sistem, momentul în care trebuie să construiți un pachet cu o versiune mai nouă a software-ului sau să aplicați un patch sistemului pentru ca sistemul să funcționeze.
Sau, în general, creați un pachet cu programul dvs., astfel încât standardul, pentru sistemul de operare, să instaleze și să monitorizeze procesul de actualizare a programului. Deși acest lucru nu este cu adevărat o preocupare pentru administratorul de sistem.
Așadar, avem dorința de a asambla pachetul și de a face bine.
Nu vă voi spune cum să faceți un pachet de la zero, vreau să vă spun exact cum să-l asamblați. Se presupune că pachetul are deja tot ce este necesar.
Ce avem nevoie
Cum să faceți acest lucru nu este necesar
După cum sugerează și numele: tot ceea ce este descris mai jos nu merită să faceți, dar dacă doriți, puteți face acest lucru.
Nu știu despre dvs., dar mașina mea de lucru este jumătate din pachetele care provin din backports, ppa și alte depozite ale terților.
Ce urmează de aici? Rezultă că poate exista o eroare cu privire la bibliotecile de legături greșite (de exemplu, o situație frecventă atunci când nu sunt doar legate de fișiere incorecte compilate, dar mai multe modificări logică a ansamblului în sine a programului de sistem, în funcție de versiunile disponibile). Dar dacă colectați pentru dvs., atunci această metodă este destul de potrivită.
Cea mai obișnuită metodă de a construi este să ia pachetul oficial din versiunea mai veche și să îl compilez pentru distribuirea mea. Acest proces se numește backporting.
Să luăm în considerare, de exemplu, supraveghetorul de pachete, în wheezy 3.0a8 este folosit și avem nevoie de cea mai recentă versiune 3.0. În sid în acest moment există doar 3.0b2.
Mergem la pagina cu pachetul și descărcați pachetul sursă (coloana din dreapta, fișierul dcs):
Acum trebuie să luăm arhiva cu cea mai recentă versiune a supervizorului:
Apoi, trebuie să actualizăm versiunea pachetului:
Acum puteți trece la procedura de asamblare (exact ceea ce este greșit să faceți pentru motivele descrise mai sus):
După asamblare, un fișier deb apare în directorul care poate fi instalat corect:
Cât de merită să faci
Din cauza motivelor prezentate mai sus, este necesar să se utilizeze un mediu pregătit, care va conține un set minim de pachete care corespund mediului în care pentru a construi pachete de distribuție.
Este clar că nimic pentru a inventa pentru acest lucru nu este necesar și totul este deja pregătit și testat de milioane de ori: (c) debootstrap.
Cu toate acestea, doar debootstrap de descărcări și despachetează mediului, și că există ceva ce trebuie să faceți pentru a colecta chroot, monta o mulțime de lucruri, în prea multe generale de lucru, repetitive și plictisitoare.
Prin urmare, dezvoltatorii de distribuție a făcut pbuilder (acolo este sbuild, care de fapt folosit pentru a construi serverul, care este motivul pentru care pbuilder, dar nu sbuild puteți citi aici), care vă permite să construiască pachete în medii curate.
Pbuilder foarte bine kastomiziruetsya printr-un fișier pbuilderrc, dar aici dezvoltatorii au podsuetilis pbuilder-dist, care are grijă de sprijin multiplatformă.
Din păcate, din cutie, este numai în Ubuntu, în pachetul ubuntu-dev-tools. Dar pentru Debian, puteți să-l luați de la PPA.
Pentru ao folosi este extrem de simplă:
După finalizarea procedurii de asamblare, pachetul final va apărea în
Și cum rămâne cu personalizarea, întrebi? Nimic nu sa schimbat, constructorul încă preia configurația sa de la, de exemplu,
Această decizie mă mituiește cu simplitatea și comoditatea.
Se ridică o întrebare rezonabilă și ce urmează cu pachetele de făcut.
Configurați depozitul
După cum m-am plâns în repetate rânduri în blog, pe Internet există miliarde de instrucțiuni pentru toate ocaziile, dar printre ele nu există nici unul normal. Acestea sunt fie incomplete, fie nu funcționează sau nu funcționează, dar nu sunt necesare (sau drepte).
Acelasi gunoi cu crearea de depozite. Majoritatea instrucțiunilor sugerează utilizarea unui apt-ftparchive și apoi semnarea manuală a depozitului (dacă este recomandat să faceți acest lucru). Desigur, dezvoltatorii au crezut cum să automatizeze această sarcină și există instrumente de gata făcute.
Pot numi acest instrument reprepro.
Este folosit de mulți oameni, de exemplu, repozitoriul oficial nginx este creat folosind reprepro.
Cu toate acestea, are o directoare minus - inutile în rădăcina arhivei, așa că încerc să separ de directorul de lucru din depozit disponibil din rețea.
De asemenea, nu se poate spune că reprepro funcționează perfect, uneori sunt foarte erori obscure, care necesită adăugarea nu este opțiuni foarte evidente, dar de restul, funcționează foarte bine.
Nu vreau să vă spun cum să generați o cheie GPG și cum să o gestionați, pentru mine a fost perfect făcută de către @cancel.
Să creați un director unde va funcționa reprepro:
Există două fișiere în directorul conf:
- Opțiunile sunt responsabile de opțiunile reprepro
- distribuțiile este responsabil pentru configurarea depozitelor