MAKEPKG(8)

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
    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
    Apaga artefatos de compilação de execuções anteriores do makepkg no diretório atual removendo $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).

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

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.

MAKEPKG_GIT_CONFIG="/caminho/para/arquivo"
    Usa um arquivo de configuração alternativo para o Git em vez do /etc/makepkg.d/gitconfig padrão. makepkg sempre evita que o Git carregue outros arquivos de configuraçã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.

MAKEPKG_LINT_PKGBUILD=0
    Definir como 0 desabilita o linting de PKGBUILD dentro do makepkg. Útil em sistemas com operações lentas de subshell bash ou em PKGBUILDs com quantidades extremas de divisão de pacotes.

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.

17
    O repositório local não é um clone do repositório de fontes especificado em PKGBUILD.

VEJA TAMBÉM

makepkg.conf(5), PKGBUILD(5), pacman(8)

Consulte o site do pacman em https://archlinux.org/pacman/ para obter informações atuais sobre o pacman e suas ferramentas relacionadas.

BUGS

Bugs? Você deve estar brincando; não há erros neste software. Mas se por acaso estivermos errados, relate-os no rastreador problemas em https://gitlab.archlinux.org/pacman/pacman/-/issues com informações específicas tal como sua linha de comando, a natureza do erro e até mesmo a base de dados se isso ajudar.

AUTORES

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.

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 (https://www.gnu.org/licenses/gpl-3.0.html) 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 (debian-l10n-portuguese@lists.debian.org).