Como criar ou construir pacotes RPM

Como criar ou construir pacotes RPM

Introdução —

Ferramenta * “rpmbuild” é usado para construir tanto …

1) Pacote binário ~ usada para instalar o software e suporte scripts. Ele contém os arquivos que compõem o pedido, juntamente com todas as informações adicionais necessárias para instalar e apagá-la.
Source Package 2) ~ contém o arquivo tar compactados originais do código-fonte, patches e especificação de arquivo.

* Qual é o RPM & gerenciador de pacotes rpm?

O RPM Package Manager (RPM) é uma poderosa linha de comando do sistema de gerenciamento de pacotes capazes de instalar, desinstalar, verificando, consulta e atualização de pacotes de software.

RPM pacote consiste de um repositório de arquivos e meta-dados usados para instalar e apagar os ficheiros de arquivo. A meta-dados inclui scripts auxiliares, os atributos do arquivo, e informações descritivas sobre o pacote.

* Para construir o pacote RPM que você precisa especificar três coisas ~

1) Fonte de aplicação – Em qualquer caso, você não deve modificar as fontes utilizadas no processo de construção do pacote.

2) Patches – RPM lhe dá a capacidade para aplicar automaticamente patches para eles. O patch corrige um problema específico para o sistema alvo. Isto pode incluir mudanças makefiles para instalar o aplicativo para o apropriado diretórios, ou resolução de conflitos plataforma. Patches criar o ambiente necessário para a compilação adequada.

3) Especificação do Arquivo – A especificação é no coração do processo de construção de pacotes RPM. Ele contém informações exigidas pela RPM para construir o pacote, bem como instruções dizendo RPM como construí-lo. O arquivo de especificação também dita exatamente quais arquivos são uma parte do pacote, e onde deve ser instalado.

** Especificação do arquivo ~ é dividido em 8 seções conforme mostrado abaixo

a) Preâmbulo ~ contém informações que serão exibidas quando os usuários solicitarem informações sobre o pacote. Isso pode incluir uma descrição da função do pacote, o número de versão do software, etc

b) Preparação ~ onde o trabalho real de construção de um pacote é iniciado. Como o nome indica, esta seção é onde os preparativos necessários sejam feitos antes de o edifício atual do software. Em geral, se algo precisa ser feito para as fontes antes de construir o software, ele precisa acontecer na seção de preparação. O conteúdo desta secção é um shell script comum. No entanto, RPM prevê duas macros para tornar a vida mais fácil. Uma macro pode descompactar um arquivo tar compactado e CD para o diretório de origem. A macro outros patches facilmente se aplica às fontes de descompactado.

c) Construir ~ Esta secção é constituída por um shell script. Ele é usado para executar qualquer comandos são realmente necessário para compilar os fontes como único comando make, ou ser mais complexo se o processo de criação exige. Não existem macros disponíveis nesta seção.

d) Instalar ~ Esta seção também contém um shell script, a seção de instalação é usada para executar os comandos necessários para realmente instalar o software.

e) Instalar e desinstalar scripts ~ É constituída de scripts que serão executados, no sistema do usuário, quando o pacote é realmente instalados ou removidos. RPM pode executar um script pré / pós-instalação / remoção do pacote.

f) Verificar Script ~ script que é executado no sistema do usuário. É executado quando RPM verifica a instalação correta do pacote.

g) Limpeza Seção ~ script que pode limpar as coisas após a compilação. Este script é raramente usada, desde RPM normalmente faz um bom trabalho de limpeza na maioria dos ambientes de criação.

h) Lista de arquivos ~ consiste de uma lista de arquivos que compõem o pacote. Além disso, um número de macros podem ser usadas para controlar atributos de ficheiro, quando instalado, bem como para indicar quais arquivos são a documentação, e que contêm informações de configuração. A lista de arquivos é muito importante.

Requisito *** RPM’s para ambiente de construção ~

A] RPM requer um conjunto de diretórios para executar a construção. Enquanto os diretórios locais e nomes podem ser mudados. Layout padrão é mostrado abaixo —

