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ść
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 Llopis0.7.2-1 @ domena.com>
- Pierwsze wydanie
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.
możesz zrobić samouczek dotyczący pakowania .deb
Cóż za dobry poradnik, chciałbym, żebyś zrobił też taki dla .deb
muy bueno