MAKEPKG(8) Manual do pacman MAKEPKG(8)

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.

--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).

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.

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.

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.

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? 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>
• 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.

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.

6 fevereiro 2024 Pacman 6.0.2