root @ arunsb: ~ # ls-l / usr / src / redhat /

drwxr-xr-x 2 root root 4096 Aug 25 2007 Fontes => contém as fontes originais, patches e arquivos de ícone
drwxr-xr-x 2 root root 4096 Aug 25 2007 SPECS => Contém os arquivos de especificação
drwxr-xr-x 2 root root 4096 Aug 25 2007 Build => Directory em que as fontes são descompactados, e software é construído
drwxr-xr-x 8 root root 4096 28 de maio de 2008 RPMS => Contém o pacote binário arquivos criados pelo processo de construção
drwxr-xr-x 2 root root 4096 Aug 25 2007 SRPMS => contém o pacote de fonte de arquivos criados pelo processo de construção

root @ arunsb: ~ #

B] precisa exportar algumas variáveis globais utilizadas por RPM —

root @ arunsb: ~ # export RPM_BUILD_DIR = /usr/src/redhat/BUILD/
root @ arunsb: ~ # export RPM_SOURCE_DIR =/usr/src/redhat/SOURCES/

Passo 1] Criar especificação (spec) Arquivo ~

root@arunsb:~# head -n 50  /usr/src/redhat/SPECS/openlsm.spec
# Authority: Arun Bagul

#RPM_BUILD_DIR    /usr/src/redhat/BUILD/
#RPM_SOURCE_DIR    /usr/src/redhat/SOURCES/

%define MY_PREFIX    /usr/local/openlsm/

## Preamble Section-
Name: openlsm
Version: 0.99
Vendor: IndianGNU.org & openlsm
Release: r45
Group: System Environment/Daemons
Packager: IndianGNU.org (http://www.indiangnu.org)
URL: http://openlsm.sourceforge.net/
Summary: openlsm Admin Server
License: GPL

%description
openlsm Admin Server is free & open source web based control panel for Linux,Unix systems.

## Preparation Section-
%prep

rm -rf ${RPM_BUILD_DIR}/openlsm-0.99-r45/
tar xvfz ${RPM_SOURCE_DIR}/openlsm-0.99-r45.tar.gz -C ${RPM_BUILD_DIR}

## Build Section-
%build

cd ./openlsm-0.99-r45/
./configure –prefix=/usr/local/openlsm –with-mysql=/usr/bin/mysql_config –enable-internal-pcre –with-geoip=/usr –with-ldap=/usr –enable-trace
make

## Install Section-
%install

cd ./openlsm-0.99-r45/
make install

## Files Section-
%files

/usr/local/openlsm
/usr/local/openlsm/etc/openlsm/openlsm.conf
/usr/local/openlsm/etc/openlsm/openlsm.conf.perf_sample
/usr/local/openlsm/etc/openlsm/ssl/
/usr/local/openlsm/bin/openlsm-config
….
…..
….. list of files installed by pkg
root@arunsb:~#

* Como você criar a lista de arquivos?

Criando a lista de arquivos processo é manual. O que eu fiz é que eu peguei a lista de arquivos do meu diretório prefixo manual instalado com o comando find, como mostrado abaixo …

root@arunsb:~# find /usr/local/openlsm/ -type f -or  -type d

Etapa 2] A partir do Build ~

root@arunsb:~# cd /usr/src/redhat/SPECS
root@arunsb:/usr/src/redhat/SPECS# ls -l  openlsm.spec
-rw-r–r– 1 root root 12938 Dec  2 17:21 openlsm.spec
root@arunsb:/usr/src/redhat/SPECS#

root@arunsb:/usr/src/redhat/SPECS# rpmbuild   -ba  openlsm.spec

….
… ..

Verificação de arquivo não embalados (s): / usr / lib / rpm / check-files% (buildroot)
Escreveu: / usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
Escreveu: / usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
root @ arunsb: / usr / src / redhat / SPECS # echo $?
0

root @ arunsb: / usr / src / redhat / SPECS # ls-l / usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
-rw-r-r-1 root root 3206 2 de dezembro 17:50 / usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
root @ arunsb: / usr / src / redhat / SPECS # ls-l / usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
-rw-r-r-1 root root 3052868 2 de dezembro 17:50 / usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
root @ arunsb: / usr / src / redhat / SPECS #

