Bao bì RPM. Phần 3: đóng gói LÖVE

Chúng tôi sẽ thực hiện đầu tiên thực hành de đóng gói với RPM, và nó sẽ đóng gói công cụ của trò chơi mà chúng tôi muốn chơi. Nếu không có nó, trò chơi sẽ không hoạt động.

Tất cả những gì bạn cần là tình yêu

THẤY NÓ là một công cụ cho các trò chơi 2D được viết bằng lấy, Và Không phải Tetris 2 nó là một trò chơi được tạo ra cho động cơ nói trên. Do sự phụ thuộc dựa trên libmpg123 Chúng không có trong kho lưu trữ chính thức, vì vậy nó là lý tưởng cho hướng dẫn.

Các tệp SPEC có sẵn trong openSUSE họ đã đóng vai trò là nguồn cảm hứng.

Tải xuống mã nguồn

Bạn sẽ phải tải xuống các nguồn và đặt chúng trong thư mục SOURCES.

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

Tạo một mẫu thông số kỹ thuật trống

Lệnh này sẽ tạo tình yêu.spec. Trong RPM, tên của tệp khá quan trọng, vì danh pháp của nó được tiêu chuẩn hóa để chỉ ra nhiều thứ, chẳng hạn như kiến ​​trúc, phiên bản, bản phát hành, bản phân phối, v.v.

cd ~ / rpmbuild / ĐẶC ĐIỂM KỸ THUẬT
rpmdev-Newspaperec tình yêu

Chúng tôi sẽ mở tệp mới tạo ~ / rpmbuild / SPECS / love.spec. Bạn sẽ thấy rằng đó là một mẫu trống. Phần đầu tiên tôi nghĩ là khá tự giải thích. Chúng tôi sẽ lấp đầy nó với thông tin được tìm thấy trên trang chính thức của nó.

Điền vào mẫu và tạo đặc điểm kỹ thuật đầu tiên của chúng tôi

Tôi đặt tệp hoàn chỉnh trông như thế nào với rất nhiều nhận xét giải thích từng phần:

# Tên gói hàng.
# Theo tiêu chuẩn, chúng tôi loại bỏ âm sắc thành "o".
Tên: tình yêu

# Phiên bản theo tác giả gốc của gói (ngược dòng)
Phiên bản: 0.7.2

# Phiên bản bao bì. Mỗi lần chúng tôi sửa đổi gói, chúng tôi thêm một gói vào
# con số này. Bằng cách này bạn biết để cập nhật nó.
Phát hành: 1% {? Dist}

# Mô tả ngắn gọn về gói
Tóm tắt: LÖVE là một công cụ trò chơi 2D miễn phí để tạo trò chơi dễ dàng trong Lua


# Giấy phép (chỉ tên)
Giấy phép: ZLIB

# Trang web chương trình
URL: http://love2d.org/

# URL chính xác mà từ đó các nguồn gốc được tải xuống, thường là
# trong kho lưu trữ .tar.gz, .zip hoặc thứ gì đó tương tự.
#
# Như bạn thấy, chúng tôi sử dụng macro để nếu chúng tôi cập nhật gói, chúng tôi không phải
# sửa đổi dòng này. Các macro "tên" và "phiên bản" đến từ cái gì
# chúng tôi đã chỉ ra ở trên.
Nguồn0: https://bitbucket.org/rude/%name/downloads/%name-%version-linux-src.tar.gz


# Phụ thuộc cần thiết để xây dựng gói.
# Chúng tôi biết điều này vì anh ấy đưa nó lên trang web của mình.
BuildRequires: flac-devel
BuildRequires: freetype-devel
Yêu cầu xây dựng: glibc-devel
BuildRequires: libmpg123-devel
BuildRequires: libmodplug-devel
Yêu cầu xây dựng: Physfs-devel
Yêu cầu xây dựng: mesa-libGL-devel
Yêu cầu xây dựng: openal-soft-devel
Yêu cầu xây dựng: DevIL-devel
Yêu cầu xây dựng: libvorbis-devel
Yêu cầu xây dựng: SDL-devel
BuildRequires: libmng-devel
Yêu cầu xây dựng: libtiff-devel
BuildRequires: lua-devel


###########
# Mô tả gói dài
% sự miêu tả
LÖVE là một công cụ trò chơi 2D tuyệt vời không thể nghi ngờ, cho phép trò chơi nhanh chóng
phát triển và tạo mẫu trong Lua.

