The document discusses how to create packages for the Arch Linux distribution. It covers the package format, tools used like PKGBUILD and makepkg, publishing packages, and common questions. The goal is to help users build packages to facilitate software installation, optimize for their machine, add features, or maintain specific versions.
1. Criando pacotes para o Arch Linux
Hugo Doria
contato@hugodoria.org
10o Fórum Internacional de Software Livre
1 Hugo Doria Criando pacotes para o Arch Linux
2. Conteúdo
1 Introdução
Formato dos pacotes
Porque (re)construir pacotes?
2 Ferramentas utilizadas
PKGBUILD
makepkg
namcap
3 Publicando um pacote
4 Perguntas
5 Agradecimentos
2 Hugo Doria Criando pacotes para o Arch Linux
3. Formato dos pacotes
Formato de um pacote
nome-versão-release-arquitetura.pkg.tar.gz
Exemplo
firefox-3.0.10-4-i686.pkg.tar.gz
3 Hugo Doria Criando pacotes para o Arch Linux
4. Formato dos pacotes
Conteúdo do .pkg.tar.gz
usr/bin/foobar
etc/foobar.conf
.PKGINFO # Informações sobre o pacote (nome, versão etc)
.INSTALL # Comandos a serem rodados na instalação
4 Hugo Doria Criando pacotes para o Arch Linux
5. Porque (re)construir pacotes?
Facilitar a vida do usuário
Otimizar o software para a máquina
Adicionar recursos
Manter alguma versão específica
Realizar testes
5 Hugo Doria Criando pacotes para o Arch Linux
6. Ok! Mas como eu construo um pacote?
6 Hugo Doria Criando pacotes para o Arch Linux
7. PKGBUILD
Estrutura do PKGBUILD
pkgname=nome-do-pacote
pkgver=versão
pkgrel=release
pkgdesc=’descrição do software’
arch=(’arquitetura’)
depends=(’dependencias’)
license=(’licensa’)
source=(url do source)
md5sum=(’md5sum dos sources’)
build() {
Instruções de compilação
}
7 Hugo Doria Criando pacotes para o Arch Linux
8. PKGBUILD
Exemplo de PKBUILD
# Maintainer: Joe User <joe.user@example.com>
pkgname=patch
pkgver=2.5.4
pkgrel=3
pkgdesc="A utility to apply patch files to original sources"
arch=(’i686’ ’x86_64’)
url="http://www.gnu.org/software/patch/patch.html"
license=(’GPL’)
groups=(’base-devel’)
depends=(’glibc’ ’ed’)
source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-
$pkgver.tar.gz)
md5sums=(’ee5ae84d115f051d87fca1aef3b4ae782’)
8 Hugo Doria Criando pacotes para o Arch Linux
9. PKGBUILD
Exemplo de PKBUILD
build() {
cd $srcdir/$pkgname-$pkgver
./configure –prefix=/usr
make || return 1
make prefix=$pkgdir/usr install
}
9 Hugo Doria Criando pacotes para o Arch Linux
10. makepkg: construindo o pacote
Ferramenta utilizada para gerar o pacote
O makepkg já faz parte do pacman
Deve ser rodado dentro do diretório onde está o
PKGBUILD
10 Hugo Doria Criando pacotes para o Arch Linux
11. makepkg: construindo o pacote
Exemplo de uso do makepkg
[hugo@meryl patch]$ makepkg
==> Making package: patch 2.5.9-2 i686 (Thu Jun 11 23:33:01
BRT 2009)
== > Checking Runtime Dependencies...
==> Checking Buildtime Dependencies...
==> Retrieving Sources...
-> Downloading patch-2.5.9.tar.gz...
==> Validating source files with md5sums...
patch-2.5.9.tar.gz ... Passed
==> Extracting Sources...
-> bsdtar -x -f patch-2.5.9.tar.gz
==> Entering fakeroot environment...
==> Starting build()...
11 Hugo Doria Criando pacotes para o Arch Linux
12. makepkg: construindo o pacote
Exemplo de uso do makepkg
[hugo@meryl patch]$ makepkg
(...)
==> Tidying install...
-> Compressing man pages...
-> Stripping debugging symbols from binaries and libraries...
==> Creating package...
-> Generating .PKGINFO file...
-> Compressing package...
==> Leaving fakeroot environment.
==> Finished making: patch 2.5.9-2 i686 (Thu Jun 11 23:33:29
BRT 2009)
==> patch-2.5.9-3-i686.pkg.tar.gz
12 Hugo Doria Criando pacotes para o Arch Linux
13. namcap: analisando o pacote
Ferramenta para auxiliar a criação do pacote
Analisa tanto pacotes, quanto PKGBUILDs
Não corrige os problemas, apenas avisa
Exemplo de uso do makepkg
$ namcap pygtk-2.14.1-1-i686.pkg.tar.gz
pygtk W: Dependency included and not needed (pycairo)
pygtk W: Dependency included and not needed (pygobject)
13 Hugo Doria Criando pacotes para o Arch Linux
14. AUR - Arch Linux User Repository
Repositório voltado para a comunidade
Não contém binários
Berço de boa parte dos pacotes do Arch
http://aur.archlinux.org
14 Hugo Doria Criando pacotes para o Arch Linux
15. Perguntas
15 Hugo Doria Criando pacotes para o Arch Linux
16. Obrigado! :-)
Hugo Doria
< contato@hugodoria.org >
http://hugodoria.org
16 Hugo Doria Criando pacotes para o Arch Linux