Kemasan RPM. Bagian 3: mengemas LÖVE

Kami akan melakukan yang pertama latihan de bungkus dengan RPM, dan itu akan mengemas mesin game yang ingin kita mainkan. Tanpanya, game tidak akan berhasil.

Yang kamu butuhkan hanyalah cinta

LIHAT adalah mesin untuk game 2D yang ditulis Lua, Dan Bukan Tetris 2 itu adalah permainan yang dibuat untuk mesin tersebut. Karena ketergantungan berdasarkan libmpg123 Mereka tidak ada di repositori resmi, jadi sangat ideal untuk tutorial.

File SPEC tersedia dalam format openSUSE mereka telah menjadi inspirasi.

Unduh kode sumber

Anda harus mengunduh source dan meletakkannya di folder SOURCES.

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

Buat template spesifikasi kosong

Perintah ini akan membuat cinta.spec. Dalam RPM nama file cukup penting karena nomenklaturnya distandarisasi untuk menunjukkan banyak hal, seperti arsitektur, versi, rilis, distro, dll.

cd ~ / rpmbuild / SPECS
rpmdev-kertas koran cinta

Kami akan membuka file yang baru dibuat ~ / rpmbuild / SPECS / love.spec. Anda akan melihat bahwa itu adalah template kosong. Bagian pertama menurut saya cukup jelas. Kami akan mengisinya dengan informasi yang ditemukan di halaman resminya.

Isi template dan buat SPEC pertama kami

Berikut adalah tampilan file lengkap dengan banyak komentar yang menjelaskan setiap bagian:

# Nama paket.
# Menurut standar, kami menghapus umlaut ke "o".
Nama: cinta

# Versi menurut pembuat asli paket (upstream)
Versi: 0.7.2

# Versi kemasan. Setiap kali kami memodifikasi paket, kami menambahkan satu ke
# nomor ini. Dengan cara ini yum tahu cara memperbaruinya.
Rilis: 1% {? Dist}

# Deskripsi singkat paket
Ringkasan: LÖVE adalah mesin game 2D gratis untuk pembuatan game yang mudah di Lua


# Lisensi (hanya namanya)
Lisensi: ZLIB

# Situs web program
URL: http://love2d.org/

# URL persis dari mana sumber asli diunduh, biasanya
# dalam arsip .tar.gz, .zip, atau yang serupa.
#
# Seperti yang Anda lihat, kami menggunakan makro sehingga jika kami memperbarui paket, kami tidak perlu melakukannya
# ubah baris ini. Makro "nama" dan "versi" berasal dari apa
# telah kami sebutkan di atas.
Sumber0: https://bitbucket.org/rude/%name/downloads/%name-%version-linux-src.tar.gz


# Ketergantungan yang dibutuhkan untuk membangun paket.
# Kami tahu ini karena dia menaruhnya di situs webnya.
Membutuhkan: 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


##########
# Deskripsi paket panjang
% deskripsi
LÖVE adalah mesin permainan 2D yang luar biasa mengagumkan, yang memungkinkan permainan yang cepat
pengembangan dan pembuatan prototipe di Lua.

Proyek ini terus berkembang dan perubahan datang dan pergi, terkadang dimulai
oleh kami dan terkadang oleh rekomendasi orang lain. Jika Anda punya ide tentang bagaimana
untuk membuat mesin permainan lebih baik, sangat diharapkan Anda menghubungi kami dan
beri tahu kami pendapat Anda.


##########
# Pada bagian ini kita akan menyiapkan sumber untuk mengkompilasi dan menerapkan
# tambalan jika Anda punya
% persiapan

# Makro ini adalah fungsi yang mendekompresi sumber asli.
# Kami menunjukkan 2 parameter:
# -q: Mode diam. Jangan mengirim pesan untuk setiap file
# membuka ritsleting.
# -n% name-HEAD: Dalam kasus ini, ketika membuka ritsleting sebuah direktori akan dipanggil
#% nama-KEPALA. Jika kami tidak menunjukkan ini, program akan mencari
# satu memanggil% name-% versi dan tidak menemukannya akan memberikan kesalahan.
% penyiapan -q -n% nama-KEPALA

# Seperti yang Anda ketahui, file teks yang dibuat di Windows diakhiri dengan rn,
# sedangkan di * nix diakhiri hanya dengan n. Jadi lebih baik
# kompatibilitas, kami akan menghapus r dalam dokumentasi yang disertakan.
sed -i 's / r //' * .txt


##########
# Pada bagian ini kami akan mengkompilasi kode sumber
% membangun

# Ini sama dengan melakukan `. / Configure` dengan banyak parameter tambahan itu
# memudahkan kita untuk tidak melakukan kesalahan.
% konfigurasi

# Tambahkan opsi default untuk dibuat, jika ada.
# Dalam kasus saya ini berkembang menjadi `make -j3`.
buat% {? _ smp_mflags}


##########
# Di sini kita akan menginstal program di dalam% buildroot.
% Install

# Seperti `make install` dengan banyak parameter yang telah ditentukan sebelumnya.
% make_install


##########
# Di sini kami mengaudit file yang diinstal
% file

# Kami akan menunjukkan file-file yang merupakan dokumentasi dengan fungsi ini
% doc perubahan.txt license.txt readme.txt

# Selanjutnya Anda harus membuat daftar semua file yang akan diinstal.
# Satu-satunya file yang akan menginstal ini adalah / usr / bin / love, atau yang sama:
% _bindir /% nama


##########
# Terakhir, Anda harus mengisi log perubahan di paket
% changelog
* Jum 18 Nov 2011 Jairot Llopis 0.7.2-1
- Peluncuran pertama
@ domain.com>

Kami memiliki satu langkah terakhir sebelum membuat paket: menginstal dependensi. Kami akan menggunakan utilitas dari paket yum-utils untuk membacanya langsung dari file yang baru kita buat.

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

Itu sudah cukup. Selanjutnya kita akan membuat paketnya.

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

Siap! Kami telah mendistribusikan paket kami di pohon direktori. Kami akan memiliki:

  • ~/rpmbuild/RPMS/x86_64/love-0.7.2-1.fc16.x86_64.rpm: RPM siap dipasang.
  • ~ / rpmbuild / SRPMS / love-0.7.2-1.fc16.src.rpm: Source RPM siap untuk memodifikasi paket dengan mudah. Ini termasuk file SPEC, kode sumber dan tambalan.
Namun, memiliki mesin gim tidak akan ada gunanya bagi kita. Dalam angsuran berikutnya kita akan melihat caranya membangun gamenya sendiri.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.

  1.   Carikan dijo

    Anda bisa melakukan tutorial untuk mengemas .deb

  2.   Lucas matias gomez dijo

    Tutorial yang bagus, saya juga ingin Anda membuatnya untuk .deb

  3.   porter dijo

    muy bueno