RPM 패키징. 파트 3 : LÖVE 포장

우리는 첫 번째를 수행 할 것입니다 연습하다 de RPM으로 포장, 그리고 우리가 플레이하고 싶은 게임의 엔진을 패키징 할 것입니다. 그것 없이는 게임이 작동하지 않습니다.

당신이 필요한 건 사랑 뿐이야

확인 2D 게임용 엔진입니다. 루아, 그리고 테트리스 2 아님 이 엔진을 위해 만들어진 게임입니다. 에 기반한 종속성으로 인해 libmpg123 공식 저장소에 없기 때문에 튜토리얼에 이상적입니다.

사용 가능한 SPEC 파일 오픈 수세 영감으로 작용했습니다.

소스 코드 다운로드

소스를 다운로드하여 SOURCES 폴더에 넣어야합니다.

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

빈 사양 템플릿 만들기

이 명령은 사랑.스펙. RPM에서는 파일 이름이 매우 중요합니다. 명명법이 표준화되어 있습니다. 아키텍처, 버전, 릴리스, 배포판 등과 같은 많은 것을 나타냅니다.

cd ~ / rpmbuild / 사양
rpmdev-newspec 사랑

새로 생성 된 파일을 엽니 다. ~ / rpmbuild / SPECS / love.spec. 빈 템플릿임을 알 수 있습니다. 내가 생각하는 첫 번째 부분은 꽤 자명하다. 우리는 그것을 채울 것입니다 공식 페이지에있는 정보.

템플릿을 작성하고 첫 번째 SPEC을 만듭니다.

다음은 각 섹션을 설명하는 많은 주석이있는 전체 파일의 모양입니다.

# 패키지 이름.
# 표준에 따라 "o"에 대한 움라우트를 제거합니다.
이름 : 사랑

# 패키지의 원래 작성자에 따른 버전 (업스트림)
버전 : 0.7.2

# 패키징 버전. 패키지를 수정할 때마다 패키지를
#이 번호. 이런 식으로 yum은 업데이트를 알고 있습니다.
릴리스 : 1 % {? Dist}

# 패키지에 대한 간략한 설명
요약 : LÖVE는 Lua에서 쉬운 게임 제작을위한 무료 2D 게임 엔진입니다.


# 라이선스 (이름 만)
라이센스 : ZLIB

# 프로그램 웹 사이트
URL : http://love2d.org/

# 원본 소스를 다운로드 한 정확한 URL, 일반적으로
# 아카이브 .tar.gz, .zip 또는 이와 유사한 것.
#
# 보시다시피, 우리는 패키지를 업데이트 할 때 우리가 할 필요가 없도록 매크로를 사용합니다.
#이 줄을 수정합니다. "이름"및 "버전"매크로는
# 위에 표시했습니다.
출처 0 : https://bitbucket.org/rude/%name/downloads/%name-%version-linux-src.tar.gz


# 패키지 빌드에 필요한 종속성.
# 그가 웹 사이트에 게시했기 때문에 우리는 이것을 알고 있습니다.
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 개발
BuildRequires : libmng-devel
BuildRequires : libtiff-devel
BuildRequires : lua-devel


##########
# 긴 패키지 설명
% 설명
LÖVE는 의심 할 여지없이 멋진 2D 게임 엔진으로
Lua에서 개발 및 프로토 타이핑.

이 프로젝트는 지속적으로 진화하고 있으며 변화는오고 가며 때때로 시작됩니다.
우리와 때로는 다른 사람들의 추천에 의해. 방법에 대한 아이디어가 있다면
게임 엔진을 더 좋게 만들려면 저희에게 연락하여
당신의 생각을 알려주세요.


##########
#이 섹션에서는 컴파일하고 적용 할 소스를 준비합니다.
패치가있는 경우 # 개
% 준비

#이 매크로는 원본 소스를 압축 해제하는 기능입니다.
# 2 개의 매개 변수를 나타냅니다.
# -q : 저소음 모드. 각 파일에 대해 메시지를 보내지 마십시오
# 압축이 풀 렸습니다.
# -n % name-HEAD :이 경우 압축을 풀면 디렉토리가 생성됩니다.
# % 이름 -HEAD. 이것을 표시하지 않으면 프로그램은
# 하나는 % name- % 버전을 호출했지만 찾지 못하면 오류가 발생합니다.
% 설정 -q -n % 이름 -HEAD

# 아시다시피 Windows에서 만든 텍스트 파일은 rn으로 끝납니다.
# * nix에서는 n으로 만 끝납니다. 그래서 더 나은
# 호환성, 우리는 포함 된 문서에서 r을 제거 할 것입니다.
sed -i 's / r //'* .txt


##########
#이 섹션에서는 소스 코드를 컴파일합니다.
% 짓다

# 이것은`. / Configure`를 수행하는 것과 동일합니다.
# 우리가 실수하지 않도록 쉽게 만듭니다.
% 구성

# 만들 기본 옵션을 추가합니다.
# 제 경우에는`make -j3`로 확장됩니다.
make % {? _ smp_mflags}


##########
# 여기서 우리는 % buildroot 안에 프로그램을 설치할 것입니다.
% 설치

# 많은 필수 사전 정의 매개 변수가있는`make install`과 같습니다.
% make_install


##########
# 여기서 우리는 설치된 파일을 감사합니다
% 파일

#이 기능을 사용하여 문서화되는 파일을 표시합니다.
% doc changes.txt license.txt readme.txt

# 다음으로 설치할 모든 파일을 나열해야합니다.
#이 파일을 설치할 유일한 파일은 / usr / bin / love 또는 동일한 내용입니다.
% _bindir / % 이름


##########
# 마지막으로 패키지의 변경 로그를 입력해야합니다.
% 변경 로그
* 18 년 2011 월 XNUMX 일 금요일 Jairot Llopis 0.7.2-1
- 초판
@ domain.com>

패키지를 만들기 전에 마지막 단계가 있습니다. 종속성 설치입니다. 패키지의 유틸리티를 사용합니다. 얌 - 유틸리티 방금 만든 파일에서 직접 읽을 수 있습니다.

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

이것으로 충분합니다. 다음으로 패키지를 생성합니다.

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

준비된! 우리는 이미 디렉토리 트리에 패키지를 배포했습니다. 우리는 :

  • ~/rpmbuild/RPMS/x86_64/love-0.7.2-1.fc16.x86_64.rpm: RPM을 설치할 준비가되었습니다.
  • ~ / rpmbuild / SRPMS / love-0.7.2-1.fc16.src.rpm: 패키지를 쉽게 수정할 수있는 소스 RPM. 여기에는 SPEC 파일, 소스 코드 및 패치가 포함됩니다.
그러나 게임 엔진이 있다고해서 그 자체로 좋은 것은 아닙니다. 다음 기사에서는 게임 자체 구축.