RPM包装。 第3部分:包装LÖVE

我们将进行第一 练习 de 与RPM打包,它将包装我们要玩的游戏的引擎。 没有它,游戏将无法正常工作。

你最需要的是爱

看到它 是编写2D游戏的引擎 LUA,而 不是俄罗斯方块2 这是为上述引擎制作的游戏。 由于依赖于 libmpg123 它们不在官方存储库中,因此非常适合本教程。

SPEC文件可在 openSUSE 他们起到了启发作用。

下载源代码

您将必须下载源并将其放在SOURCES文件夹中。

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

创建一个空白的规格模板

该命令将创建 爱情规范。 在RPM中,文件名非常重要,因为 它的术语是标准化的 表示很多东西,例如您的体系结构,版本,发行版,发行版等。

cd〜/ rpmbuild / SPECS
rpmdev-newspec爱

我们将打开新创建的文件 〜/ rpmbuild / SPECS / love.spec。 您将看到它是一个空白模板。 我认为第一部分很容易说明。 我们将用 在其官方页面上找到的信息.

填写模板并创建我们的第一个SPEC

这是完整文件的外观,并带有解释每个部分的大量注释:

#软件包名称。
#根据标准,我们将变音符删除为“ o”。
名称:爱

#根据软件包原始作者的版本(上游)
版本:0.7.2

#包装版本。 每次修改包时,我们都会在其中添加一个
# 这个号码。 这样,yum就知道可以对其进行更新。
释放:1%{?Dist}

#包装的简要说明
简介:LÖVE是免费的2D游戏引擎,可在Lua中轻松创建游戏


#许可证(仅名称)
执照:ZLIB

#计划网站
网址:http://love2d.org/

#确切的URL,通常从中下载原始资源
#在档案.tar.gz,.zip或类似文件中。
#
#如您所见,我们使用宏,因此,如果我们更新程序包,则不必
#修改这一行。 宏“名称”和“版本”来自什么
#我们已经在上面指出了。
来源0:https://bitbucket.org/rude/%name/downloads/%name-%version-linux-src.tar.gz


#构建软件包所需的依赖关系。
#我们知道这一点是因为他将其放在自己的网站上。
构建要求:flac-devel
构建要求:freetype-devel
构建要求:glibc-devel
构建要求:libmpg123-devel
构建要求:libmodplug-devel
构建要求:physfs-devel
构建要求:mesa-libGL-devel
构建要求:openal-soft-devel
构建要求:DevIL-devel
构建要求:libvorbis-devel
构建要求:SDL开发
构建要求:libmng-devel
构建要求:libtiff-devel
构建要求:lua-devel


##########
#长包装说明
%说明
LÖVE无疑是一款超赞的2D游戏引擎,可实现快速游戏
Lua的开发和原型制作。

这个项目在不断发展,变革来来往往,有时是开始的
由我们,有时是别人的建议。 如果您对如何
为了使游戏引擎更好,非常希望您与我们联系并
让我们知道您的想法。


##########
#在本节中,我们将准备源代码以编译和应用
#个补丁(如果有)
准备百分比

#此宏是用于解压缩原始源的函数。
#我们指出2个参数:
#-q:安静模式。 不为每个文件发送消息
#解压缩。
#-n%name-HEAD:在这种情况下,创建解压缩目录时称为
#%name-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>

在创建软件包之前,我们还有最后一步:安装依赖项。 我们将使用软件包中的实用程序 百胜工具 直接从我们刚刚创建的文件中读取它们。

须藤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文件,源代码和补丁。
但是,拥有游戏引擎本身不会给我们带来任何好处。 在下一部分中,我们将看到 自己制作游戏.


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   斯沃琪

    你可以做一个包装.deb的教程

  2.   卢卡斯·马蒂亚斯·戈麦斯

    多么好的教程,我也希望您为.deb做一个教程。

  3.   波塔罗

    非常好