Упаковка RPM. Часть 3: упаковка LÖVE

Проведем первые практика de пакет с об / мин, и он будет упаковывать движок игры, в которую мы хотим играть. Без него игра не работала бы.

Все, что тебе нужно - это любовь

Видит это это движок для 2D-игр, написанный на Lua, y  Не Тетрис 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

Вот как выглядит полный файл с большим количеством комментариев, объясняющих каждый раздел:

# Название пакета.
# По стандарту убираем умляут на "о".
Имя: любовь

# Версия в соответствии с исходным автором пакета (апстрим)
Версия: 0.7.2

# Версия упаковки. Каждый раз, когда мы изменяем пакет, мы добавляем его в
# этот номер. Таким образом, yum знает, как его обновить.
Выпуск: 1% {? Dist}

# Краткое описание пакета
Описание: LÖVE - это бесплатный 2D-движок для легкого создания игр на Lua.


# Лицензия (только название)
Лицензия: 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: в этом случае при распаковке создается каталог с именем
#% name-HEAD. Если бы мы этого не указали, программа будет искать
# один называется% name-% version, и если он не найден, это приведет к ошибке.
% настройка -q -n% имя-ГОЛОВКА

# Как известно, текстовые файлы, созданные в Windows, оканчиваются на rn,
# в то время как в * nix они заканчиваются только на n. Так что к лучшему
# совместимость, мы удалим r в прилагаемой документации.
sed -i 's / r //' * .txt


##########
# В этом разделе мы скомпилируем исходный код
% build

# Это то же самое, что и выполнение `. / Configure` с кучей дополнительных параметров, которые
# сделать так, чтобы нам было проще не делать ошибок.
% configure

# Добавить параметры по умолчанию, если они есть.
# В моем случае это расширяется до `make -j3`.
сделать% {? _ smp_mflags}


##########
# Здесь мы установим программу в% buildroot.
% install

# Как `make install` со многими обязательными предопределенными параметрами.
% make_install


##########
# Здесь мы проверяем установленные файлы
% файлов

# Мы укажем файлы документации с этой функцией
% doc changes.txt license.txt readme.txt

# Затем вам нужно перечислить все файлы, которые будут установлены.
# Единственный файл, который будет установлен, это / usr / bin / love, или что то то же самое:
% _bindir /% имя


##########
# Наконец, вы должны заполнить журнал изменений в пакете
% список изменений
* Пт, 18 ноября 2011 г., Жайрот Льопис 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 / любовь-0.7.2-1.fc16.src.rpm: Source RPM готов легко изменить пакет. Он включает файл SPEC, исходный код и исправления.
Однако наличие игрового движка само по себе не принесет нам никакой пользы. В следующей части мы увидим, как построить саму игру.


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Образчик ткани сказал

    вы можете сделать учебник по упаковке .deb

  2.   Лукас Матиас Гомес сказал

    Какой хороший учебник, я также хотел бы, чтобы вы сделали его для .deb

  3.   Portaro сказал

    очень хорошо