makepkg - utilitário de compilação de
pacotes
makepkg [opções] [ENVVAR=valor]
[ENVVAR+=valor] ...
makepkg é um script para automatizar a
compilação de pacotes. Os requisitos para usar o script
são uma plataforma *nix com capacidade de compilação e
um script de compilação personalizado para cada pacote que
você deseja compilar (conhecido como PKGBUILD). Consulte
PKGBUILD(5) para obter detalhes sobre como criar seus próprios
scripts de compilação.
A vantagem de uma compilação baseada em script
é que o trabalho é feito apenas uma vez. Depois que
você tiver o script de compilação para um pacote, o
makepkg fará o resto: baixa e valida arquivos-fonte, verifica
dependências, define as configurações de tempo de
compilação, compila o pacote, instala o pacote em uma raiz
temporária, faz personalizações, gera metainfo e
empacota tudo para o pacman usar.
Nota
makepkg usa seu código de localidade atual por
padrão e não o desmarca ao criar pacotes. Se você
deseja compartilhar sua saída de compilação com outras
pessoas ao procurar ajuda ou para outros fins, convém executar
"LC_ALL=C makepkg" para que seus logs e saídas não
sejam localizados.
-A, --ignorearch
Ignora um campo de arquitetura ausente ou incompleto no
script de compilação. Isso serve para recompilar pacotes do
código-fonte quando o PKGBUILD pode estar um pouco desatualizado e
não atualizado com um campo arch=('sua-arquitetura').
-c, --clean
Limpa os arquivos e diretórios de trabalho
restantes após uma compilação bem-sucedida.
--config <arquivo>
Usa um arquivo de configuração alternativo
em vez do /etc/makepkg.conf padrão.
-d, --nodeps
Não executa nenhuma verificação de
dependências. Isso permitirá que você substitua e ignore
todas as dependências necessárias. Há uma boa chance de
que essa opção interrompa o processo de compilação
se todas as dependências não estiverem instaladas.
-e, --noextract
Não extrai arquivos-fonte nem executa a
função prepare() (se houver); usa qualquer fonte que já
exista no diretório $srcdir/. Isso é útil se você
quiser acessar o $srcdir/ e manualmente corrigir ou ajustar o código e
criar um pacote com o resultado. Lembre-se de que criar um patch pode ser uma
solução melhor para permitir que outras pessoas usem seu
PKGBUILD.
--verifysource
Para cada arquivo-fonte no vetor de fontes do PKGBUILD,
faz o download do arquivo, se necessário, e executa as
verificações de integridade. Nenhuma extração ou
compilação é executada. As dependências
especificadas no PKGBUILD não serão tratadas, a menos que
--syncdeps seja usada. Útil para executar compilações
off-line subsequentes.
-f, --force
O makepkg não compilará um pacote se ele
já existir no diretório PKGDEST (definido no
makepkg.conf(5)), que pode ser o diretório atual. Isso permite
que o pacote compilado seja substituído.
-g, --geninteg
Para cada arquivo-fonte no vetor de fontes do PKGBUILD,
faz o download do arquivo, se necessário, e gera
verificações de integridade. As verificações de
integridade geradas são determinadas pelas verificações
presentes no PKGBUILD, retornando ao valor do vetor INTEGRITY_CHECK em
makepkg.conf(5), se estas estiverem ausentes. Esta saída pode ser
redirecionada para o seu PKGBUILD para validação de origem
usando "makepkg -g >> PKGBUILD".
--skipinteg
Não realiza nenhuma verificação de
integridade (soma de verificação e PGP) nos
arquivos-fonte.
--skipchecksums
Não verifica somas de verificação de
arquivos-fonte.
--skippgpcheck
Não verifica assinaturas PGP de
arquivos-fonte.
-h, --help
Emite sintaxe e opções de linha de
comando.
--holdver
Ao usar fontes VCS (
PKGBUILD(5)), qualquer atual
checkout de fontes não será atualizado para a revisão
mais recente.
-i, --install
Instala ou atualiza o pacote após uma
compilação bem-sucedida usando
pacman(8).
-L, --log
Ativa o log. Isso usará o programa tee para
enviar a saída de cada uma das funções PKGBUILD para o
console e para um arquivo texto no diretório de
compilação chamado
pkgbase-pkgver-pkgrel-arch-<função>.log. Como mencionado
acima, os logs serão localizados (traduzidos), portanto, convém
definir seu código de idioma de acordo se compartilhar a saída
do log com outras pessoas.
-m, --nocolor
Desabilita cores nas mensagens de saída.
-o, --nobuild
Baixa e extrai arquivos, executa a função
prepare(), mas não os compila. Útil com a opção
--noextract se você deseja ajustar os arquivos em $srcdir/ antes
de compilar.
-p <buildscript>
Lê o script de pacote "buildscript" em
vez do padrão PKGBUILD; consulte
PKGBUILD(5). Este script deve
estar localizado no diretório de onde o makepkg é chamado.
-r, --rmdeps
Após uma compilação bem-sucedida,
remove quaisquer dependências instaladas pelo makepkg durante a
resolução automática e a instalação da
dependência ao usar -s.
-R, --repackage
Reempacota o conteúdo do pacote sem recompilar o
pacote. Isso é útil se você esquecer, por exemplo, um
arquivo de dependência ou instalação no seu PKGBUILD e a
compilação em si não será alterada.
-s, --syncdeps
Instala dependências em falta usando pacman.
Quando não são encontradas dependências de tempo de
compilação ou tempo de execução, o pacman
tentará resolvê-las. Se for bem-sucedido, os pacotes ausentes
serão baixados e instalados.
-S, --source
Não chega a compilar o pacote, mas cria um tarball
com apenas os arquivos-fonte que não inclui fontes que possam ser
buscados por meio de uma URL de download. Isso é útil para
passar um único tarball para outro programa, como um chroot, compilador
remoto ou envio de um tarball. Como as verificações de
integridade são verificadas, todos os arquivos-fonte do pacote precisam
estar presentes ou disponíveis para download.
-V, --version
Exibe informações da versão.
-C, --cleanbuild
Remove o $srcdir antes de compilar o pacote.
-D <dir>, --dir <dir>
Mude para o diretório <dir> antes de ler o
PKGBUILD ou fazer qualquer outra coisa.
--allsource
Não chega a compilar o pacote, mas cria um tarball
com apenas os arquivos-fonte que inclui todos fontes, incluindo aqueles que
normalmente são baixados via makepkg. Isso é útil para
passar um único tarball para outro programa, como um chroot ou
compilador remoto. Ele também vai satisfazer os requisitos da GPL ao
distribuir pacotes binários.
--check
Executa a função check() no PKGBUILD,
sobrescreve a configuração no
makepkg.conf(5).
--noarchive
Não cria o pacote no final do processo de
compilação. Isto pode ser útil para testar a
função package() ou se sua distribuição alvo
não usa pacman.
--nocheck
Não executa a função check() no
PKGBUILD nem lida com as checkdepends.
--noprepare
Não executa a função prepare() no
PKGBUILD.
--noverify
Não executa a função verify() no
PKGBUILD.
--sign
Assina o pacote resultante com gpg, sobrescrevendo a
configuração no
makepkg.conf(5).
--nosign
Não cria uma assinatura para o pacote
compilado.
--key <chave>
Especifica uma chave para usar ao assinar pacotes,
sobrescrevendo a configuração GPGKEY no
makepkg.conf(5).
Se não especificado em nenhum local, a chave padrão do chaveiro
será usado.
--noconfirm
(Passado para o pacman) Evita do pacman ficar aguardando
entrada do usuário antes de proceder com as
operações.
--needed
(Passado para o pacman) Diz ao pacman para não
reinstalar um alvo se ele já estiver atualizado. (usado com -i /
--install).
--asdeps
(Passado para o pacman) Instala pacotes como instalado
não explicitamente (usado com -i / --install).
--noprogressbar
(Passado para o pacman) Evita do pacman exibir uma barra
de progresso; útil se você está redirecionando a
saída do makepkg para um arquivo.
--packagelist
Lista os nomes de pacote que seriam produzidos sem
compilar. Nomes de arquivos de pacotes listados inclui PKGDEST e PKGEXT.
--printsrcinfo
Gera e imprime o arquivo SRCINFO para saída
padrão (stdout).
O makepkg tem suporte à compilação de
versões de desenvolvimento de pacotes sem a necessidade de atualizar
manualmente o pkgver no PKGBUILD. Isso era feito anteriormente usando o
utilitário separado versionpkg. Consulte PKGBUILD(5)
para obter detalhes sobre como configurar um PKGBUILD de
desenvolvimento.
O makepkg foi projetado para ser compatível com
Reproducible Builds. Se a variável de ambiente
SOURCE_DATE_EPOCH estiver configurada, ela será exportada para
subprocessos, e os tempos de modificação do arquivo-fonte e de
pacote e os metadados do pacote serão unificados com base no registro
de data e hora especificado.
Se a variável de ambiente SOURCE_DATE_EPOCH
não estiver configurada, makepkg usará sua própria data
de início para uso interno, mas não unificará os
registros de data e hora do arquivo-fonte antes de compilar.
MAKEPKG_LIBRARY="/caminho/para/diretório"
Usa um caminho do libmakepkg alternativo em vez do
/usr/share/makepkg padrão.
PACMAN
O comando que será usado para verificar as
dependências ausentes e instalar e remover pacotes. As
operações -Qq, -Rns, -S, -T e
-U do pacman devem ser suportadas por este comando. Se a
variável não estiver configurada nem vazia, o makepkg
recorrerá a ‘pacman’.
MAKEPKG_CONF="/caminho/para/arquivo"
Usa um arquivo de configuração alternativo
em vez do /etc/makepkg.conf padrão.
PKGDEST="/caminho/para/diretório"
Diretório onde os pacotes resultantes serão
armazenados. Substitui o valor correspondente definido no
makepkg.conf(5).
SRCDEST="/caminho/para/diretório"
Diretório onde as fontes baixadas serão
armazenadas. Substitui o valor correspondente definido no
makepkg.conf(5).
SRCPKGDEST="/caminho/para/diretório"
Diretório onde os arquivos de pacote fonte
serão armazenados. Substitui o valor correspondente definido no
makepkg.conf(5).
LOGDEST="/caminho/para/diretório"
Diretório onde os arquivos de log gerados
serão armazenados. Substitui o valor correspondente definido no
makepkg.conf(5).
PACKAGER="John Doe <john@doe.com>"
String para identificar o criador do pacote resultante.
Substitui o valor correspondente definido no
makepkg.conf(5).
BUILDDIR="/caminho/para/diretório"
Diretório onde o pacote será compilado.
Substitui o valor correspondente definido no
makepkg.conf(5).
CARCH="(i686|x86_64)"
Força compilação para uma
arquitetura específica. Útil para compilação
cruzada. Substitui o valor correspondente definido no
makepkg.conf(5).
PKGEXT=".pkg.tar.gz",
SRCEXT=".src.tar.gz"
Define a compactação usada ao criar pacotes
compilados ou fonte. Substitui o valor correspondente definido no
makepkg.conf(5).
GNUPGHOME="/caminho/para/diretório"
Diretório onde o chaveiro gpg para assinar o
pacote compilado está armazenado.
GPGKEY="keyid"
Especifica uma chave a ser usada ao assinar pacotes,
substituindo a configuração GPGKEY no
makepkg.conf(5).
SOURCE_DATE_EPOCH="<data>"
Usado para Reproducible Builds.
BUILDTOOL="<nome>"
O nome de um ecossistema de ferramentas usado para
configurar o ambiente de compilação. Usado para definir um spec
para compilações reprodutíveis. Por exemplo, o
makepkg.conf(5) usado.
BUILDTOOLVER="<versão>"
A versão do $BUILDTOOL usado.
GITFLAGS
As opções a serem passadas ao verificar
fontes git, substituindo o padrão "--mirror".
Consulte makepkg.conf(5) para mais detalhes sobre
configurar makepkg usando o arquivo makepkg.conf.
Ao sair, o makepkg vai retornar um dos códigos de erro a
seguir.
0
Condição de saída normal.
1
Causa desconhecida de falha.
2
Erro no arquivo de configuração.
3
O usuário especificou uma opção
inválida.
4
Erro na função fornecida pelo
usuário no PKGBUILD.
5
Falha ao criar um pacote viável.
6
Um arquivo-fonte ou auxiliar especificado no PKGBUILD
está faltando.
7
O PKGDIR está faltando.
8
Falha ao instalar dependências.
9
Falha ao remover dependências.
10
O usuário tentou executar makepkg como root.
11
O usuário carece de permissões para
compilar ou instalar na localização dada.
12
Erro de análise do PKGBUILD.
13
Um pacote já foi compilado.
14
O pacote falhou em instalar.
15
Os programas necessários para executar o makepkg
estão faltando.
16
A chave GPG especificada não existe ou ocorreu uma
falha ao assinar o pacote.
Bugs? Você deve estar brincando; não há erros
neste software. Mas se por acaso estivermos errados, envie um
relatório de erro com o máximo de detalhes possível no
rastreador de erros do Arch Linux na seção Pacman.
Atuais mantenedores:
•Allan McRae <allan@archlinux.org>
•Andrew Gregory
<andrew.gregory.8@gmail.com>
•Morgan Adamiec
<morganamilo@archlinux.org>
Principais colaboradores anteriores:
•Judd Vinet <jvinet@zeroflux.org>
•Aurelien Foret
<aurelien@archlinux.org>
•Aaron Griffin <aaron@archlinux.org>
•Dan McGee <dan@archlinux.org>
•Xavier Chantry <shiningxc@gmail.com>
•Nagy Gabor <ngaba@bibl.u-szeged.hu>
•Dave Reisner <dreisner@archlinux.org>
•Eli Schwartz
<eschwartz@archlinux.org>
Para outros contribuidores, use git shortlog -s no
repositório pacman.git.
A tradução para português brasileiro desta
página man foi criada por Rafael Fontenelle
<rafaelff@gnome.org>
Esta tradução é uma
documentação livre; leia a
Licença
Pública Geral GNU Versão 3 ou posterior para as
condições de direitos autorais. Nenhuma responsabilidade
é aceita.
Se você encontrar algum erro na tradução
desta página de manual, envie um e-mail para
a lista
de discussão de tradutores.