.\" -*- coding: UTF-8 -*- '\" t .\" Title: pkgbuild .\" Author: [see the "Authors" section] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024-02-06 .\" Manual: Pacman Manual .\" Source: Pacman 6.0.2 .\" Language: English .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH PKGBUILD 5 "6 fevereiro 2024" "Pacman 6\&.0\&.2" "Manual do pacman" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH NOME PKGBUILD \- Arquivo de descrição de compilação de pacotes do Arch Linux .SH SINOPSE .sp PKGBUILD .SH DESCRIÇÃO .sp Esta página do manual descreve as regras gerais sobre PKGBUILDs\&. Uma vez que um PKGBUILD é escrito, o pacote real é compilado usando makepkg e instalado com pacman\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBNota\fP .ps -1 .br .sp Um exemplo de PKGBUILD, útil para referência, está localizado em \fI/usr/share/pacman\fP junto com outros arquivos de exemplo, como um script de instalação\&. Você pode copiar o arquivo PKGBUILD\&.proto fornecido para um novo diretório de compilação de pacote e fazer personalizações para atender às suas necessidades\&. .sp .5v .RE .SH "OPÇÕES E DIRETIVAS" .sp A seguir está uma lista de opções e diretivas padrão disponíveis para uso em um PKGBUILD\&. Todos eles são compreendidos e interpretados pelo makepkg, e a maioria deles será transferida diretamente para o pacote compilado\&. Os campos obrigatórios para um PKGBUILD minimamente funcional são \fBpkgname\fP, \fBpkgver\fP, \fBpkgrel\fP e \fBarch\fP\&. .sp Se você precisar criar qualquer variável personalizada para uso em seu processo de compilação, é recomendado prefixar seu nome com um \fI_\fP (sublinhado)\&. Isso evitará qualquer conflito de nome possível com variáveis internas do makepkg\&. Por exemplo, para armazenar a versão base do kernel em uma variável, use algo semelhante a $_basekernver\&. .PP \fBpkgname (array)\fP .RS 4 O nome do pacote ou um array de nomes para pacotes divididos\&. Os caracteres válidos para membros deste array são alfanuméricos e qualquer um dos seguintes caracteres: \(lq@ \&. _ + \-\(rq\&. Além disso, os nomes não podem começar com hífenes ou pontos\&. .RE .PP \fBpkgver\fP .RS 4 A versão do software conforme lançada pelo autor (por exemplo, \fI2\&.7\&.1\fP)\&. A variável não pode conter dois pontos, barras, hífenes ou espaços em branco\&. .sp A variável pkgver pode ser atualizada automaticamente fornecendo uma função pkgver() no PKGBUILD que produz a nova versão do pacote\&. Isso é executado após o download e a extração de fontes e a execução da função prepare() (se houver), para que possa usar esses arquivos para determinar o novo pacote\&. Isso é mais útil quando usado com fontes de sistemas de controle de versão (veja abaixo)\&. .RE .PP \fBpkgrel\fP .RS 4 Este é o número de lançamento específico para a distribuição\&. Isso permite que os mantenedores do pacote façam atualizações nos sinalizadores de configuração do pacote, por exemplo\&. Isso normalmente é definido como \fI1\fP para cada nova versão de software upstream e incrementado para atualizações intermediárias de PKGBUILD\&. A variável é positiva inteiro, com um nível de sub\-lançamento opcional especificado pela adição de outro inteiro positivo separado por um ponto (ou seja, na forma x\&.y)\&. .RE .PP \fBepoch\fP .RS 4 Usado para forçar o pacote a ser visto como mais novo do que qualquer versão anterior com uma época inferior, mesmo se o número da versão normalmente não acionaria tal atualização\&. Este valor deve ser um número inteiro positivo; o valor padrão se não for especificado é \fI0\fP\&. Isso é útil quando o esquema de numeração de versão de um pacote muda (ou é alfanumérico), quebrando a lógica de comparação de versão normal\&. Veja \fBpacman\fP(8) para mais informações sobre comparações de versão\&. .RE .PP \fBpkgdesc\fP .RS 4 Esta deve ser uma breve descrição do pacote e sua funcionalidade\&. Tente manter a descrição em uma linha de texto e não usar o nome do pacote\&. .RE .PP \fBurl\fP .RS 4 Este campo contém uma URL que está associado ao software sendo empacotado\&. Normalmente é o site do projeto \&. .RE .PP \fBlicense (array)\fP .RS 4 Este campo especifica a(s) licença(s) que se aplicam ao pacote\&. As licenças comumente usadas podem ser encontradas em \fI/usr/share/licences/common\fP\&. Se você vir a licença do pacote lá, simplesmente faça referência a ela no campo de licença (por exemplo, license=(\*(AqGPL\*(Aq))\&. Se o pacote fornece uma licença não disponível em \fI/usr/share/licences/common\fP, então você deve incluí\-lo no próprio pacote e definir license=(\*(Aqcustom\*(Aq) ou license=(\*(Aqcustom:NomeLicença\*(Aq)\&. A licença deve ser colocada em \fI$pkgdir/usr/share/licenses/$pkgname/\fP ao compilar o pacote\&. Se várias licenças forem aplicáveis, liste todas elas: license=(\*(AqGPL\*(Aq \*(AqFDL\*(Aq)\&. .RE .PP \fBinstall\fP .RS 4 Especifica um script de instalação especial que deve ser incluído no pacote\&. Este arquivo deve residir no mesmo diretório que o PKGBUILD e será copiado para o pacote por makepkg\&. Não precisa ser incluído no array de fontes (por exemplo, install=$pkgname\&.install)\&. .RE .PP \fBchangelog\fP .RS 4 Especifica um arquivo changelog que deve ser incluído no pacote\&. O arquivo changelog deve terminar com uma única nova linha\&. Este arquivo deve residir no mesmo diretório que o PKGBUILD e será copiado para o pacote pelo makepkg\&. Não precisa ser incluído no array de fontes (por exemplo, changelog=$pkgname\&.changelog)\&. .RE .PP \fBsource (array)\fP .RS 4 Um array de arquivos fonte necessários para compilar o pacote\&. Os arquivos fonte devem residir no mesmo diretório que o PKGBUILD ou ser uma URL totalmente qualificada que o makepkg pode usar para baixar o arquivo\&. Para simplificar a manutenção de PKGBUILDs, use as variáveis $pkgname e $pkgver ao especificar o local do download, se possível\&. Os arquivos compactados serão extraídos automaticamente, a menos que sejam encontrados no array noextract descrito abaixo\&. .sp Fontes adicionais específicas da arquitetura podem ser adicionadas anexando um sublinhado e o nome da arquitetura, como, por exemplo, \fIsource_x86_64=()\fP\&. Deve haver uma array de integridade correspondente com somas de verificação, por exemplo, \fIcksums_x86_64=()\fP\&. .sp Também é possível alterar o nome do arquivo baixado, o que é útil com URLs estranhas e para lidar com vários arquivos fonte com o mesmo nome\&. A sintaxe é: source=(\*(Aqnomedoarquivo::url\*(Aq)\&. .sp makepkg também oferece suporte à compilação de versões de desenvolvimento de pacotes usando fontes baixadas de sistemas de controle de versão (VCS)\&. Para obter mais informações, consulte Usando fontes VCS abaixo\&. .sp Os arquivos no array fonte com extensões \&.sig, \&.sign ou \&.asc são reconhecidos pelo makepkg como assinaturas PGP e serão usados automaticamente para verificar a integridade do arquivo fonte correspondente\&. .RE .PP \fBvalidpgpkeys (array)\fP .RS 4 Um array de impressões digitais PGP\&. Se este array não estiver vazio, makepkg só aceitará assinaturas das chaves listadas aqui e irá ignorar os valores de confiança do chaveiro\&. Se o arquivo fonte foi assinado com uma subchave, makepkg ainda usará a chave primária para comparação\&. .sp Somente impressões digitais completas são aceitas\&. Elas devem estar em maiúsculas e não devem conter caracteres de espaço em branco\&. .RE .PP \fBnoextract (array)\fP .RS 4 Um array de nomes de arquivos correspondentes aos do array fonte\&. Os arquivos listados aqui não serão extraídos com o restante dos arquivos fonte\&. Isso é útil para pacotes que usam dados compactados diretamente\&. .RE .PP \fBcksums (array)\fP .RS 4 Este array contém somas de verificação CRC para cada arquivo fonte especificado no array de fontes (na mesma ordem)\&. makepkg usará isso para verificar a integridade do arquivo fonte durante as compilações subsequentes\&. Se \fISKIP\fP for colocado no array no lugar de um hash normal, a verificação de integridade desse arquivo fonte será ignorada\&. Para gerar facilmente cksums, execute \(lqmakepkg \-g >> PKGBUILD\(rq\&. Se desejar, mova a linha ck5sums para um local apropriado\&. Note que somas de verificação gerados por "makepkg \-g" devem ser verificados usando valores de soma de verificação fornecido pelo desenvolvedor do software\&. .RE .PP \fBmd5sums, sha1sums, sha224sums, sha256sums, sha384sums, sha512sums, b2sums (arrays)\fP .RS 4 Verificações de integridade alternativas aceitas pelo makepkg; todos elas se comportam de forma semelhante à opção cksums descrita acima\&. Para habilitar o uso e geração dessas somas de verificação, certifique\-se de configurar a opção INTEGRITY_CHECK em \fBmakepkg.conf\fP(5)\&. .RE .PP \fBgroups (array)\fP .RS 4 Um array de nomes simbólicos que representam grupos de pacotes, permitindo que você instale vários pacotes solicitando um único destino\&. Por exemplo, pode\-se instalar todos os pacotes do KDE instalando o grupo \fIkde\fP\&. .RE .PP \fBarch (array)\fP .RS 4 Define em quais arquiteturas o pacote fornecido está disponível (por exemplo, arch=(\*(Aqi686\*(Aq \*(Aqx86_64\*(Aq))\&. Pacotes que não contêm arquivos específicos de arquitetura deve usar arch=(\*(Aqany\*(Aq)\&. Os caracteres válidos para membros desta matriz são alfanuméricos e \(lq_\(rq\&. .RE .PP \fBbackup (array)\fP .RS 4 Um array de nomes de arquivo, sem barras no início, cujo backup deve ser feito se o pacote for removido ou atualizado\&. Isso é comumente usado para pacotes que colocam arquivos de configuração em \fI/etc\fP\&. Veja "Manipulação de Arquivos de Configuração" em \fBpacman\fP(8) para mais informações\&. .RE .PP \fBdepends (array)\fP .RS 4 Um array de pacotes dos quais este pacote depende para executar\&. As entradas nesta lista devem ser colocadas entre aspas simples e conter pelo menos o nome do pacote\&. As inscrições também podem incluir um requisito de versão no formato \fInome<>versão\fP, onde <> é uma das cinco comparações: >= (maior ou igual a), <= (menor ou igual a), = (igual a), > (maior que) ou < (menor que)\&. .sp Se o nome da dependência parece ser uma biblioteca (termina com \&.so), makepkg tentará encontrar um binário que dependa da biblioteca no pacote compilado e anexará a versão necessária para o binário\&. Anexar você mesmo a versão desativa a detecção automática\&. .sp Dependências específicas da arquitetura adicionais podem ser adicionadas anexando um sublinhado e o nome da arquitetura, por exemplo, \fIdepends_x86_64=()\fP\&. .RE .PP \fBmakedepends (array)\fP .RS 4 Um array de pacotes dos quais este pacote depende para compilar, mas não são necessários em tempo de execução\&. Os pacotes nesta lista seguem o mesmo formato que o array depends\&. .sp Outros makedepends específicos de arquitetura podem ser adicionados anexando um sublinhado e o nome da arquitetura, por exemplo, \fImakedepends_x86_64=()\fP\&. .RE .PP \fBcheckdepends (array)\fP .RS 4 Um array de pacotes dos quais este pacote depende para executar seu conjunto de testes, mas não são necessários em tempo de execução\&. Os pacotes nesta lista seguem o mesmo formato que depends\&. Essas dependências são consideradas apenas quando a função check() está presente e deve ser executada por makepkg\&. .sp Outros checkdepends específicos da arquitetura podem ser adicionados anexando um sublinhado e o nome da arquitetura, por exemplo, \fIcheckdepends_x86_64=()\fP\&. .RE .PP \fBoptdepends (array)\fP .RS 4 Um array de pacotes (e os motivos que os acompanham) que não são essenciais para a funcionalidade básica, mas podem ser necessários para fazer uso completo do conteúdo deste pacote\&. optdepends são atualmente apenas para fins informativos e não são utilizados pelo pacman durante a resolução de dependência\&. Os pacotes nesta lista seguem o mesmo formato que depende, com uma descrição opcional anexada\&. O formato para especificar as descrições optdepends é: .sp .if n \{\ .RS 4 .\} .nf optdepends=(\*(Aqpython: for library bindings\*(Aq) .fi .if n \{\ .RE .\} .sp Opções adicionais específicas da arquitetura podem ser adicionadas anexando um sublinhado e o nome da arquitetura, por exemplo, \fIoptdepends_x86_64=()\fP\&. .RE .PP \fBconflicts (array)\fP .RS 4 Um array de pacotes que entrarão em conflito com este pacote (ou seja, eles não podem ser instalados ao mesmo tempo)\&. Esta diretiva segue o mesmo formato que depends\&. Conflitos versionados são suportados usando os operadores conforme descrito em depends\&. .sp Conflitos específicos de arquitetura adicionais podem ser adicionados anexando um sublinhado e o nome da arquitetura, por exemplo, \fIconflicts_x86_64=()\fP\&. .RE .PP \fBprovides (array)\fP .RS 4 Um array de \(lqprovisões virtuais\(rq que este pacote oferece\&. Isso permite que um pacote forneça dependências diferentes de seu próprio nome de pacote\&. Por exemplo, o pacote dcron pode fornecer \fIcron\fP, que permite que os pacotes dependam do \fIcron\fP em vez de \fIdcron OU fcron\fP\&. .sp Provisões versionadas também são possíveis, no formato \fInome=versão\fP\&. Por exemplo, dcron pode fornecer \fIcron=2\&.0\fP para satisfazer a dependência \fIcron>=2\&.0\fP de outros pacotes\&. As disposições que envolvem os operadores > e < são inválidas, pois apenas versões específicas de um pacote podem ser fornecidas\&. .sp Se o nome da provisão parecer uma biblioteca (termina com \&.so), makepkg tentará encontrar a biblioteca no pacote compilado e anexar a versão correta\&. Anexar você mesmo a versão desativa a detecção automática\&. .sp Provisões específicas de arquitetura adicionais podem ser adicionadas anexando um sublinhado e o nome da arquitetura, por exemplo, \fIprovides_x86_64=()\fP\&. .RE .PP \fBreplaces (array)\fP .RS 4 Um array de pacotes que este pacote deve substituir\&. Isso pode ser usado para lidar com pacotes renomeados/combinados\&. Por exemplo, se o pacote \fBj2re\fP for renomeado para \fBjre\fP, esta diretiva permite que atualizações futuras continuem conforme o esperado, mesmo que o pacote tenha sido movido\&. Há suporte a substituições versionadas ao usar os operadores conforme descrito em depends\&. .sp O sysupgrade é atualmente a única operação pacman que utiliza este campo\&. Uma sincronização ou atualização normal não usará seu valor\&. .sp Substituições específicas de arquitetura adicionais podem ser adicionadas anexando um sublinhado e o nome da arquitetura, por exemplo, \fIreplaces_x86_64=()\fP\&. .RE .PP \fBoptions (array)\fP .RS 4 Este array permite que você substitua alguns dos comportamentos padrão do makepkg ao compilar pacotes\&. Para definir uma opção, apenas inclua o nome da opção na array de opções\&. Para reverter o comportamento padrão, coloque um \(lq!\(rq na frente da opção\&. Especifique apenas as opções que deseja substituir, o resto será obtido de \fBmakepkg.conf\fP(5)\&. \fBNOTA:\fP \fIforce\fP é uma opção agora removida em favor da variável de nível superior \fIepoch\fP\&. .PP \fBstrip\fP .RS 4 Retira símbolos de binários e bibliotecas\&. Se você usa frequentemente um depurador em programas ou bibliotecas, pode ser útil desabilitar esta opção\&. .RE .PP \fBdocs\fP .RS 4 Armazena diretórios de documentação\&. Se você deseja excluir diretórios doc, especifique !docs no array\&. .RE .PP \fBlibtool\fP .RS 4 Deixa arquivos libtool (\&.la) nos pacotes\&. Especifique !libtool para removê\-los\&. .RE .PP \fBstaticlibs\fP .RS 4 Deixa os arquivos de biblioteca estática (\&.a) nos pacotes\&. Especifique !staticlibs para removê\-los (se eles tiverem uma contraparte compartilhada)\&. .RE .PP \fBemptydirs\fP .RS 4 Deixa diretórios vazios nos pacotes\&. .RE .PP \fBzipman\fP .RS 4 Comprime páginas man e info com gzip\&. .RE .PP \fBccache\fP .RS 4 Permite o uso de ccache durante o build()\&. Mais útil em sua forma negativa !ccache com pacotes selecionados que têm problemas de compilação com ccache\&. .RE .PP \fBdistcc\fP .RS 4 Permite o uso de distcc durante o build()\&. Mais útil em sua forma negativa !distcc com pacotes selecionados que têm problemas de compilação com distcc\&. .RE .PP \fBbuildflags\fP .RS 4 Permite o uso de buildflags específicos do usuário (CPPFLAGS, CFLAGS, CXXFLAGS, LDFLAGS) durante o build() conforme especificado no \fBmakepkg.conf\fP(5)\&. Mais útil em sua forma negativa !buildflags com pacotes selecionados que têm problemas de compilação com buildflags personalizados\&. .RE .PP \fBmakeflags\fP .RS 4 Permite o uso de makeflags específicos do usuário durante o build() conforme especificado no \fBmakepkg.conf\fP(5)\&. Mais útil em sua forma negativa !makeflags com pacotes selecionados que têm problemas para compilar com makeflags personalizados como \-j2 (ou superior)\&. .RE .PP \fBdebug\fP .RS 4 Adiciona os sinalizadores de depuração especificados pelo usuário (DEBUG_CFLAGS, DEBUG_CXXFLAGS) aos seus buildflags correspondentes, conforme especificado em \fBmakepkg.conf\fP(5). Quando usado em combinação com a opção \(oqstrip\(cq, um pacote separado contendo os símbolos de depuração é criado\&. .RE .PP \fBlto\fP .RS 4 Habilita compilação de pacotes usando otimização em tempo de vinculação (link time optimization)\&. Adiciona \fI\-flto\fP a CFLAGS e CXXFLAGS\&. .RE .RE .SH "FUNÇÕES DE EMPACOTAMENTO" .sp Além das diretivas acima, PKGBUILDs exigem um conjunto de funções que fornecem instruções para compilar e instalar o pacote\&. No mínimo, o PKGBUILD deve conter uma função package() que instala todos os arquivos do pacote no diretório de empacotamento, com funções opcionais prepare(), build() e check() sendo usadas para criar esses arquivos a partir do código\-fonte\&. .sp Ele é obtido e executado diretamente pelo makepkg, portanto, qualquer coisa que o Bash ou o sistema tenha disponível está disponível para uso aqui\&. Certifique\-se de que quaisquer comandos exóticos usados ​​sejam cobertos pelo array makedepends\&. .sp Se você criar qualquer variável própria em qualquer uma dessas funções, é recomendável usar a palavra\-chave local do Bash para definir o escopo da variável dentro da função\&. .PP \fBFunção package()\fP .RS 4 A função package() é usada para instalar arquivos no diretório que se tornará o diretório raiz do pacote compilado e é executada após todas as funções opcionais listadas abaixo\&. O estágio de empacotamento é executado usando fakeroot para garantir as permissões de arquivo corretas no pacote resultante\&. Todas as outras funções serão executadas como o usuário chamando makepkg\&. .RE .PP \fBFunção prepare()\fP .RS 4 Uma função opcional prepare() pode ser especificada na qual operações para preparar fontes para compilação, como aplicação de patches, são realizadas\&. Esta função é executada após a extração de fonte e antes da função build()\&. A função prepare() é ignorada quando a extração de fonte é ignorada\&. .RE .PP \fBFunção build()\fP .RS 4 A função opcional build() é usada para compilar e/ou ajustar os arquivos fontes na preparação para serem instalados pela função package()\&. .RE .PP \fBFunção check()\fP .RS 4 Uma função opcional check() pode ser especificada na qual um conjunto de testes do pacote pode ser executado\&. Esta função é executada entre as funções build() e package()\&. Certifique\-se de que todos os comandos exóticos usados ​​sejam cobertos pelo array checkdepends\&. .RE .sp Todas as variáveis ​​acima, como $pkgname e $pkgver, estão disponíveis para uso nas funções de empacotamento\&. Além disso, makepkg define as seguintes variáveis: .PP \fBsrcdir\fP .RS 4 Contém o diretório onde makepkg extrai, ou copia, todos os arquivos fonte\&. .sp Todas as funções de empacotamento definidas acima são executadas a partir de $srcdir .RE .PP \fBpkgdir\fP .RS 4 Contém o diretório onde makepkg empacota o pacote instalado\&. Este diretório se tornará o diretório raiz do seu pacote compilado\&. Esta variável deve ser usada apenas na função package(). .RE .PP \fBstartdir\fP .RS 4 Contém o caminho absoluto para o diretório onde o PKGBUILD está localizado, que normalmente é a saída de $(pwd) quando o makepkg é iniciado\&. O uso desta variável foi descontinuado e fortemente desencorajado\&. .RE .SH "DIVISÃO DE PACOTES" .sp makepkg oferece suporte à compilação de múltiplos pacotes de um único PKGBUILD\&. Isso é obtido atribuindo um array de nomes de pacotes à diretiva pkgname\&. Cada pacote dividido usa uma função de empacotamento correspondente com o nome package_foo(), onde foo é o nome do pacote dividido\&. .sp Todas as opções e diretivas para os pacotes divididos são padronizados para os valores globais fornecidos no PKGBUILD\&. No entanto, os seguintes podem ser substituídos dentro da função de empacotamento de cada pacote dividido: pkgdesc, arch, url, license, groups, depends, optdepends, provides, conflicts, replaces, backup, options, install e changelog\&. .sp Note que makepkg não considera as dependências de um pacote dividido específico ao verificar se as dependências estão instaladas antes da compilação do pacote e com \-\-syncdeps\&. Todos os pacotes necessários para compilar o pacote devem ser especificados nos arrays globais depends e makedepends\&. .sp Uma diretiva global opcional está disponível ao compilar um pacote dividido: .PP \fBpkgbase\fP .RS 4 O nome usado para se referir ao grupo de pacotes na saída do makepkg e na nomenclatura de tarballs apenas com o código\-fonte\&. Se não for especificado, o primeiro elemento no array pkgname é usado\&. Os caracteres válidos para esta variável são alfanuméricos e qualquer um dos seguintes caracteres: \(lq@ \&. _ + \-\(rq\&. Além disso, a variável não pode começar com hífenes ou pontos\&. .RE .SH "SCRIPT DE INSTALAÇÃO/ATUALIZAÇÃO/REMOÇÃO" .sp Pacman tem a capacidade de armazenar e executar um script específico do pacote ao instalar, remover ou atualizar um pacote\&. Isso permite que um pacote se configure após a instalação e execute uma ação oposta na remoção\&. .sp A hora exata em que o script é executado varia com cada operação e deve ser autoexplicativa\&. Observe que durante uma operação de atualização, nenhuma das funções de instalação ou remoção será chamada\&. .sp Os scripts são passados ​​por uma ou duas \(lqstrings de versão completa\(rq, onde uma string de versão completa é \fIpkgver\-pkgrel\fP ou \fIepoch:pkgver\-pkgrel\fP, se epoch for diferente de zero\&. .PP \fBpre_install\fP .RS 4 Executa imediatamente antes dos arquivos serem extraídos\&. Um argumento é passado: string de versão completa do pacote novo\&. .RE .PP \fBpost_install\fP .RS 4 Executa imediatamente após os arquivos serem extraídos\&. Um argumento é passado: string de versão completa do pacote novo\&. .RE .PP \fBpre_upgrade\fP .RS 4 Executa imediatamente antes dos arquivos serem extraídos\&. Dois argumentos são passados ​​nesta ordem: string da versão completa do pacote novo, string da versão completa do pacote antigo\&. .RE .PP \fBpost_upgrade\fP .RS 4 Executa após os arquivos serem extraídos\&. Dois argumentos são passados ​​nesta ordem: string da versão completa do pacote novo, string da versão completa do pacote antigo\&. .RE .PP \fBpre_remove\fP .RS 4 Executa imediatamente antes dos arquivos serem removidos\&. Um argumento é passado: string de versão completa do pacote antigo\&. .RE .PP \fBpost_remove\fP .RS 4 Executa logo após os arquivos serem removidos\&. Um argumento é passado: string de versão completa do pacote antigo\&. .RE .sp Para usar esse recurso, crie um arquivo como \fIpkgname\&.install\fP e coloque\-o no mesmo diretório do script PKGBUILD\&. Em seguida, use a diretiva de instalação: .sp .if n \{\ .RS 4 .\} .nf install=pkgname\&.install .fi .if n \{\ .RE .\} .sp O script de instalação não precisa ser especificado no array de fontes\&. Um arquivo de instalação de modelo está disponível em \fI/usr/share/pacman\fP como \fIproto\&.install\fP para referência com todas as funções disponíveis definidas\&. .SH "USANDO FONTES VCS" .sp A compilação de uma versão de desenvolvimento de um pacote usando fontes de um sistema de controle de versão (VCS) é habilitada especificando a fonte no formato: .sp .if n \{\ .RS 4 .\} .nf source=(\*(Aqdiretório::url#fragmento?consulta\*(Aq) .fi .if n \{\ .RE .\} .sp Atualmente, o makepkg tem suporte aos sistemas de controle de versão Bazaar, Git, Subversion, Fossil e Mercurial\&. Para outros sistemas de controle de versão, a clonagem manual dos repositórios upstream deve ser feita na função prepare()\&. .sp O URL de fonte é dividido em quatro componentes: .PP \fBdiretório\fP .RS 4 (opcional) Especifica um nome de diretório alternativo para makepkg para baixar o código\-fonte de VCS\&. .RE .PP \fBurl\fP .RS 4 A URL para o repositório VCS\&. Isso deve incluir o VCS no protocolo de URL para makepkg para reconhecê\-lo como uma fonte VCS\&. Se o protocolo não incluir o nome VCS, ele pode ser adicionado prefixando a URL com vcs+\&. Por exemplo, usar um repositório Git sobre HTTPS teria uma URL de fonte no formato: git+https://\&.\&.\&.\&. .RE .PP \fBfragmento\fP .RS 4 (opcional) Permite especificar um número de revisão ou branch para makepkg para checkout do VCS\&. Um fragmento tem o formato tipo=valor.Por exemplo, para fazer o checkout de uma determinada revisão, a linha de fonte teria o formato source=(url#revision=123)\&. Os tipos disponíveis dependem do VCS sendo usado: .PP \fBbzr\fP .RS 4 revisão (veja \*(Aqbzr help revisionspec\*(Aq para detalhes) .RE .PP \fBfossil\fP .RS 4 branch, commit, tag .RE .PP \fBgit\fP .RS 4 branch, commit, tag .RE .PP \fBhg\fP .RS 4 branch, revisão, tag .RE .PP \fBsvn\fP .RS 4 revisão .RE .RE .PP \fBconsulta\fP .RS 4 (opcional) Permite especificar se um checkout VCS deve ser verificado para revisões assinadas por PGP\&. A linha de origem deve ter o formato source=(url#fragmento?assinada) ou source=(url?assinada#fragmento)\&. Atualmente há suporte apenas para Git\&. .RE .SH EXEMPLO .sp A seguir está um exemplo de PKGBUILD para o pacote de \fIpatch\fP\&. Para mais exemplos, dê uma olhada nos arquivos de compilação dos pacotes de sua distribuição\&. Para aqueles que usam Arch Linux, consulte a árvore Arch Build System (ABS)\&. .sp .if n \{\ .RS 4 .\} .nf # Maintainer: João Usuário pkgname=patch pkgver=2\&.7\&.1 pkgrel=1 pkgdesc="A utility to apply patch files to original sources" arch=(\*(Aqi686\*(Aq \*(Aqx86_64\*(Aq) url="https://www\&.gnu\&.org/software/patch/patch\&.html" license=(\*(AqGPL\*(Aq) groups=(\*(Aqbase\-devel\*(Aq) depends=(\*(Aqglibc\*(Aq) makedepends=(\*(Aqed\*(Aq) optdepends=(\*(Aqed: for "patch \-e" functionality\*(Aq) source=("ftp://ftp\&.gnu\&.org/gnu/$pkgname/$pkgname\-$pkgver\&.tar\&.xz"{,\&.sig}) md5sums=(\*(Aqe9ae5393426d3ad783a300a338c09b72\*(Aq \*(AqSKIP\*(Aq) build() { cd "$srcdir/$pkgname\-$pkgver" \&./configure \-\-prefix=/usr make } package() { cd "$srcdir/$pkgname\-$pkgver" make DESTDIR="$pkgdir/" install } .fi .if n \{\ .RE .\} .SH "VEJA TAMBÉM" .sp \fBmakepkg\fP(8), \fBpacman\fP(8), \fBmakepkg.conf\fP(5) .sp Consulte o site do pacman em https://archlinux\&.org/pacman/ para obter informações atuais sobre o pacman e suas ferramentas relacionadas\&. .SH BUGS .sp 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\&. .SH AUTORES .sp Atuais mantenedores: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03' .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Allan McRae .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03' .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Andrew Gregory .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03' .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Eli Schwartz .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03' .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Morgan Adamiec .RE .sp Principais colaboradores anteriores: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03' .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Judd Vinet .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03' .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Aurelien Foret .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03' .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Aaron Griffin .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03' .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Dan McGee .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03' .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Xavier Chantry .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03' .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Nagy Gabor .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03' .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Dave Reisner .RE .sp Para outros contribuidores, use git shortlog \-s no repositório pacman\&.git\&. .PP .SH TRADUÇÃO A tradução para português brasileiro desta página man foi criada por Rafael Fontenelle . .PP Esta tradução é uma documentação livre; leia a .UR https://www.gnu.org/licenses/gpl-3.0.html Licença Pública Geral GNU Versão 3 .UE ou posterior para as condições de direitos autorais. Nenhuma responsabilidade é aceita. .PP Se você encontrar algum erro na tradução desta página de manual, envie um e-mail para .MT debian-l10n-portuguese@lists.debian.org a lista de discussão de tradutores .ME .