NOME¶
makepkg - utilitário de compilação de
pacotes
SINOPSE¶
makepkg [opções] [ENVVAR=valor]
[ENVVAR+=valor] ...
DESCRIÇÃO¶
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.
OPÇÕES¶
-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
For each source file in the source array of PKGBUILD,
download the file if required and generate integrity checks. The integrity
checks generated are determined by the checks present in the PKGBUILD, falling
back to the value of the INTEGRITY_CHECK array in
makepkg.conf(5) if these are
absent This output can be redirected into your PKGBUILD for source validation
using "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.
--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.
--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).
RECURSOS ADICIONAIS¶
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.
REPRODUTIBILIDADE¶
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.
VARIÁVEIS DE AMBIENTE¶
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.
CONFIGURAÇÃO¶
Consulte makepkg.conf(5) para mais detalhes sobre
configurar makepkg usando o arquivo makepkg.conf.
ERROS¶
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¶
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.
AUTORES¶
Atuais mantenedores:
•Allan McRae <allan@archlinux.org>
•Andrew Gregory
<andrew.gregory.8@gmail.com>
•Eli Schwartz
<eschwartz@archlinux.org>
•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>
Para outros contribuidores, use git shortlog -s no
repositório pacman.git.
TRADUÇÃO¶
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.