Empacotando com o RPM. hugo@devin.com.br http://www.devin.com.br/eitch/



Documentos relacionados
1º Workshop sobre Desenvolvimento de Software Livre Tchelinux. João Avelino Bellomo Filho

Manual comandos Básicos para instalar e desinstalar Firebird em Sistema operacional Linux

- Wireless e NTP - 272

COMO CRIAR UM SITE DE NEGÓCIOS

IBM SPSS Modeler - Princípios Básicos do R: Instruções de Instalação

Lazarus pelo SVN Linux/Windows

Ruby. Simplicidade e produtividade

IBM SPSS Modeler - Princípios Básicos do R: Instruções de Instalação

Construindo um Linux Parte 1 - Disk Boot Objetivo: Entender que o Linux é como um LEGO (Pode ser montado).


Manual Fácil 1 DOWNLOAD E INSTALAÇÃO. 1. Como faço o download do Jimbo Mobile?

Enviado dados para o PHP através de formulário

Configurando NFS + NIS Ubuntu Linux

Tutorial Classmate: Resolvendo bug do X na tela. Nathalia Sautchuk Patrício

Mas, como utilizar essa ferramenta tão útil e que está à sua disposição?

Configure seu Linux pela Web! Instalação à partir de um.tar.gz. Autor: Carlos Eduardo Ribeiro de Melo <eduardo at unisulma.edu.br> Data: 05/10/2004

Brincando de Backup com rsync.

Manual MQS. Logo após colocar essas informações abrirá a página inicial do sistema:

WEBDESIGN. Professor: Paulo Marcos Trentin - paulo@paulotrentin.com.br Escola CDI de Videira

Primeiros passos das Planilhas de Obra v2.6

Arte em ASCII. Introdução: Python

Aula 4 Estatística Conceitos básicos

Manual do Teclado de Satisfação Online WebOpinião

INTRODUÇÃO: 1 - Conectando na sua conta

Manual de Compilación

Guia: como instalar o Ubuntu Linux

Sistemas Operacionais. Prof. André Y. Kusumoto

Virtual Box. Guia. Instalação E Utilização. Criado por Wancleber Vieira wancleber.vieira@ibest.com.br

Plugins TerraView. Versão TerraLib/TerraView: 3.2.0RC2. Código fonte completo da TerraLib na estrutura de diretórios sugerida no site da TerraLib 1.

Como Internacionalizar Scripts Bash

Treinamento Linux. Aula 5-11/04/12

Professor: Venicio Paulo Mourão Saldanha Site:

Operador de Computador. Informática Básica

Instalação de Pacotes padrão Red Hat

Sempre vejo ou leio um usuários iniciante "como é esse Linux? posso usar em casa? no trabalho? no meu notebook? " normalmente a resposta e "vai no

Instalando o MySQL 5.6 no Windows

Especificação do Trabalho Prático

Brincando de Backup com rsync.

MATERIAL DE APRESENTAÇÃO DO SCRATCH

Rootless: uma sub-distro dentro do seu $HOME

INTRODUÇÃO À INFORMÁTICA GRUPO DE PESQUISA LEITURA NA TELA

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - SLIM

Palavras de Quem Entende

INFORMÁTICA BÁSICA. Word. Professor: Enir da Silva Fonseca

1 Instalando o LimerSoft SisVendas em computadores Mac/Apple

Sistema Operacional Unidade 5 - Iniciando o modo texto. QI ESCOLAS E FACULDADES Curso Técnico em Informática

USB Creator. USBCreator. 1. Requerimentos. Página Imutável Informação Anexos Mais Acções. Ubuntu Brazil Entrar Help

Esse manual é um conjunto de perguntas e respostas para usuários(as) do Joomla! 1.5.

LINX POSTOS AUTOSYSTEM

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - MILLENNIUM

Curso de Introdução ao Debian GNU/Linux

Movie Maker. Fazer download de vídeos no You Tube. Para publicar no You Tube. O Windows Movie Maker 2 torna fácil para qualquer pessoa

Algoritmos e programação

Colimação de um telescópio. Newtoniano

Manual de Instalação

Introdução ao Android

INSTALANDO E CONFIGURANDO O MY SQL

Desenvolvendo Websites com PHP

Instalação de pacotes

Messenger. Novell 1.0 LOCALIZANDO A DOCUMENTAÇÃO DO NOVELL MESSENGER.

A Maquina de Vendas Online É Fraude, Reclame AQUI

Escrito por Júlio Oliveira Ter, 30 de Junho de :06 - Última atualização Seg, 17 de Agosto de :25

Manual de Instalação da Plataforma Scorpion. 1. Como conectar a Plataforma Scorpion com a Xilinx Starter-3E kit

Introdução ao Sistema Operacional Linux. Responsáveis: Professora Dra. Renata Spolon Lobato Graduando Gabriel Henrique Martinez Saraiva.

difusão de idéias QUALIDADE NA EDUCAÇÃO INFANTIL Um processo aberto, um conceito em construção

