Program pentru crearea pachetelor deb. Crearea de pachete RPM sau DEB cu Checkinstall pe Linux

Acasă / Sisteme de operare

deb este o arhivă în format ar conţinând fișiere de instalare programe, informații despre program, precum și scripturi ( fișiere batch), efectuate înainte și după instalarea și dezinstalarea programului (prezența scripturilor nu este obligatorie - este posibil să nu facă parte din pachet).

Formatul fișierului deb este descris în paginile de manual deb(5) - acest ajutor este afișat dacă tastați man deb într-un terminal. Există, de asemenea, destul de multe pagini pe Internet care conțin aceste informații - doar căutați deb(5) pentru a le găsi. Acest ghid nu este inclus aici deoarece Ghidul dezvoltatorilor Debian, Ajutor pentru formatul pachetelor (care la momentul scrierii acestui ghid se află la http://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics. en.html) este scris că formatul pachetelor se poate schimba și de aceea este recomandat să folosiți utilitarul dpkg-deb pentru a lucra cu ele. Ajutor pentru lucrul cu utilitarul dpkg-deb poate fi obținut prin tastarea comenzii man dpkg-deb în terminal.

Programul GUI-deb funcționează prin crearea unui director care conține datele necesare și rularea programului dpkg-deb, specificând acest director și alți parametri necesari.

Directorul corect pentru dpkg-deb pentru a crea un pachet de instalare trebuie să conțină mai întâi un subdirector „DEBIAN”. Acest director ar trebui să conțină toate datele care nu sunt copiate în sistem, dar utilizate direct de programele de lucru cu pachete - informații despre pachet, scripturi efectuate înainte și după instalare etc. Orice fișiere conținute în directorul DEBIAN nu vor fi adăugate la sistemul de fișiere al computerului pe care este instalat pachetul atunci când pachetul este instalat.

În afara directorului „DEBIAN” conține acele fișiere care vor fi copiate în sistemul de fișiere al computerului pe care va fi instalat pachetul. Fișierele trebuie să fie localizate în directoarele în care vor fi plasate la instalarea pachetului. Adică, în interiorul directorului creat pentru dpkg-deb, ar trebui creată o copie a părților sistemului de fișiere de care avem nevoie - ca și cum acest director ar fi rădăcina lui ("/"). Adică, de exemplu, dacă numele directorului pe baza căruia va fi creat pachetul este „~/TMP_DEBS/MyProgram”, și este necesar ca la instalarea în sistem de fișiere fișierul „MyProgram.png” a fost scris în directorul „/usr/share/pixmaps” - trebuie să creați un director „usr” în directorul „~/TMP_DEBS/MyProgram”, în el - un director „share”, în interiorul „share” - un director „pixmaps” „, și plasați fișierul „MyProgram.png” în directorul „pixmaps”. Ca rezultat, calea completă către fișier va fi „~/TMP_DEBS/MyProgram/usr/share/pixmaps/MyProgram.png”. La crearea unui pachet, o parte din directorul „~/TMP_DEBS/MyProgram” va fi tăiată, iar în timpul instalării fișierul „MyProgram.png” va ajunge la adresa dorită „/usr/share/pixmaps”. Astfel, directoarele necesare trebuie create pentru fiecare fișier.

După crearea directorului, tot ce rămâne este să rulați dpkg-deb, trecând parametrii necesari. Cei mai necesari parametri dpkg-deb pentru construirea pachetelor sunt descriși în secțiunea „Parametrii liniei de comandă pentru utilitarul dpkg-deb”. Dacă nu există erori în fișierul de control, va fi creat pachetul de instalare.

Creați o listă de pachete:

$dpkg-scanpackages. /dev/null | gzip -9c > ./Packages.gz
S-ar putea să primim un mesaj ca:

Dpkg-scanpackages: avertisment: Pachete în arhivă, dar lipsesc din fișierul de înlocuire: dpkg-scanpackages: avertisment: 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: a scris 8 intrări în fișierul pachete de ieșire.
Acum există 8 pachete în depozitul nostru. Grozav, să adăugăm depozitul nostru la fișier:

linie ca:

Deb file:///home/username/zips/virensdebianrepository ./
Acum trebuie să actualizați lista de pachete, astfel încât acestea să fie disponibile pentru instalare:

Asta e tot, acum poți instala, de exemplu, editorul de text proaspăt asamblat Sublime Text 2 (instrucțiuni excelente acolo) ca întotdeauna: Acum, pentru a instala SublimeText, trebuie doar să faci:
# apt-get install sublimetext

Citirea listelor de pachete... Terminat Construirea arborelui de dependență Citirea informațiilor despre starea... Terminat Următoarele pachete NOI vor fi instalate: sublimetext 0 actualizat, 1 nou instalat, 0 de eliminat și 245 neactualizat.

Trebuie să obțineți 0 B/11,4 MB de arhive.

După această operațiune, se vor folosi 17,4 MB de spațiu suplimentar pe disc.

AVERTISMENT: Următoarele pachete nu pot fi autentificate! sublimetext Instalați aceste pachete fără verificare? Y Selectarea pachetului deselectat anterior sublimtext.(Se citesc baza de date... 247813 fișiere și directoare instalate în prezent.) Despachetarea sublimetext (din ..././sublimetext_2.0.2_i386.deb) ... Configurarea sublimetext (2.0.2) ... Asta e, pachetul va fi despachetat și instalat, iar faptul că este din depozitul local poate fi văzut aici: (de la ..././sublimetext_2.0.2_i386.deb)

Concluzie

Rețetele descrise în această postare sunt mese rapide, nu foie gras cu trufe. Pentru depozite mari sau pachete complexe, va trebui totuși să citiți documentația și manualele. De asemenea, puteți utiliza un program care nu numai că poate crea depozite, ci și să le inscripționeze pe discuri CD/DVD.

Mulțumiri speciale tovarășului.
curentul creierului

, care a subliniat un bug în postare cu redarea mediului PRE. Acest lucru se întâmplă atunci când ai încredere în meșteșugurile Haskell precum pandoc :-)

