Opakowanie RPM. Część 3: Pakowanie LÖVE

Zrealizujemy pierwszy ćwiczyć de opakowanie z RPM, i zapakuje silnik gry, w którą chcemy grać. Bez tego gra by nie działała.

Wszystko czego Ci trzeba to miłość

WIDZI TO to silnik gier 2D napisanych w LukaNie Tetris 2 jest to gra stworzona dla tego silnika. Ze względu na zależności oparte na libmpg123 Nie ma ich w oficjalnych repozytoriach, więc jest idealny do samouczka.

Pliki SPEC dostępne w openSUSE służyły jako inspiracja.

Pobierz kod źródłowy

Będziesz musiał pobrać źródła i umieścić je w folderze SOURCES.

cd ~ / rpmbuild / SOURCES
wget https://bitbucket.org/rude/love/downloads/love-0.7.2-linux-src.tar.gz

Utwórz pusty szablon specyfikacji

To polecenie utworzy miłość.spec. W RPM nazwa plików jest dość ważna, ponieważ jego nomenklatura jest znormalizowana wskazać wiele rzeczy, takich jak architektura, wersja, wydanie, dystrybucja itp.

cd ~ / rpmbuild / SPECS
rpmdev-gazec kocham

Otworzymy nowo utworzony plik ~ / rpmbuild / SPECS / love.spec. Zobaczysz, że jest to pusty szablon. Myślę, że pierwsza część jest dość oczywista. Wypełnimy to informacje znalezione na jego oficjalnej stronie.

Wypełnij szablon i utwórz nasz pierwszy SPEC

Oto jak wygląda cały plik z wieloma komentarzami, które wyjaśniają każdą sekcję:

# Nazwa pakietu.
# Zgodnie ze standardem umlaut usuwamy na „o”.
Imię: miłość

# Wersja zgodna z oryginalnym autorem pakietu (upstream)
Wersja: 0.7.2

# Wersja opakowania. Za każdym razem, gdy modyfikujemy pakiet, dodajemy jeden do
# ten numer. W ten sposób yum wie, jak go zaktualizować.
Wydanie: 1% {? Dist}

# Krótki opis pakietu
Podsumowanie: LÖVE to darmowy silnik gier 2D do łatwego tworzenia gier w Lua


# Licencja (tylko nazwa)
Licencja: ZLIB

# Witryna programu
URL: http://love2d.org/

# Dokładny adres URL, z którego zwykle pobierane są oryginalne źródła
# w archiwum .tar.gz, .zip lub podobnym.
#
# Jak widać, używamy makr, więc jeśli aktualizujemy pakiet, nie musimy tego robić
# zmodyfikuj tę linię. „Nazwa” i „wersja” makra pochodzą z czego
# wskazaliśmy powyżej.
Źródło0: https://bitbucket.org/rude/%name/downloads/%name-%version-linux-src.tar.gz


# Zależności wymagane do zbudowania pakietu.
# Wiemy to, ponieważ umieścił to na swojej stronie internetowej.
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


##########
# Długi opis pakietu
% opis
LÖVE to niewątpliwie niesamowity silnik gier 2D, który umożliwia szybką grę
rozwój i prototypowanie w Lua.

Ten projekt stale się rozwija, a zmiany przychodzą i odchodzą, czasem inicjowane
przez nas, a czasem przez zalecenia innych. Jeśli masz pomysł, jak to zrobić
Aby ulepszyć silnik gry, bardzo pożądane jest, abyś skontaktował się z nami i
Pozwól nam wiedzieć co myślisz.


##########
# W tej sekcji przygotujemy źródła do kompilacji i zastosowania
# łatek, jeśli jakieś masz
% prep

# To makro jest funkcją, która dekompresuje oryginalne źródła.
# Wskazujemy 2 parametry:
# -q: tryb cichy. Nie wysyłaj wiadomości dla każdego pliku
# rozpakowany.
# -n% nazwa-HEAD: W tym przypadku podczas rozpakowywania tworzony jest katalog o nazwie
#% nazwa-HEAD. Gdybyśmy tego nie wskazali, program przeszukałby
# jeden o nazwie% name-% version i nie odnalezienie go spowodowałoby błąd.
% setup -q -n% nazwa-HEAD

# Jak wiesz, pliki tekstowe utworzone w systemie Windows kończą się na rn,
# podczas gdy w * nix kończą się tylko na n. Więc na lepsze
# kompatybilności, usuniemy r z dołączonej dokumentacji.
sed -i 's / r //' * .txt


##########
# W tej sekcji skompilujemy kod źródłowy
% budować

# To jest to samo, co wykonanie `. / Configure` z kilkoma dodatkowymi parametrami
# ułatwiają nam unikanie błędów.
% configure

# Dodaj domyślne opcje, jeśli takie istnieją.
# W moim przypadku to rozwija się do `make -j3`.
stwórz% {? _ smp_mflags}


##########
# Tutaj zainstalujemy program w% buildroot.
% zainstalować

# Podobnie jak `make install` z wieloma wymaganymi predefiniowanymi parametrami.
% make_install


##########
# Tutaj sprawdzamy zainstalowane pliki
% akta

# Wskażemy pliki, które są dokumentacją z tą funkcją
% doc changes.txt license.txt readme.txt

# Następnie musisz wymienić wszystkie pliki, które zostaną zainstalowane.
# Jedyny plik, który to zainstaluje, to / usr / bin / love, lub to samo:
% _bindir /% nazwa


##########
# Na koniec musisz wypełnić dziennik zmian pakietu
% changelog
* Piątek, 18 listopada 2011 Jairot Llopis 0.7.2-1
- Pierwsze wydanie
@ domena.com>

Przed utworzeniem pakietu mamy jeszcze jeden krok: zainstaluj zależności. Użyjemy narzędzia z pakietu mniam-utils aby przeczytać je bezpośrednio z właśnie utworzonego pliku.

sudo yum-builddep ~ / rpmbuild / SPECS / love.spec

To powinno wystarczyć. Następnie utworzymy pakiet.

rpmbuild -ba ~ / rpmbuild / SPECS / love.spec

Gotowy! Nasz pakiet jest już rozprowadzony w drzewie katalogów. Będziemy mieli:

  • ~/rpmbuild/RPMS/x86_64/love-0.7.2-1.fc16.x86_64.rpm: RPM gotowy do zainstalowania.
  • ~ / rpmbuild / SRPMS / love-0.7.2-1.fc16.src.rpm: Źródło RPM gotowe do łatwej modyfikacji pakietu. Zawiera plik SPEC, kod źródłowy i poprawki.
Jednak samo posiadanie silnika gry nic nam nie da. W kolejnej odsłonie zobaczymy, jak to zrobić zbudować samą grę.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   próbka powiedział

    możesz zrobić samouczek dotyczący pakowania .deb

  2.   Lucas matias gomez powiedział

    Cóż za dobry poradnik, chciałbym, żebyś zrobił też taki dla .deb

  3.   porter powiedział

    muy bueno