We zullen de eerste uitvoeren praktijk de pack met RPM, en het zal de engine van het spel dat we willen spelen inpakken. Zonder dit zou het spel niet werken. |
Alles wat je nodig hebt is liefde
De SPEC-bestanden die beschikbaar zijn in openSUSE ze hebben als inspiratie gediend.
Download de broncode
U moet de bronnen downloaden en in de map SOURCES plaatsen.
cd ~ / rpmbuild / SOURCES
wget https://bitbucket.org/rude/love/downloads/love-0.7.2-linux-src.tar.gz
Maak een lege spec-sjabloon
Met deze opdracht wordt liefde.spec. In RPM is de naam van de bestanden vrij belangrijk, aangezien de nomenclatuur is gestandaardiseerd om veel dingen aan te geven, zoals je architectuur, versie, release, distro, etc.
cd ~ / rpmbuild / SPECS
rpmdev-newsec liefde
We openen het nieuw gemaakte bestand ~ / rpmbuild / SPECS / love.spec. U zult zien dat het een blanco sjabloon is. Het eerste deel is volgens mij vrij duidelijk. We vullen het met de informatie op de officiële pagina.
Vul het sjabloon in en maak onze eerste SPEC
Hier ziet u hoe het volledige bestand eruitziet met veel opmerkingen die elke sectie uitleggen:
# Naam van het pakket.
# Volgens de norm verwijderen we de umlaut naar de "o".
Naam: liefde
# Versie volgens de oorspronkelijke auteur van het pakket (upstream)
Versie 0.7.2
# Verpakkingsversie. Elke keer dat we het pakket wijzigen, voegen we er een toe aan
# dit nummer. Op deze manier weet yum het te updaten.
Vrijgave: 1% {? Dist}
# Korte beschrijving van het pakket
Samenvatting: LÖVE is een gratis 2D-game-engine voor het eenvoudig maken van games in Lua
# Licentie (alleen de naam)
Licentie: ZLIB
# Programma website
URL: http://love2d.org/
# Exacte URL waarvan de originele bronnen meestal worden gedownload
# in een archief .tar.gz, .zip of iets dergelijks.
#
# Zoals u kunt zien, gebruiken we macro's, zodat we dat niet hoeven te doen als we het pakket bijwerken
# wijzig deze regel. De macro's "naam" en "versie" komen van wat
# hebben we hierboven aangegeven.
Bron0: https://bitbucket.org/rude/%name/downloads/%name-%version-linux-src.tar.gz
# Afhankelijkheden vereist om het pakket te bouwen.
# We weten dit omdat hij het op zijn website plaatst.
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
##########
# Lange pakketbeschrijving
% Omschrijving
LÖVE is een ongetwijfeld geweldige 2D-game-engine, waarmee je snel kunt gamen
ontwikkeling en prototyping in Lua.
Dit project evolueert voortdurend en veranderingen komen en gaan, soms geïnitieerd
door ons en soms door de aanbevelingen van anderen. Als je een idee hebt hoe
om de game-engine te verbeteren is het zeer gewenst dat u contact met ons opneemt en
laat ons weten wat je denkt.
##########
# In deze sectie zullen we de bronnen voorbereiden om het
# patches als je die hebt
% prep
# Deze macro is een functie die de originele bronnen decomprimeert.
# We geven 2 parameters aan:
# -q: stille modus. Stuur geen berichten voor elk bestand
# uitgepakt.
# -n% name-HEAD: In dit geval wordt bij het uitpakken een map aangemaakt met de naam
#% name-HEAD. Als we dit niet zouden aangeven, zou het programma zoeken
# een genaamd% name-% version en het niet vinden zou een foutmelding geven.
% setup -q -n% name-HEAD
# Zoals u weet, eindigen tekstbestanden die in Windows zijn gemaakt op rn,
# terwijl ze in * nix eindigen, eindigen ze alleen in n. Dus ten goede
# compatibiliteit, zullen we de r's verwijderen in de meegeleverde documentatie.
sed -i 's / r //' * .txt
##########
# In deze sectie zullen we de broncode compileren
% build
# Dit is hetzelfde als het doen van `. / Configure` met een aantal extra parameters die
# maak het ons gemakkelijk om geen fouten te maken.
% configureren
# Voeg de standaardopties toe om te maken, indien aanwezig.
# In mijn geval breidt dit zich uit naar `make -j3`.
maak% {? _ smp_mflags}
##########
# Hier zullen we het programma installeren in% buildroot.
% install
# Zoals `make install` met veel vereiste voorgedefinieerde parameters.
% make_install
##########
# Hier controleren we de geïnstalleerde bestanden
% bestanden
# We zullen de bestanden aangeven die documentatie zijn met deze functie
% doc changes.txt license.txt readme.txt
# Vervolgens moet u alle bestanden vermelden die zullen worden geïnstalleerd.
# Het enige bestand dat dit zal installeren is / usr / bin / love, of wat hetzelfde is:
% _bindir /% naam
##########
# Ten slotte moet u het wijzigingslogboek in het pakket invullen
% changelog
* Vr 18 november 2011 Jairot Llopis0.7.2-1 @ domein.com>
- Eerste uitgave
We hebben nog een laatste stap voordat we het pakket maken: de afhankelijkheden installeren. We zullen een hulpprogramma uit het pakket gebruiken yum-utils om ze rechtstreeks te lezen vanuit het bestand dat we zojuist hebben gemaakt.
sudo yum-builddep ~ / rpmbuild / SPECS / love.spec
Dat zou moeten volstaan. Vervolgens maken we het pakket.
rpmbuild -ba ~ / rpmbuild / SPECS / love.spec
Klaar! We hebben ons pakket al gedistribueerd in de directorystructuur. We zullen hebben:
- ~/rpmbuild/RPMS/x86_64/love-0.7.2-1.fc16.x86_64.rpm: RPM klaar om te installeren.
- ~ / rpmbuild / SRPMS / love-0.7.2-1.fc16.src.rpm: Source RPM klaar om het pakket gemakkelijk aan te passen. Het bevat het SPEC-bestand, de broncode en de patches.
je zou een tutorial kunnen doen voor het verpakken van .deb
Wat een goede tutorial, ik zou ook graag willen dat je er een maakt voor .deb
muy bueno