Rețetele descrise în această postare sunt mese rapide, nu foie gras cu trufe. Pentru depozite mari sau pachete complexe, va trebui totuși să citiți documentația și manualele. De asemenea, puteți utiliza un program care nu numai că poate crea depozite, ci și să le inscripționeze pe discuri CD/DVD.

Da, dacă aveți ceva de adăugat, scrieți în comentarii, dar rețineți că aceasta este o postare rapidă, fără a fi nevoie să recitiți Ghidurile de ambalare Debian și alte fizice cuantice.
Comentarii anonime...

Rețetele descrise în această postare sunt mese rapide, nu foie gras cu trufe. Pentru depozite mari sau pachete complexe, va trebui totuși să citiți documentația și manualele. De asemenea, puteți utiliza un program care nu numai că poate crea depozite, ci și să le inscripționeze pe discuri CD/DVD.

Există o eroare în textul dvs.:

„Acum, pentru a instala Skype, faceți:

# apt-get install sublimetext "

Puteți despacheta pachetele folosind dpkg-deb:

2. Ai asamblat, instalat și crezi că asta e tot? Niciun astfel de noroc, o aptitudine bună poate distruge pachetul la naiba atunci când instalezi altceva. Știi acel sentiment: cum? Unde? Ce? Am instalat deja acest pachet!!! Ei bine, aceasta este aptitudinea lui - este tot ortodox, ceea ce înseamnă că este patriarhal și nu permite gândirea liberă.

3. De aceea, este nevoie de o manevra urgenta: pachet aptitude hold. „Ce, rezistă bine acum fii atât de amabil să-l dezlipești!” (c) Pentru că de acum înainte aptitude se va plânge că nu este capabil să rezolve dependențele fără a vă distruge pachetul.

4. În acest moment nervii mi-au cedat... Și l-am descoperit pe Gentoo, iar părul meu a devenit din nou moale și mătăsos!

„Acum, pentru a instala Skype, faceți:

@iv_vl comentează...
Și l-am descoperit pe Gentoo, iar părul meu...
PR-ul nebun de la Genta?! ÎN mina blog??? Nu există nicio cale! ;-)

1. Pachetul deb trebuie să conțină întreținătorul și alte prostii
Politica standard - trebuie să știi pe cine să lovești în față pentru un pachet spart :-) Și apoi, acest lucru este în vreun fel mai bun decât nemulțumirea care se întâmplă în fedoras și zyuzas RPM.

2. Ai asamblat, instalat și crezi că asta e tot? Nu există un astfel de noroc, o aptitudine bună poate distruge pachetul la naiba atunci când instalezi altceva.
Doar daca pui pachetul versiunea veche- de exemplu, am hold on IceWM, pe care l-am instalat de la Lenny (întreținătorul idiot a îndesat o gheață cu o tavă spartă în Squeeze). Aptitude te va avertiza înainte de astfel de manevre, dacă este ceva.

3. Prin urmare, este nevoie urgent de o manevra: pachet aptitude hold.... aptitude va jura ca nu este capabil sa rezolve dependentele
Aceasta este o minciună și o provocare: numai dacă nu ați pus o reținere pe ceva precum gcc sau glibc, va rezolva dependențele în mod normal. Spre deosebire de RPM, cărora le place să renunțe imediat în stilul „Ei bine, nu am putut, nu am putut” :-)

Pot exista probleme cu rezolvarea dependențelor, acesta este un fapt, dar este mai bine decât să prăjiți ouă și slănină pe procesor în timp ce așteptați sfârșitul descărcării de către Genta a KDE proaspăt...

4. În acest moment nervii mei au cedat...
Cumva ai fost repede uluit. Apropo, cum rămâne cu dependențele din Gent? Cum trăiești acolo cu tuse de fiecare dată când strănuți?
Nu fac asta... de dragul trollingului... oamenii sunt interesați.

iv_vl

Du-te la limbaj frumos. Una dintre superputerile sale este capacitatea de a compila totul într-un singur binar. Și acest lucru este foarte convenabil, puteți transporta acest fișier peste tot și îl puteți utiliza pe orice mașină. Dar vreau să pot instala programul nostru într-un mod simplu.

Folosind pachete deb, puteți organiza cu ușurință implementarea pe serverele dvs. În același timp, veți avea versiunea și toate celelalte. Cel mai adesea folosesc ubuntu, așa că vom vorbi în mod special despre pachetele deb care pot fi instalate/eliminate folosind utilitarele apt.

