Vamos realizar o primeiro praticar de embalar com RPM, e embalará o motor do jogo que queremos jogar. Sem ele, o jogo não funcionaria. |
Tudo o que você precisa é amor
Arquivos SPEC disponíveis em openSUSE eles serviram de inspiração.
Baixe o código fonte
Você terá que baixar as fontes e colocá-las na pasta SOURCES.
cd ~ / rpmbuild / SOURCES
wget https://bitbucket.org/rude/love/downloads/love-0.7.2-linux-src.tar.gz
Crie um modelo de especificação em branco
Este comando irá criar amor.espec. No RPM o nome dos arquivos é bastante importante, uma vez que sua nomenclatura é padronizada de modo que indica muitas coisas, como sua arquitetura, versão, lançamento, distribuição, etc.
cd ~ / rpmbuild / SPECS
amor rpmdev-newspec
Vamos abrir o arquivo recém-criado ~ / rpmbuild / SPECS / love.spec. Você verá que é um modelo em branco. A primeira parte, eu acho, é bastante autoexplicativa. Nós o preencheremos com as informações encontradas em sua página oficial.
Preencha o modelo e crie nosso primeiro SPEC
Eu coloquei a aparência do arquivo completo com muitos comentários que explicam cada seção:
# Nome do pacote.
# De acordo com o padrão, removemos o trema para o "o".
Nome: amor
# Versão de acordo com o autor original do pacote (upstream)
Versão: 0.7.2
# Versão da embalagem. Cada vez que modificamos o pacote, adicionamos um
# este número. Desta forma, o yum sabe como atualizá-lo.
Liberação: 1% {? Dist}
# Breve descrição do pacote
Resumo: LÖVE é um motor de jogo 2D gratuito para fácil criação de jogos em Lua
# Licença (apenas o nome)
Licença: ZLIB
# Site do programa
URL: http://love2d.org/
# URL exata da qual as fontes originais são baixadas, geralmente
# em um arquivo .tar.gz, .zip ou algo semelhante.
#
# Como você pode ver, usamos macros para que, se atualizarmos o pacote, não haja
# modifique esta linha. As macros "nome" e "versão" vêm de onde
# indicamos acima.
Source0: https://bitbucket.org/rude/%name/downloads/%name-%version-linux-src.tar.gz
# Dependências necessárias para construir o pacote.
# Sabemos disso porque ele coloca em seu site.
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-devel
BuildRequires: libmng-devel
BuildRequires: libtiff-devel
BuildRequires: lua-devel
##########
# Descrição longa do pacote
% descrição
LÖVE é um motor de jogo 2D inquestionavelmente incrível, que permite jogos rápidos
desenvolvimento e prototipagem em Lua.
Este projeto está em constante evolução e as mudanças vêm e vão, às vezes iniciadas
por nós e às vezes por recomendações de outros. Se você tem uma ideia de como
para tornar o motor de jogo melhor, é muito desejável que você entre em contato conosco e
deixe-nos saber o que você pensa.
##########
# Nesta seção, prepararemos as fontes para compilar e aplicar o
# patches se você tiver algum
% prep
# Esta macro é uma função que descompacta as fontes originais.
# Indicamos 2 parâmetros:
# -q: modo silencioso. Não envie mensagens para cada arquivo
# descompactado.
# -n% name-HEAD: Neste caso, ao descompactar um diretório é criado chamado
#% name-HEAD. Se não indicássemos isso, o programa pesquisaria
# um chamado% name-% version e não encontrá-lo resultaria em erro.
% setup -q -n% name-HEAD
# Como você sabe, os arquivos de texto criados no Windows terminam em rn,
# enquanto em * nix eles terminam apenas em n. Então para melhor
# compatibilidade, removeremos os r's da documentação incluída.
sed -i 's / r //' * .txt
##########
# Nesta seção, iremos compilar o código-fonte
% Construir
# Isso é o mesmo que fazer `. / Configure` com um monte de parâmetros extras que
# torna mais fácil para não cometermos erros.
% configure
# Adicione as opções padrão para fazer, se houver.
# No meu caso, isso se expande para `make -j3`.
make% {? _ smp_mflags}
##########
# Aqui iremos instalar o programa dentro de% buildroot.
% install
# Como `make install` com muitos parâmetros pré-definidos necessários.
% make_install
##########
# Aqui nós auditamos os arquivos instalados
% arquivos
# Vamos indicar os arquivos que são documentação com esta função
% doc changes.txt license.txt readme.txt
# Em seguida, você deve listar todos os arquivos que serão instalados.
# O único arquivo que irá instalar isso é / usr / bin / love, ou o que é igual:
% _bindir /% name
##########
# Finalmente, você deve preencher o log de alterações do pacote
% changelog
* Sexta-feira, 18 de novembro de 2011 Jairot Llopis0.7.2-1 @ dominio.com>
- Lançamento inicial
Temos uma última etapa antes de criar o pacote: instalar as dependências. Usaremos um utilitário do pacote yum-utils para lê-los diretamente do arquivo que acabamos de criar.
sudo yum-builddep ~ / rpmbuild / SPECS / love.spec
Isso deve bastar. Em seguida, criaremos o pacote.
rpmbuild -ba ~ / rpmbuild / SPECS / love.spec
Pronto! Já temos nosso pacote distribuído na árvore de diretórios. Nós teremos:
- ~/rpmbuild/RPMS/x86_64/love-0.7.2-1.fc16.x86_64.rpm: RPM pronto para instalar.
- ~ / rpmbuild / SRPMS / love-0.7.2-1.fc16.src.rpm: Source RPM pronto para modificar o pacote com facilidade. Inclui o arquivo SPEC, o código-fonte e os patches.
você poderia fazer um tutorial para empacotar .deb
Que bom tutorial, também gostaria que você fizesse um para .deb
muito bom