* Fonte e pacote binário criado!

** Vamos ver o que aconteceu em “/ usr / src / redhat / directory”

root @ arunsb: / usr / src / redhat # pwd
/ usr / src / redhat
root @ arunsb: / usr / src / redhat # ls
BUILD RPMS SOURCES SPECS SRPMS
root @ arunsb: / usr / src / redhat # ls BUILD /
openlsm-0,99-r45 <== Fonte extraída aqui como parte de construir as instruções do arquivo de especificação ou seja, “openlsm.spec”
root @ arunsb: / usr / src / redhat # ls FONTES /
openlsm-0,99-r45.tar.gz <openlsm == original “-0,99-fonte r45.tar.gz ‘arquivo copiado por mim
root @ arunsb: / usr / src / redhat # ls RPMS /
athlon i386 i486 i586 i686 noarch
root @ arunsb: / usr / src / redhat # ls RPMS/i386 /
openlsm-0,99 r45.i386.rpm-<== pacote rpm Binário criado!
root @ arunsb: / usr / src / redhat # ls / SRPMS
openlsm-0,99-r45.src.rpm <== pacote fonte RPM criado!
root @ arunsb: / usr / src / redhat #

Etapa 3] Agora instale o pacote e testá-lo ~

root @ arunsb: / usr / src / redhat # cp RPMS/i386/openlsm-0.99-r45.i386.rpm / home / arunsb /

root @ arunsb: / usr / src / redhat # cd / home arunsb / /
root @ arunsb: ~ # ls
openlsm-0,99-r45.i386.rpm
root @ arunsb: ~ # rpm-openlsm ivh-0,99-r45.i386.rpm
Preparando … ########################################### [100%]
1: ########################################### openlsm [100%]
root @ arunsb: ~ # ls / usr / local / openlsm /
etc contrib bin incluir partes var / lib sbin scripts
root @ arunsb: ~ #

** Iniciando o servidor openlsm ~

root @ arunsb: ~ # / usr / local / openlsm / contrib / start-openlsm redhat
* Iniciando openlsm Server Admin: openlsm
. [OK]
root @ arunsb: ~ #
root @ arunsb: ~ # / usr / local / openlsm / contrib / openlsm estatuto de redhat
openlsm (pid 21607) is running …
root @ arunsb: ~ #

root @ arunsb: ~ # rpm-q openlsm-0,99-R45
openlsm-0,99-R45
root @ arunsb: ~ #

root @ arunsb: ~ # rpm-openlsm QL-0,99-R45
..

root @ arunsb: ~ # rpm-openlsm qiv-0,99-R45
Nome: Relocations openlsm: (not relocatable)
Version: 0.99 Vendor: IndianGNU.org & openlsm
Lançamento: R45 Build Date: Qua 02 de dezembro de 2009 05:50:54 EST
Instale Data: Wed 02 de dezembro de 2009 06:06:23 IST Build Host: alongseveral-dr.eglbp.corp.yahoo.com
Grupo: System Environment / Daemons Source RPM: openlsm-0,99-r45.src.rpm
Tamanho: 14877918 Licença: GP
Signature: (none)
Packager: IndianGNU.org (http://www.indiangnu.org)
URL: http://openlsm.sourceforge.net/
Resumo: openlsm Admin Server
Descrição:
painel de controle openlsm Admin Server é gratuita e web de código aberto baseado em Linux, Unix.
root @ arunsb: ~ #

** NOTA ~ Este artigo não contém informações sobre como definir micros, como cópia de documentos, páginas de manual para o padrão local, como definir permision e de apropriação vou cobrir esta tópicos no próximo artigo sobre RPM.

** Por favor, consulte o artigo Inglês ~ http://www.indiangnu.org/2009/how-to-create-or-build-rpm-package/

Atenciosamente,
Arun Bagul

Similar Posts:

Be Sociable, Share!

Deixe uma resposta

Your email address will not be published. Required fields are marked *