Ce trebuie să faceți pentru a vă crea propriul depozit cu pachete? Puteți folosi același launchpad.net, de exemplu. Dar, în ultima vreme, nu se dezvoltă foarte bine și arată nesigur. În plus, este convenabil să îl utilizați pentru dezvoltările dvs. non-comerciale, dar folosirea lui pentru distribuirea de software de întreprindere va fi problematică.

Să abordăm problema din cealaltă parte. În primul rând, trebuie să colectăm pachete deb, iar acest lucru este foarte ușor de făcut singuri folosind utilitarul dpkg-deb. În al doilea rând, trebuie să plasăm aceste pachete undeva, iar pentru aceasta vom folosi super-simplul

Construirea pachetelor

Pentru toate proiectele mele le folosesc. Structura proiectului arată cam așa:

Proiect/ |- bin/ | |- proiect |- src/ | |- github.com/ | |- 4gophers/ | |- proiect/ | |- main.go |- furnizor/

Când rulez gb build, toate binarele sunt construite în folderul bin. Astfel, tot ce avem nevoie este să adăugăm pur și simplu specificația viitorului nostru pachet deb direct în folderul proiectului:

Mkdir project/DEBIAN touch project/DEBIAN/control

Rezultatul va fi o structură ca aceasta:

Proiect/ |- DEBIAN/ | |- control |- bin/ | |- proiect |- src/ |- furnizor/

În fișierul de control trebuie să specificăm informații despre pachetul nostru. Nu uitați de ultima linie goală:

Pachet: proiect Prioritate: opțional Secțiune: devel Dimensiune instalată: 100 Întreținere: Ivan Ivanov Arhitectură: i386 Versiunea: 1.0 Depinde: libc6 (>= 2.1) Descriere: Scurtă descriere aici Descriere lungă aici

  • Pachetul - numele pachetului dvs
  • Prioritate - prioritatea pachetului (opțional, suplimentar, standard, important, obligatoriu) pentru programele obișnuite este mai bine să setați opțional
  • Secțiune - secțiunea căreia îi aparține acest pachet(admin, bază, com, contrib, devel, doc, editori, electronice, încorporat, jocuri, gnome, grafică, hamradio, interpreți, kde, libs, libdevel, mail, math, misc, net, news, non-free, oldlibs , otherosfs, perl, python, science, shells, sound, tex, text, utils, web, x11)
  • Dimensiunea instalată - dimensiunea fișierelor pachetului în kiloocteți
  • Maintainer - numele și adresa de e-mail a creatorului pachetului
  • Arhitectură - arhitectura procesorului pentru care este destinat pachetul (i386, amd64, all, source, all)
  • Versiune - versiunea pachetului
  • Depinde - în acest câmp trebuie să specificați numele pachetelor de care depinde pachetul dvs. (de exemplu, biblioteci)
  • Descriere - în primul rând scriem o scurtă descriere a pachetului, în rest mai detaliat

Tot ceea ce se află în folderul proiectului va intra în pachet. Și folderul bin. Acest folder conține fișierul nostru binar care trebuie instalat. Pentru ca fișierele dvs. să ajungă în directorul dorit de pe computerul utilizatorului, trebuie să creați structura de directoare corespunzătoare în folderul proiectului.

Este de remarcat faptul că această abordare a creării pachetelor deb nu este cea mai corectă. Desigur, în cazul nostru, facem în mod conștient acest pas, dar trebuie să înțelegeți că pachetul deb va conține tot conținutul folderului de proiect, inclusiv folderele src, vendor și așa mai departe. Desigur, puteți copia fișiere într-un alt folder și chiar puteți scrie un script pentru asta, dar totul a fost deja inventat înaintea noastră. Mai mult calea corectă- aceasta este pentru a folosi utilitarele dh_make și dpkg-buildpackage.

Acum puteți asambla pachetul. Pentru a face acest lucru, rulați comanda cu un nivel mai sus:

Dpkg-deb -z8 -Zgzip --build proiect

Cu un nivel mai sus, va fi creat un fișier project.deb, care poate fi instalat folosind comanda:

Sudo dpkg -i project.deb

Propriul depozit de pachete

Acum să trecem la partea distractivă. Cum ne distribuim pachetele? Să lansăm propriul nostru server de depozit, desigur. Și pentru aceasta vom folosi serverul de depozitare apt deb-simple.

Acesta este un server foarte simplu care poate fi instalat cu o singură comandă:

Accesați github.com/esell/deb-simple

Dacă go nu este instalat pe mașina pe care urmează să rulați serverul cu depozite, atunci puteți construi binarul local și pur și simplu îl puteți copia. Alternativ, puteți utiliza docker.

Apoi trebuie să porniți serverul. Acest lucru se poate face folosind docker, dar prefer să folosesc supervisord. Iată un exemplu de configurație a serviciului meu:

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

Aici este important să indicați calea către binar (comandă) și folderul de lucru (director) în care vom plasa config.

Serverul deb-simple acceptă https, dar încă nu avem nevoie de el. Pentru depozite, trebuie să creați un folder repo. Configurația noastră conf.json va arăta astfel:

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

