Pembungkusan RPM. Bahagian 3: pembungkusan LÖVE

Kami akan melaksanakan yang pertama amalan de pek dengan RPM, dan ia akan mengemas mesin permainan yang ingin kita mainkan. Tanpa itu, permainan tidak akan berjaya.

Yang anda perlukan hanyalah LÖVE

MELIHATNYA adalah mesin untuk permainan 2D yang ditulis dalam Lua, Dan Bukan Tetris 2 ia adalah permainan yang dibuat untuk mesin tersebut. Kerana kebergantungan berdasarkan libmpg123 Mereka tidak berada di repositori rasmi, jadi sangat sesuai untuk tutorial.

Fail SPEC tersedia dalam openSUSE mereka telah menjadi inspirasi.

Muat turun kod sumber

Anda harus memuat turun sumbernya dan memasukkannya ke dalam folder SUMBER.

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

Buat templat spek kosong

Perintah ini akan dibuat cinta.spec. Dalam RPM nama fail sangat penting, sejak tatanama diseragamkan untuk menunjukkan banyak perkara, seperti seni bina, versi, pelepasan, distro, dll.

cd ~ / rpmbuild / SPECS
rpmdev-newspec cinta

Kami akan membuka fail yang baru dibuat ~ / rpmbuild / SPECS / love.spec. Anda akan melihat bahawa ia adalah templat kosong. Bahagian pertama yang saya fikir cukup jelas. Kami akan mengisinya dengan maklumat yang terdapat di halaman rasminya.

Isi templat dan buat SPEC pertama kami

Saya meletakkan rupa fail lengkap dengan banyak komen yang menerangkan setiap bahagian:

# Nama pakej.
# Menurut standard, kami mengalihkan umlaut ke "o".
Nama: cinta

# Versi mengikut pengarang asal pakej (hulu)
Versi: 0.7.2

# Versi pembungkusan. Setiap kali kita mengubah suai pakej, kita menambahnya
# nombor ini. Dengan cara ini yum tahu untuk mengemas kini.
Keluaran: 1% {? Dist}

# Penerangan ringkas mengenai pakej
Ringkasan: LÖVE adalah mesin permainan 2D percuma untuk pembuatan permainan yang mudah di Lua


# Lesen (hanya nama)
Lesen: ZLIB

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

# URL tepat dari mana sumber asalnya dimuat turun
# dalam arkib .tar.gz, .zip, atau yang serupa.
#
# Seperti yang anda lihat, kami menggunakan makro sehingga jika kami mengemas kini pakej tidak ada
# ubah baris ini. Makro "nama" dan "versi" berasal dari apa
# kami telah menunjukkan di atas.
Sumber0: https://bitbucket.org/rude/%name/downloads/%name-%version-linux-src.tar.gz


# Ketergantungan diperlukan untuk membina pakej.
# Kami tahu ini kerana dia meletakkannya di laman webnya.
BuildRequires: flac-devel
BuildRequires: freetype-devel
BuildRequires: glibc-devel
BuildRequires: libmpg123-devel
BuildRequires: libmodplug-devel
BuildRequires: physfs-devel
BuildRequires: mesa-libGL-devel
BuildRequires: pembukaan terbuka-lembut
BuildRequires: DevIL-devel
BuildRequires: libvorbis-devel
BuildRequires: SDL-devel
BuildRequires: libmng-devel
BuildRequires: libtiff-devel
BuildRequires: lua-devel


##########
# Penerangan pakej panjang
% keterangan
LÖVE adalah enjin permainan 2D yang tidak diragukan lagi, yang membolehkan permainan pantas
pembangunan dan prototaip di Lua.

Projek ini sentiasa berkembang dan perubahan datang dan pergi, kadang-kadang dimulakan
oleh kami dan kadang-kadang oleh cadangan orang lain. Sekiranya anda mempunyai idea tentang bagaimana
Untuk menjadikan enjin permainan lebih baik, sangat diharapkan anda menghubungi kami dan
beritahu kami pendapat anda.


##########
# Di bahagian ini kita akan menyiapkan sumber untuk menyusun dan menerapkan
# tambalan jika ada
% persediaan

# Makro ini adalah fungsi yang menyahmampatkan sumber asalnya.
# Kami menunjukkan 2 parameter:
# -q: Mod senyap. Jangan hantar mesej untuk setiap fail
# zip.
# -n% name-HEAD: Dalam kes ini ketika membuka zip direktori dibuat dipanggil
#% nama-KEPALA. Sekiranya kami tidak menunjukkannya, program akan mencari
# yang disebut% name-% version dan tidak menjumpainya akan memberikan ralat.
% setup -q -n% name-HEAD

# Seperti yang anda ketahui, fail teks yang dibuat di Windows berakhir dengan rn,
# semasa di * nix mereka berakhir hanya di n. Jadi untuk yang lebih baik
# keserasian, kami akan membuang r dalam dokumentasi yang disertakan.
sed -i / s // '* .txt


##########
# Di bahagian ini kita akan menyusun kod sumber
% membina

# Ini sama dengan melakukan `. / Configure` dengan sekumpulan parameter tambahan yang
#mudahkan kita untuk tidak melakukan kesalahan.
% mengkonfigurasi

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


##########
# Di sini kita akan memasang program di dalam% buildroot.
% memasang

# Like `make install` dengan banyak parameter yang telah ditentukan sebelumnya.
% buat_pasang


##########
# Di sini kita mengaudit fail yang dipasang
% fail

# Kami akan menunjukkan fail yang didokumentasikan dengan fungsi ini
% doc berubah.txt lesen.txt readme.txt

# Seterusnya anda harus menyenaraikan semua fail yang akan dipasang.
# Satu-satunya fail yang akan memasangnya ialah / usr / bin / love, atau yang sama:
% _bindir /% nama


##########
# Akhirnya, anda perlu mengisi log perubahan pakej
% perubahan
* Jum 18 Nov 2011 Jairot Llopis 0.7.2-1
- Pelepasan awal
@ domain.com>

Kami mempunyai satu langkah terakhir sebelum membuat pakej: memasang pergantungan. Kami akan menggunakan utiliti dari pakej yum-utils untuk membacanya terus dari fail yang baru kita buat.

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

Itu sudah mencukupi. Seterusnya kami akan membuat pakej.

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

Sedia! Kami sudah mengedarkan pakej kami di pohon direktori. Kita akan mempunyai:

  • ~/rpmbuild/RPMS/x86_64/love-0.7.2-1.fc16.x86_64.rpm: RPM sedia dipasang.
  • ~ / rpmbuild / SRPMS / love-0.7.2-1.fc16.src.rpm: RPM sumber siap mengubah pakej dengan mudah. Ia merangkumi fail SPEC, kod sumber dan tambalannya.
Namun, memiliki mesin permainan tidak akan membawa kebaikan kepada kita sendiri. Pada ansuran seterusnya kita akan melihat caranya membina permainan itu sendiri.


3 komen, tinggalkan komen anda

Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   Swatch kata

    anda boleh melakukan tutorial untuk mengemas .deb

  2.   Lucas matias gomez kata

    Apa tutorial yang bagus, saya juga ingin anda membuatnya untuk .deb

  3.   porter kata

    sangat baik