LABORATÓRIO UNIDADES 1 REVISÃO LINUX E COMANDOS BÁSICOS ABRINDO A MÁQUINA VIRTUAL UBUNTU SERVER PELO VIRTUALBOX

O Manual do ssc. Peter H. Grasch

Tutorial Eclipse (IDE)

INSTALAÇÃO UBUNTU NUM INSTANTE

Recuperando a chave do produto. s Chaves do produto Assinando contratos Usando o VLSC

DWR DIRECTED WEB REMOTING

Aula 4 Comandos Básicos Linux. Prof.: Roberto Franciscatto

Você pode testar se está tudo OK, abrindo um navegador no Debian Linux e acessando qualquer site.

2. O AMBIENTE DE PROGRAMAÇÃO EM C

Na tela dele, clique no sinal de + ao lado do nome do seu computador, para expandi-lo. A seguir, expanda também o item "Sites da web".

ENDEREÇAMENTO DE REDES

Tutorial: Geração de PDF da Documentação Digitalizada

Usando o Conference Manager do Microsoft Outlook

Atualizações de Software Guia do Usuário

Linux Network Servers

Adicionando Propriedades e Funcionalidades aos Componentes Parte II

Amostra OpenOffice.org 2.0 Writer SUMÁRIO

Parte 2: Micro com Windows XP Pro e Servidor IIS

Capítulo 2 Laboratório 2.2 Comandos Show

Índice. 5. Editar as seções de um curso 6. Estruturar o curso 7. Publicar o curso 8. Resumo do Fluxo de criação de um curso no educommons

..:Sgi-Plus:.. Manual completo do sistema de vendas Sgi-plus. Site..:

Neste tópico, veremos como selecionar e copiar informações entre bancos de dados de empresa no SAP Business One.

Olá, Professores e Professoras. É um prazer estar aqui com vocês novamente. Sejam bem-vindos!

Índice Pagina venda de produtos...03 Desconto em Produtos (Venda)...03 Venda com Entrega...04 Venda Fiado (Promissória)...05 Transferência de

..:Restaurantes:.. Manual completo do sistema de vendas Restaurantes. Site..:

PROCESSO DE COMPRA BTRIEVE 12

Introdução ao Desenvolvimento de Jogos BCT - UERN

ENDEREÇOS DE REDE PRIVADOS até até até Kernel

Desenvolvimento de Software para UNIX

Usando o do-file editor Automatizando o Stata

ÍNDICE. Tela de Configuração Dados de Etiqueta Configuração da Impressora Configuração do Papel Itens para Inserção...

CADERNOS DE INFORMÁTICA Nº 1. Fundamentos de Informática I - Word Sumário

Entrevista exclusiva concedida pelo Presidente da República, Luiz Inácio Lula da Silva, ao SBT

Transcrição:

Empacotando com o RPM Hugo Cisneiros hugo@devin.com.br http://www.devin.com.br/eitch/ 1

Empacotando com o RPM A pergunta que não quer calar é: O que diabos é empacotamento???...e o que é RPM??? 2

Uma breve história sobre o RPM: Empacotando com o RPM Inicialmente feito em Perl, pela Red Hat; Depois portado para C, utilizando banco de dados BDB; Teve seu nome mudado pela ampla adoção. Os objetivos do RPM: Facilitar o trabalho do empacotador da distribuição; Trabalhar com arquiteturas múltiplas mais facilmente; Manter sempre em vista o que está instalado ou não no sistema. 3

Preparando o Ambiente No Fedora/RedHat, um ambiente já se encontra pronto no diretório: /usr/src/redhat O problema é que apenas o root pode mexer neste diretório. E se quisermos criar nossos pacotes com um usuário comum (o que é recomendado)? Eis a solução! Primeiro crie a estrutura de diretórios necessária: mkdir rpm cd rpm mkdir BUILD RPMS SOURCES SPECS SRPMS cd RPMS mkdir i386 i486 i586 i686 athlon x86_64 ppc noarch Note que criamos diretórios para cada arquitetura. Um diretório como o PPC só será usado se você tiver um processador PowerPC, obviamente. O noarch é onde os pacotes sem dependência de arquitetura são armazenados. 4

Preparando o Ambiente Agora que já temos o ambiente, precisamos falar ao RPM onde ele precisa trabalhar. Para isso edite o arquivo.rpmmacros dentro do diretório HOME do usuário, colocando o seguinte conteúdo (e adaptando): %_topdir /home/boboalegre/rpm %_tmppath /var/tmp Agora o diretório top da construção de pacotes se localiza no diretório que criamos anteriormente. Não se esqueça que o diretório /var/tmp também tem que ter permissões para o usuário que vai construir os pacotes. Geralmente esse diretório citado no exemplo é a opção mais usada e sempre tem permissões. 5

Criando o arquivo spec Que tal primeiro dizer o que é um arquivo spec? Nosso alvo exemplo, o programa: HELLO WORLD! 6