Pentru a încărca un pachet în depozitul dvs., trebuie să utilizați API-ul HTTP al serviciului însuși:

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

La fel pentru ștergere:

Curl -XDELETE "http://localhost:9090/delete" -d "("nume fișier":"project.deb","arch":"amd64")"

Tot ce trebuie să facem este să adăugăm serverul nostru de depozit la lista din /etc/apt/source.list.d/ . Puteți crea dosar separat cu continut:

Deb http://my-hostname:9090/ stabil principal

Acum rulați sudo apt-get update și instalați-vă programele după cum doriți.


Autor: Michael Reed
Data publicării: 4 ianuarie 2014
Traducere: N. Romodanov
Data transferului: iunie 2014

Vă vom spune cum să creați cele mai comune două tipuri de pachete Linux pentru distribuție software, și vă puteți distribui singuri propriile pachete.

Vă vom ghida prin procesul de creare a pachetelor software pentru cele mai populare două sisteme de pachete, DEB și RPM. Puteți folosi aceste tehnici pentru a vă împacheta propriul software sau chiar pentru a menține pachete pentru software-ul care simțiți că zboară sub radar.

Vom începe cu un ghid pentru crearea fișierelor DEB ((.deb) pentru distribuțiile derivate din Debian - pentru aceasta vom folosi Xubuntu ca bază. După aceea, vom detalia tehnicile necesare pentru a crea pachete RPM pentru utilizare pe Red Hat -distribuții derivate și vom folosi Fedora pentru aceasta. Este adesea posibil să creați un pachet pe o distribuție și apoi să îl instalați pe o distribuție asociată (de exemplu, Ubuntu>Debian), dar dacă acest lucru este important, atunci s-ar putea să doriți să încercați. el singur.

În ceea ce privește programul, vom folosi browserul web ușor Dillo ca exemplu de pachet construit din codul sursă. Când construiți de la sursă, dacă construcția nu funcționează conform așteptărilor, puteți, ca de obicei, să căutați soluții pe Internet. De exemplu, în cazul lui Dillo 3.0.3, din cauza unei neglijeri în arhiva codului sursă, a trebuit să adăugăm „LIBS = -lX11” înaintea comenzilor de compilare pentru ca comenzile să funcționeze.

Construirea are loc pe linia de comandă

Resurse

Instalare (sau mașină virtuală) Ubuntu și Fedora

Descriere pas cu pas

Pasul 01: Folosind o mașină virtuală

Utilizarea instrumentelor de virtualizare precum VirtualBox sau Vmware este adesea cea mai bună abordare pentru a crea pachete pentru alte sisteme. Pe de o parte, această abordare vă permite să mențineți o instalare de bază relativ curată, comparabilă cu setările cu care este posibil să lucreze alții. Aceasta înseamnă, de asemenea, că puteți obține o colecție de sisteme țintă folosind distribuții diferite. În plus, majoritatea instrumentelor de virtualizare vă permit să emulați diferite arhitecturi și, prin urmare, o platformă pe 32 de biți poate rula sisteme de operare pe 64 de biți, deși performanța va avea de suferit.

Pasul 02: Să începem de la zero

Dacă ceva nu merge bine în Ubuntu sau Fedora, este perfect sigur să ștergeți directorul sursă și să începeți de la capăt. Rețineți că instrumentele Debian modifică arhiva originală, așa că va trebui să începeți de la o nouă copie.

Partea 1: Debian

Pasul 03: Instalați mediul de construcție

Vom începe prin a instala majoritatea instrumentelor de care avem nevoie pentru a crea programe din codul sursă. Apelează:

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

Acum trebuie să instalăm instrumentele care sunt folosite pentru a lucra cu pachetele DEB. Faceți acest lucru cu următoarea comandă...

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

Pasul 04: Creați o cheie GPG

Dacă nu ați creat o cheie publică GPG în trecut, trebuie să creați una acum, astfel încât să puteți semna pachetele. Mai întâi introduceți textul gpg –gen-key. Selectați valorile implicite și, când vi se solicită, introduceți numele dvs. real și informațiile de contact. Notați cu atenție toate datele, deoarece mai târziu va trebui să le potrivim exact în fișierul de configurare. După aceasta, tastați comanda ls ~/.gnupg pentru a vă asigura că noua cheie există (acesta este fișierul firstname_lastname.gpg). Creați o cheie publică din ea:

Gpg -a --output ~/.gnupg/.gpg --export „[numele tău]”

Importă-l cu:

Gpg --import ~/.gnupg/.gpg

Pasul 05: Descărcați pachetul

În acest exemplu, vom descărca și construi cea mai recentă versiune a browserului web Dillo. Accesați site-ul web Dillo (www.dillo.org) și descărcați cel mai recent archive.tar.bz. Utilizați comanda mkdir ~/srcand pentru a crea un director pentru codul sursă și mutați arhiva în el.

Pasul 06: Despachetați arhiva

Despachetați arhiva folosind comanda tar -xjvf [nume arhivă].tar.bz2. Rețineți că respectarea convențiilor de denumire a directoarelor (nume pachet-versiunea) este importantă pentru scopurile noastre și, din fericire, pachetul Dillo le urmează. De asemenea, este important ca arhiva codului sursă să fie cu un nivel deasupra directorului codului sursă.

Pasul 07: Configurare pentru Debian

Plasați scriptul dh_make în directorul nou despachetat, care se va ocupa de cea mai mare parte a lucrării - adăugarea fișierului de configurare și crearea structurii de directoare și care face parte din setul de instrumente pentru dezvoltatori pe care l-am adăugat mai devreme.

Dh_make -e -c licență -f ../

În exemplul nostru, linie de comandă va arata asa:

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

Când vi se solicită, selectați un fișier binar. Scriptul de ajutor pentru script trebuie să creeze un director numit Debian în directorul codului sursă.

Pasul 08: Deschideți fișierul de control

Deschide in editor de text fișier de control în subdirectorul Debian. Completați secțiunea Pagina de pornire (utilizați Google pentru a completa o listă cu secțiunile programului Debian) și câmpurile de descriere pentru acest fișier.

Pasul 09: Explorați dependențele dvs. existente

Puteți cerceta ce dependențe sunt necesare pentru a rula un program care vine ca pachet. Accesați directorul cu codul sursă și introduceți comanda dpkg-depcheck -d ./configure în terminal. Dacă faceți acest lucru, veți primi erori care indică ce pachet lipsește și este necesar pentru a construi programul (furnizat separat). Puteți deschide acest pachet tastând sudo apt-get build-dep [numele pachetului], ceea ce ar trebui să vă ajute dacă depozitul distribuției dvs. acceptă pachetul. Dacă nu este acceptat, va trebui să rulați în mod repetat dpkg-depcheck -d ./configur și să adăugați pachete manual tastând psudo apt-get install [numele pachetului].

Pasul 10: Adăugați dependențe la fișierul de control

Când toți pașii de la pasul anterior sunt finalizați, ar trebui să aveți o listă cu toate pachetele necesare. Adăugați această listă de dependențe la secțiunea depends: din fișierul de control. Elementele din listă trebuie separate prin virgulă și spațiu.

Încercați să finalizați acest pas cât de mult puteți și nu sări peste el. Sursa: - asta este de obicei pagina de start proiect. În secțiunea Fișiere: * înlocuiți informațiile privind drepturile de autor cu numele autorilor proiectului. Puteți vedea un exemplu de completare în secțiunea Fișiere: debian/*, în care trebuie introduse informațiile relevante. Poate că trebuie să fii un detectiv pentru a găsi informațiile de care ai nevoie. Căutați în directorul sursă fișiere precum AUTHORS și COPYING.

Pasul 12: Editați fișierul jurnal de modificări

Deschideți fișierul jurnal de modificări și asigurați-vă că numele și adresa sunt e-mail sunt aceleași cu cele pe care le-ați introdus la crearea cheii GPG. De obicei, scriptul de ajutor poate adăuga numele dvs. de utilizator la fișier, mai degrabă decât numele dvs. real. Ca și în cazul fișierului cu drepturi de autor, nu săriți peste această secțiune deoarece poate cauza oprirea procesului de creare a pachetului sau crearea unui pachet greșit.

Pasul 13: Creați un pachet

Dacă totul este configurat corect, putem construi în sfârșit pachetul DEB. Mergeți la directorul sursă și rulați dpkg-buildpackage -b pentru a construi pachetul, care va fi plasat în directorul ~/src/. De exemplu, creați un pachet folosind comanda dpkg -I [pachet]. Pentru a verifica conformitatea cu politicile Debian, rulați programul Lintian folosind comanda lintian [pachet]. Vă rugăm să rețineți că acest instrument este notoriu de strict și depinde de dvs. să decideți dacă unele avertismente minore de neconformitate sunt acceptabile pentru dvs. În cele din urmă, instalați pactul folosind comanda sudo dpgk -i [pachet].

Partea 2: Crearea pachetelor RPM în Fedora

Pasul 14: Deschideți fișierul de control

Treceți la modul utilizator root tastând su. Începeți cu grupul de instalare Instrumente de dezvoltare în yum, apoi utilizați yum pentru a instala gcc-c++ fedora-packer. Tastați comanda usermod -a -G mock pentru a adăuga utilizatorul dvs. la grupul simulat. Acest lucru ne permite să efectuăm procedura de construire fără a fi nevoie să devenim root.

Pasul 15: Creați un mediu de construcție

Apăsați Ctrl + D pentru a părăsi rolul rădăcină. Tastați rpmdev-setuptree pentru a crea arborele de directoare (sub ~/rpmbuild) de care avem nevoie.

Pasul 16: Descărcați arhiva și mutați-o în locația dorită

Descărcați pachetul Dillo de pe site-ul web Dillo și mutați arhiva în directorul corespunzător - tastați mv [nume arhivă] ~/rpmbuild/SOURCES.

Pasul 17: Creați un fișier .spec

Distribuțiile bazate pe Red Hat, cum ar fi Fedora, folosesc fișiere .spec pentru a specifica procesul de construire. Schimbați în directorul care conține astfel de fișiere folosind cd ~/rpmbuild/SPECS/andcreateablank.spec și creați un fișier .spec gol folosind rpmdev-newspec dillo.

Pasul 18: Editați fișierul .spec

Tastați comanda gedit dillo.spec. Completați câmpurile Versiune, Rezumat și Licență (în în acest caz,- GPLv3+). URL-ul indică pagina de start proiect; Source0 specifică adresa codului sursă. Furnizați comentarii în câmpurile BuildRequires și Requires. Adăuga descriere completă la zona %descriere.

Pasul 19: Construiți codul sursă

Dacă pachetul este acceptat deloc pe sistem, rulați comanda yum-builddep [nume pachet]. ÎN altfel, va trebui să repetați comanda build pentru a primi mesaje de eroare sau să căutați documentație în arhiva codului sursă. În directorul SPEC, tastați rpmbuild -ba[numele pachetului].spec. Dacă această compilare eșuează și raportează fișiere suplimentare necomprimate, evidențiați și copiați această listă de fișiere în secțiunea %fișiere din fișierul.spec și lansați din nou comanda de compilare. Pachetul va fi acum localizat în directorul RPMS. Tastați rpm -ivh [pachet] pentru a-l instala. Tastați comanda rpm -qa | grep [pachet] pentru a vă asigura că este instalat.

Acest articol nu este complet. Te poți ajuta să scrii

    Corectarea stilului articolului

    Adăugând mai multe informații despre pregătirea codurilor sursă pentru debianizare

Distribuțiile bazate pe Debian nu numai că au un excelent sistem de gestionare a pachetelor APT care rezolvă dependențele în sine, ci și instrumente convenabile pentru crearea pachetelor și a propriilor depozite. Dacă ați decis deja să construiți un program din codul sursă, atunci vă sfătuiesc să studiați și cum să debianizați codul sursă. Va dura puțin mai mult decât standardul

./ configure && make && make install make uninstall

dar nu toate sursele suportă acest lucru, iar ceea ce este și mai comun este că sursele sunt șterse după instalare, apoi programul poate fi eliminat doar manual. Dar pentru a face acest lucru, trebuie să știți exact ce este instalat și unde. Și nimeni nu știe acest lucru cu siguranță, cu excepția dezvoltatorilor de programe înșiși (ei bine, sau a celor care au înțeles mai mult sau mai puțin codul sursă al programului).

Clasificarea cazurilor de asamblare

Posibil următoarele cazuri build-uri de pachete:

    Construire de la sursă;

    Asamblare din fișiere binare;

codurile sursă sau fișierele binare sunt preluate:

    Nu din depozit;

    Din depozitul altei distribuții;

    Din depozitul unei alte versiuni Ubuntu, dintr-un PPA sau din Debian;

debianizare:

    Nu este disponibil;

    Preluat din depozitul Ubuntu, din PPA sau din Debian:

    • Din altă versiune a programului;

      Din versiunea actuală a programului:

      • Nu din depozitul actual de versiuni Ubuntu;

        Din depozitul actual de versiuni Ubuntu;

motivul asamblarii:

    Nici depozitul Ubuntu actual, nici PPA nu conțin versiunea necesară a programului;

    Din anumite motive, nu sunteți mulțumit de versiunea disponibilă a programului (nu sunteți mulțumit de codul sau datele programului, parametrii de configurare sau informații de control pachet);

    ambele.

Construiți din sursă

Ce este necesar

Este disponibil Ghidul complet pentru începători pentru dezvoltatori Debian.

Din păcate, informațiile în rusă sunt puțin depășite, cele mai recente instrucțiuni sunt disponibile în engleză. Dar principiile nu s-au schimbat, așa că dacă sunteți interesat de detalii, este mai bine să citiți manualul cu atenție.

Vom avea nevoie cel puțin de programe instalate prin comandă

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

De asemenea, puteți rezerva automat - aceasta este documentația pentru utilitarele GNU Autoconf, Automake și Libtool. Și, desigur, ceea ce au nevoie ei înșiși codurile sursă pentru asamblarea corectă.

Crearea unei chei de criptare

Acest pas este opțional și poate fi omis.

Pentru a crea o cheie, accesați Aplicații → Accesorii → Parole și chei de criptare. În fereastra care se deschide, în meniu Cheie → Cheie nouă, selectați tasta pgp. Completarea câmpurilor Numele completŞi Adresa de e-mail.

În lumea software-ului liber, pentru a preveni „furtul” sau „contrafacerea”, se obișnuiește să vă semnați lucrurile „valoroase”. cheie electronică, a cărui parte publică este stocată pe servere publice și permite altor utilizatori să determine cu ușurință autenticitatea și integritatea unui anumit lucru.
Prin urmare, fiți foarte responsabil atunci când creați o cheie.
Nimeni nu te obligă să introduci aici numele și prenumele tău real sau orice alte date personale, dar dacă nu ești dorit de Interpol, cred că introducerea numelui și prenumelui va fi decizia corectă, deși poți doar să-ți folosești porecla. . În general, decideți singuri. Dar vă rugăm să indicați adresa de corespondență reală, pe care nu o veți schimba.

Puteți crea o cutie, dacă nu aveți deja una, pe unele populare server de mail: de exemplu, gmail.com sau yandex.ru.
Acest lucru va face mai ușor ca cineva să te contacteze în viitor, care nu te cunoaște, dar dintr-un motiv sau altul a dat peste un „lucru” semnat de tine.
În continuare, vi se va cere să introduceți o parolă ca protecție suplimentară. Poate fi util dacă veți folosi cheia privată pe mașini în care nu puteți avea încredere 100%. Partea inversă- va trebui să introduceți parola de fiecare dată când semnați ceva.

Deşi ultima versiune programe cal de mare are un daemon care pornește automat într-o sesiune GNOME și poate „reține parola” pe durata sesiunii, dar nu toate programele pot funcționa cu el încă.

Deci, ați creat o cheie - acum poate fi folosită la crearea pachetelor.
Pentru a face acest lucru, în fișierul ~/.bashrc sau într-un alt script de pornire al shell-ului dvs. preferat (pentru zsh ~/.zshrc), trebuie să introduceți variabile

Exportați DEBEMAIL=e-mailul dvs

Pe baza e-mailului, cheia va fi căutată în pgp la semnarea pachetului.
Trebuie să vă deconectați și să vă conectați din nou pentru ca modificările să intre în vigoare.
Amintiți-vă că, dacă faceți backporting un pachet pe care nu l-ați debianizat, trebuie să schimbați versiunea cu comanda

dch -i

astfel încât e-mailul dvs. să fie inclus în modificări. Și pentru ca cheia dvs. publică să ajungă la server, trebuie să „ cal de mare→ Parole și chei de criptare”, configurați o conexiune la serverul de chei publice.
Pentru a face acest lucru, în meniu Editare → Opțiuni pe marcaj Publicarea cheilor trebuie să bifezi caseta Publicați cheile....
Acum puteți selecta tasta din meniu prin butonul din dreapta alege Sincronizați și publicați cheile.

Debianizarea nu este disponibilă

Deci avem doar gcoolprog-0.5.3.tar.gz.

De obicei fac următoarele:

Pregătirea directorului de lucru

"http://<путь до файла>" #Puteți, desigur, să îl descărcați pur și simplu printr-un browser, dar de obicei este mai rapid

Primim dosarul gcoolprog-0.5.3.tar.gz. Să-l despachetăm și să mergem la directorul rezultat:

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

Pentru asamblarea corectă, directorul rădăcină trebuie să conțină nu numai numele, ci și versiunea!

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

Dacă comanda s-a finalizat cu succes, atunci tot ce rămâne este să debianizezi.

Debianizare

Nu este nimic în neregulă cu asta, așa cum am spus deja, există scripturi care simplifică foarte mult acest proces.
În general, scopul întregii proceduri este de a crea un director Debian în rădăcina surselor, cu dosarele necesare configurație și script(e).
Pentru a face acest lucru, la rădăcina textelor sursă, executăm

Dh_make --createorig

Pentru ce ar trebui să obținem următorul dialog?

Tip de pachet: binar unic, binar multiplu, bibliotecă, modul kernel sau cdbs? [email protected] Data: Luni, 13 Aug 2007 12:40:33 +0400 Numele pachetului: gcoolprog Versiunea: 0.5.3 Licență: necompletat Tipul pachetului: o singură lovitură pentru a confirma:

Aici indicăm crearea unui pachet pentru un singur fișier binar.

Dar tu și cu mine suntem grozavi și totul a mers fără erori - un director debian a apărut în rădăcina codului sursă, uitându-te la conținutul acestuia, vei vedea o grămadă de fișiere (extensia .ex) cu exemple pentru toate ocaziile.

Descriere:

În loc de Şi (fără ghilimele de colț) trebuie să introduceți o descriere a ce fel de program este.
Acestea sunt informațiile pe care utilizatorul le va vedea când se uită la descrierea pachetului.
Al doilea punct este corectarea fișierului debian/rules
in sectiune binar-arh: trebuie necomentat (adică eliminați # de la începutul liniei)

Dh_install

fără aceasta vom primi un pachet gol.
Uneori debian/rules contine doar:

%:dh$@

Ce este acceptabil folosind debhelper.
Aceste setări vor fi suficiente pentru a construi un pachet cu un singur program care nu conține biblioteci partajate, de ex. doar binarul din /usr/bin și datele din /usr/share.

Construirea pachetului

Acum, să asamblam pachetul:

În directorul de mai sus, i.e. în ~/src/gcoolprog/0.5.3, vom obține fișierele

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

Acum putem instala pachetul

dpkg -i *.deb

Debianizarea este preluată din depozitul Ubuntu, dintr-un PPA sau din Debian

Debianizarea este preluată dintr-o altă versiune a programului

În acest caz, este foarte convenabil să luați debianizarea de acolo și să o corectați pentru noua versiune.

După cum am spus deja, poate că vom avea noroc și va fi suficient să schimbăm versiunea. Dar să nu ghicim.

Mai jos nu voi comenta ceea ce este descris în soluția anterioară.

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

obținem fișierul 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

acum hai să-l despachetăm

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

descărcare versiunea anterioară din fișierul http://packages.ubuntu.com sau http://packages.debian.org gcoolprog_0.5.1.diff.gz(în partea de jos în secțiunea Mai multe informații despre gcoolprog)

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

primim directorul

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

copiați directorul gcoolprog-0.5.1/debian în directorul ~/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

această comandă modifică fișierul debian/changelog, de exemplu vom vedea

Gcoolprog (0.5.1-1ubuntu2) înflăcărat; urgenţă =low * -- denis< ubuntu_user@ mail.ru>

dar din moment ce avem versiunea 0.5.3, trebuie să schimbăm valorile în

Gcoolprog (0.5.3-1ubuntu1) înflăcărat; urgență = scăzută * Nouă versiune în amonte.< ubuntu_user@ mail.ru>--denis

Luni, 13 august 2007 14:13:27 +0400

salvați modificările. Acum puteți rula comanda build într-un pachet.

Dpkg-buildpackage -rfakeroot

obține fișierele

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 dpkgb -i *

Debianizarea este preluată din versiunea curentă a programului

Debianizarea nu este preluată din depozitul versiunii curente Ubuntu Pentru Debian trebuie să utilizați site-ul http://packages.debian.org, pentru Ubuntu - http://packages.ubuntu.com. Apoi, de exemplu, în Ubuntu căutăm pachetul gcoolprog

în depozit pentru o versiune viitoare.

Să pregătim mai întâi directorul de lucru

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

acum descărcați trei fișiere

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

sau același lucru, dar cu o singură comandă

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

apoi despachetați cu comanda

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

Vom obține directorul gcoolprog-0.5.3 Să mergem la el și să schimbăm versiunea:< ubuntu_user@ mail.ru>--denis

cd gcoolprog-0.5.3 dch -i gcoolprog (0.5.3-1ubuntu1) feisty; urgență = scăzut * backport de la gutsy -- denis

salvați modificările. Acum puteți rula comanda build într-un pachet.

Dpkg-buildpackage -rfakeroot

Acum puteți asambla pachetul

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

Debianizarea este preluată din depozitul actualei versiuni Ubuntu

În cazul în care există un pachet pentru versiunea dorită a programului în depozitul versiunii curente Ubuntu, dar din anumite motive nu este satisfăcător și trebuie făcute modificări la sursele sale (de exemplu, trebuie aplicat un patch). ) și reconstruit pe baza a ceea ce este deja în pachetul Debianization, puteți face următoarele.

Pentru a construi veți avea nevoie de următoarele pachete: build-essential devscripts fakeroot. Vor fi necesare și pachete de dezvoltare, le vom instala ulterior.

Descărcați sursele: cd ~/ src apt-get sursă

apt-get source descarcă surse din depozitul Ubuntu în directorul curent. Multe pachete din depozit au surse comune între ele, astfel încât pe lângă sursele pachetului selectat, pot fi descărcate și sursele altor pachete (surse comune mai multor pachete).

Instalați pachetele de dezvoltare necesare pentru asamblare:

sudo apt-get build-dep gcoolprog

Colectăm pachete:

cd gcoolprog-0.5.3 debuild -b -us -uc

debuild ar trebui să fie rulat în directorul sursă. Opțiunile -b -us -uc sunt transmise programului dpkg-buildpackage. Primul necesită colectarea numai pachetelor binare, al doilea și al treilea necesită nesemnarea semnătură digitală, respectiv, pachetul sursă și fișierul .changes. Pachetele rezultate vor fi în directorul cu un nivel mai înalt.

Construire din fișiere binare

Mai jos este un exemplu de ceea ce puteți face dacă este disponibil doar un pachet deb și nu există surse debianizate.

Să presupunem că lucrăm într-un director ~/tmp. Să creăm un subdirector ~/tmp/someprog pentru a despacheta fișierele unui pachet, trebuie să rulați

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

Pentru a extrage informații de control, hai să facem

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

Ei bine, acum, pentru a pune totul înapoi în pachet, trebuie să faci

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

În catalog ~/tmp/someprog/DEBIAN conține fișiere care descriu ce este pachetul, de ce depinde acesta și sume de control fișierele conținute în acesta. Pentru a vă construi pachetul, trebuie să plasați fișierele în director ~/tmp/someprog ca și cum ar fi directorul rădăcină, adică dacă doriți ca fișierul să fie instalat /usr/bin, trebuie să-l puneți în director ~/tmp/someprog/usr/binși, în consecință, dacă ar trebui să fie ceva /etc, apoi în ~/tmp/someprog/etc etc.

Apoi in ~/tmp/someprog creați un director DEBIAN, asigurați-vă că utilizați litere mari și în el un fișier ~/tmp/someprog/DEBIAN/control, acest fișier descrie numele pachetului, dependențele și descrierea acestuia, formatul este foarte simplu. De exemplu:

Pachet: libcurl3 Versiunea: 7.15.2-2 Secțiune: libs Prioritate: opțional Arhitectură: i386 Depinde: 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), certificate ca Sugerează: libldap2 Înlocuiri: libcurl2 (<< 1:7.11.2-2) Installed-Size: 324 Maintainer: Domenico Andreoli Sursa: curl Descriere: Biblioteca de transfer de fișiere multi-protocol libcurl este concepută pentru a fi o bibliotecă de transfer de fișiere multi-protocol solidă, utilizabilă, fiabilă și portabilă.

.

Suportul SSL este oferit de OpenSSL.

Pentru a activa pachetul de suport LDAP este necesar libldap2-dev.

© 2024 ermake.ru -- Despre repararea PC-ului - Portal de informații