Vom realiza primul practică de împachetează cu RPMși va împacheta motorul jocului pe care vrem să îl jucăm. Fără el, jocul nu ar funcționa. |
Tot ce ai nevoie este dragoste
Fișierele SPEC disponibile în openSUSE au servit ca inspirație.
Descărcați codul sursă
Va trebui să descărcați sursele și să le puneți în folderul SURSE.
cd ~ / rpmbuild / SOURCES
wget https://bitbucket.org/rude/love/downloads/love-0.7.2-linux-src.tar.gz
Creați un șablon de specificații necompletat
Această comandă se va crea dragoste.spec. În RPM numele fișierelor este destul de important, deoarece nomenclatura sa este standardizată astfel încât să indice multe lucruri, cum ar fi arhitectura, versiunea, versiunea, distribuția etc.
cd ~ / rpmbuild / SPECS
rpmdev-newsec love
Vom deschide fișierul nou creat ~ / rpmbuild / SPECS / love.spec. Veți vedea că este un șablon gol. Prima parte cred că se explică de la sine. O vom umple cu informațiile găsite pe pagina sa oficială.
Completați șablonul și creați primul nostru SPEC
Iată cum arată fișierul complet cu o mulțime de comentarii care explică fiecare secțiune:
# Numele pachetului.
# Conform standardului, scoatem umlauta la „o”.
Nume: dragoste
# Versiune conform autorului original al pachetului (în amonte)
Versiune: 0.7.2
# Versiunea de ambalare. De fiecare dată când modificăm pachetul, adăugăm unul la
# acest număr. În acest fel, Yum știe să îl actualizeze.
Lansare: 1% {? Dist}
# Scurtă descriere a pachetului
Rezumat: LÖVE este un motor de jocuri 2D gratuit pentru crearea ușoară a jocului în Lua
# Licență (doar numele)
Licență: ZLIB
# Site-ul programului
URL: http://love2d.org/
# Adresa URL exactă din care sunt descărcate sursele originale, de obicei
# într-o arhivă .tar.gz, .zip sau ceva similar.
#
# După cum puteți vedea, folosim macrocomenzi, astfel încât, dacă actualizăm pachetul, nu trebuie să o facem
# modificați această linie. Macrocomenzile „nume” și „versiune” provin din ce
# am indicat mai sus.
Sursa0: https://bitbucket.org/rude/%name/downloads/%name-%version-linux-src.tar.gz
# Dependențe necesare pentru a construi pachetul.
# Știm acest lucru pentru că el îl pune pe site-ul său.
BuildRequires: flac-devel
BuildRequires: freetype-devel
BuildRequires: glibc-devel
BuildRequires: libmpg123-devel
BuildRequires: libmodplug-devel
BuildRequires: physfs-devel
BuildRequires: mesa-libGL-devel
BuildRequires: openal-soft-devel
BuildRequires: DevIL-devel
BuildRequires: libvorbis-devel
BuildRequires: SDL-devel
BuildRequires: libmng-devel
BuildRequires: libtiff-devel
BuildRequires: lua-devel
###########
# Descrierea pachetului lung
% Descriere
LÖVE este un motor de joc 2D incontestabil minunat, care permite jocul rapid
dezvoltare și prototipare în Lua.
Acest proiect este în continuă evoluție și schimbările vin și pleacă, uneori inițiate
de noi și uneori de recomandările altora. Dacă aveți o idee despre cum
pentru a îmbunătăți motorul jocului, este de dorit să ne contactați și
spune-ne ce crezi.
###########
# În această secțiune vom pregăti sursele pentru a compila și aplica
# patch-uri dacă aveți
% pregătire
# Această macrocomandă este o funcție care decomprimă sursele originale.
# Indicăm 2 parametri:
# -q: Mod silențios. Nu trimiteți mesaje pentru fiecare fișier
# dezarhivat.
# -n% name-HEAD: În acest caz, când se dezarhivează un director, se numește
#% name-HEAD. Dacă nu am indica acest lucru, programul ar căuta
# one numit% name-% versiune și dacă nu o găsiți ar da o eroare.
% setup -q -n% name-HEAD
# După cum știți, fișierele text create în Windows se termină cu rn,
# în timp ce în * nix se termină doar în n. Deci în bine
# compatibilitate, vom elimina r-urile din documentația inclusă.
sed -i 's / r //' * .txt
###########
# În această secțiune vom compila codul sursă
% construi
# Aceasta este la fel ca a face `. / Configure` cu o grămadă de parametri suplimentari care
# ușurează-ne să nu greșim.
% configurați
# Adăugați opțiunile implicite de făcut, dacă există.
# În cazul meu, aceasta se extinde la „make -j3”.
face% {? _ smp_mflags}
###########
# Aici vom instala programul în% buildroot.
% instalare
# Ca „make install” cu mulți parametri predefiniți necesari.
% make_install
###########
# Aici verificăm fișierele instalate
% fișiere
# Vom indica fișierele care sunt documentație cu această funcție
% doc changes.txt license.txt readme.txt
# În continuare trebuie să enumerați toate fișierele care vor fi instalate.
# Singurul fișier care va instala acest lucru este / usr / bin / love, sau ce este același:
% _bindir /% name
###########
# În cele din urmă, trebuie să completați jurnalul de modificări din pachet
% changelog
* Vin 18 noiembrie 2011 Jairot Llopis0.7.2-1 @ domain.com>
- Lansare inițială
Avem un ultim pas înainte de a crea pachetul: instalarea dependențelor. Vom folosi un utilitar din pachet yum-utils pentru a le citi direct din fișierul pe care tocmai l-am creat.
sudo yum-builddep ~ / rpmbuild / SPECS / love.spec
Ar trebui să fie suficient. În continuare vom crea pachetul.
rpmbuild -ba ~ / rpmbuild / SPECS / love.spec
Gata! Avem deja pachetul nostru distribuit în arborele directorului. Noi vom avea:
- ~/rpmbuild/RPMS/x86_64/love-0.7.2-1.fc16.x86_64.rpm: RPM gata de instalare.
- ~ / rpmbuild / SRPMS / love-0.7.2-1.fc16.src.rpm: RPM sursă gata să modifice pachetul cu ușurință. Include fișierul SPEC, codul sursă și patch-urile.
ai putea face un tutorial pentru ambalarea .deb
Ce tutorial bun, aș vrea să creezi unul pentru .deb
foarte bun