Criando o arquivo spec O arquivo spec do nosso helloworld é dividido nas seguintes partes: Cabeçalhos com informações básicas do pacote Descrição do pacote (%description) Preparação para a compilação (%prep) A compilação do código-fonte em si (%build) A instalação do resultado ta compilação (%install) Limpeza dos arquivos depois da compilação (%clean) Scripts para antes/depois da instalação/desinstalação (%pre, %post, %preun, %postun) Lista de arquivos do pacote (%files) O ChangeLog do pacote (%changelog) Agora cada uma destas partes! 7

Criando o arquivo spec Cabeçalhos Iniciais: Summary: Hello World Dummy Package Name: helloworld Version: 1.0 Release: 1.eitch License: GPL Group: System Environment/Base URL: http://www.devin.com.br/eitch/ Source: helloworld-%{version}.tar.bz2 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot Requires: php >= 4.3, python >= 2.3, bash >= 3 BuildRequires: gcc Nota: Cada distribuição possui sua hierarquia de grupos (Group) 8

Criando o arquivo spec Descrição do pacote: %description Um pacote que não serve pra nada de útil no sistema, mas serve para quem estiver usando o pacote aprender um pouco mais sobre empacotamento de programas nas distribuições Linux (principalmente com RPM). 9

Criando o arquivo spec Preparação para a compilação: %prep %setup -q 10

A compilação do código-fonte em si: Criando o arquivo spec %build gcc helloworld.c -o helloworld-c 11

A instalação do resultado da compilação: Criando o arquivo spec %install mkdir -p %{buildroot}/usr/bin install -m755 helloworld-c helloworld-php helloworld-sh \ %{buildroot}/usr/bin mkdir -p %{buildroot}/usr/lib install -m644 libhelloworld.so.1 libnaosirvopranada.so.1 \ %{buildroot}/usr/lib ln -s /usr/lib/libhelloworld.so.1 \ %{buildroot}/usr/lib/libhelloworld.so ln -s /usr/lib/libnaosirvopranada.so.1 \ %{buildroot}/usr/lib/libnaosirvopranada.so mkdir -p %{buildroot}/etc install -m644 helloworld.conf %{buildroot}/etc mkdir -p %{buildroot}/usr/share/doc/%{name}-%{version} install -m644 AUTHORS LICENSE README \ %{buildroot}/usr/share/doc/%{name}-%{version} 12

Limpeza dos arquivos depois da compilação: Criando o arquivo spec %clean rm -rf $RPM_BUILD_ROOT 13

Criando o arquivo spec Scripts para antes/depois da instalação/desinstalação: (Não precisamos!) 14

Criando o arquivo spec Lista de arquivos do pacote: %files %defattr(-,root,root) /usr/bin/helloworld-c /usr/bin/helloworld-php /usr/bin/helloworld-sh /usr/lib/libhelloworld.so.1 /usr/lib/libhelloworld.so /usr/lib/libnaosirvopranada.so.1 /usr/lib/libnaosirvopranada.so /etc/helloworld.conf %doc AUTHORS %doc LICENSE %doc README 15

Criando o arquivo spec O ChangeLog do pacote: %changelog * Tue May 3 2005 Zé Mané <zehmaneh@devin.com.br> - 1.0-1 - Criação do pacote * Mon May 2 2005 Eitch <hugo@devin.com.br> - 0.9 - Criação do programa 16

Construindo o Pacote Depois do arquivo spec pronto, é hora de colocar os arquivos nos seus devidos lugares, e montar o pacote. Para fazer isso, basta colocar: O arquivo spec dentro do diretório SPECS do builddir RPM; O fonte compactado (.tar.gz) e patches no diretório SOURCES; E depois é a hora da verdade! Construa o pacote com o comando: cd /home/boboalegre/rpm/specs rpmbuild -ba helloworld.spec Observe atentamente o processo de construção, pois se der algum erro, você saberá onde parou e poderá depurar melhor para consertar. 17

Tchan-nam! Se você fez tudo certinho, você terá construído dois pacotes: um binário e um SRPM. Suas localizações são: Binário: rpm/rpms/<arquitetura> Fonte: rpm/srpms O Resultado! Dependendo do seu processador, e/ou flags de compilação do programa, substitua o <arquitetura> por i386, i686, x86_64, ppc, etc. Caso seu programa não for binário, estará no noarch. 18

Usando o seu recém-criado RPM man rpm :-) 19

Outras Notas O RPM é uma poderosa ferramenta, que contém muita coisa além do que vimos aqui. Macros; Extensões em linguagens diversas (ex. Python); Triggers; Controle de assinaturas; etc 20

Boas referências para se aprender mais sobre RPM: http://www.rpm.org http://www.rpm.org/max-rpm/ http://www.linuxdoc.org/howto/rpm-howto/ https://moin.conectiva.com.br/guiacriacaospecscl Documentação 21

Linux? Linux na pele!!!...até a próxima! 22

23