Dự án này không ngừng phát triển và những thay đổi đến và đi, đôi khi được bắt đầu
bởi chúng tôi và đôi khi bởi những đề xuất của những người khác. Nếu bạn có ý tưởng về cách
để cải thiện công cụ trò chơi tốt hơn, rất mong bạn liên hệ với chúng tôi và
Cho chúng tôi biết bạn nghĩ gì.


###########
# Trong phần này, chúng tôi sẽ chuẩn bị các nguồn để biên dịch và áp dụng
# bản vá nếu bạn có
% chuẩn bị

# Macro này là một chức năng giải nén các nguồn gốc.
# Chúng tôi chỉ ra 2 tham số:
# -q: Chế độ yên tĩnh. Không gửi tin nhắn cho từng tệp
# đã giải nén.
# -n% name-HEAD: Trong trường hợp này khi giải nén một thư mục được tạo được gọi là
#% tên-ĐẦU. Nếu chúng tôi không chỉ ra điều này, chương trình sẽ tìm kiếm
# một phiên bản được gọi là% name-% và không tìm thấy phiên bản này sẽ gây ra lỗi.
% setup -q -n% name-HEAD

# Như bạn đã biết, các tệp văn bản được tạo trong Windows kết thúc bằng rn,
# while trong * nix chúng chỉ kết thúc bằng n. Vì vậy, tốt hơn
# khả năng tương thích, chúng tôi sẽ xóa chữ r trong tài liệu đi kèm.
sed -i 's / r //' * .txt


###########
# Trong phần này chúng tôi sẽ biên dịch mã nguồn
% xây dựng

# Điều này giống như thực hiện `. / Cấu hình` với một loạt các tham số bổ sung
# giúp chúng ta không mắc sai lầm dễ dàng.
% cấu hình

# Thêm các tùy chọn mặc định để thực hiện, nếu có.
# Trong trường hợp của tôi, điều này mở rộng thành `make -j3`.
tạo% {? _ smp_mflags}


###########
# Ở đây chúng tôi sẽ cài đặt chương trình bên trong% buildroot.
% Tải về

# Giống như `thực hiện cài đặt` với nhiều tham số được xác định trước bắt buộc.
% make_install


###########
# Tại đây chúng tôi kiểm tra các tệp đã cài đặt
% các tập tin

# Chúng tôi sẽ chỉ ra các tệp là tài liệu có chức năng này
% doc changes.txt license.txt readme.txt

# Tiếp theo, bạn phải liệt kê tất cả các tệp sẽ được cài đặt.
# Tệp duy nhất sẽ cài đặt tệp này là / usr / bin / love, hoặc tệp tương tự:
% _bindir /% tên


###########
# Cuối cùng, bạn phải điền vào nhật ký thay đổi gói
% changelog
* Thứ sáu ngày 18 tháng 2011 năm XNUMX Jairot Llopis 0.7.2-1
- Phát hành lần đầu
@ domain.com>

Chúng tôi có một bước cuối cùng trước khi tạo gói: cài đặt các phần phụ thuộc. Chúng tôi sẽ sử dụng một tiện ích từ gói yum-utils để đọc chúng trực tiếp từ tệp chúng tôi vừa tạo.

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

Như vậy là đủ. Tiếp theo, chúng tôi sẽ tạo gói.

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

Sẵn sàng! Chúng tôi đã phân phối gói của mình trong cây thư mục. Chúng ta sẽ có:

  • ~/rpmbuild/RPMS/x86_64/love-0.7.2-1.fc16.x86_64.rpm: RPM đã sẵn sàng để cài đặt.
  • ~ / rpmbuild / SRPMS / love-0.7.2-1.fc16.src.rpm: Nguồn RPM đã sẵn sàng để sửa đổi gói một cách dễ dàng. Nó bao gồm tệp SPEC, mã nguồn và các bản vá.
Tuy nhiên, việc có công cụ trò chơi sẽ không mang lại lợi ích gì cho chúng ta. Trong phần tiếp theo, chúng ta sẽ xem cách tự xây dựng trò chơi.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   Swatch dijo

    bạn có thể làm một hướng dẫn đóng gói .deb

  2.   Lucas matias gomez dijo

    Thật là một hướng dẫn hay, tôi cũng muốn bạn tạo một hướng dẫn cho .deb

  3.   người khuân vác dijo

    muy bueno