Você não está autenticado.

Anúncio

Arch Linux Brasil está precisando de sua colaboração para realizar o pagamento do domínio e do host, para colaborar, realizar doações via [email protected]

Para mais informações: [email protected]

#1 13/07/2006 20:02:22

darkmug
Membro
De: Curitiba/PR
Registrado: 13/07/2006
Mensagens: 17
Website

Como criar um pacote?

Já que a área é sobre a criação de pacotes, como fazer para criar um pacote?


darkmug

Offline

#2 13/07/2006 21:53:19

bruno
Membro
De: Florianópolis/SC
Registrado: 13/07/2006
Mensagens: 5

Re: Como criar um pacote?

Criar um pacote do Arch é uma tarefa relativamente simples.
1. Primeiro você instala o fakeroot que é o aplicativo que vai garantir que você não faça 'porcaria' no sistema:
Como root:

~# pacman -S fakeroot

2. Depois basta você usar esse PKGBUILD* e alterar de acordo com o programa que você vai fazer o pacote:
*PKGBUILD é o nome do arquivo que segue:

pkgname=NOME
pkgver=VERSÃO
pkgrel=1
pkgdesc=""
url=""
license=""
depends=()
makedepends=()
conflicts=()
replaces=()
backup=()
install=
source=($pkgname-$pkgver.tar.gz)
md5sums=()

build() {
  cd $startdir/src/$pkgname-$pkgver
  ./configure --prefix=/usr
  make || return 1
  make DESTDIR=$startdir/pkg install
}

3. Agora basta colocar o PKGBUILD e o tarball do fonte do aplicativo em questão na mesma pasta.
4. E para gerar o pacote:

~# makepkg -c

5. Após o pacote ser gerado, caso não ocorra nenhum erro na compilação, você pode instalá-lo com:

~# pacman -A pacote

Espero tê-lo ajudado. Claro que isto foi uma explicação bem resumida, o ideal agora é você estudar as opções que podem ser usadas no configure e alterar no PKGBUILD. É bom também pesquisar sobre as dependências do pacote, etc.

Abraços


--------------------------------------------------------
Arch Linux 0.7.2 (Gimmick)/Current

Offline

#3 14/07/2006 02:05:33

darkmug
Membro
De: Curitiba/PR
Registrado: 13/07/2006
Mensagens: 17
Website

Re: Como criar um pacote?

Era isso mesmo... obrigado bruno smile


darkmug

Offline

#4 14/07/2006 09:43:59

slipk-down
Membro
De: Itatiba
Registrado: 14/07/2006
Mensagens: 80
Website

Re: Como criar um pacote?

Maneiro, gostei do tópico, mãos à obra :-)

Offline

#5 21/07/2006 20:13:26

cezar
Membro
Registrado: 15/07/2006
Mensagens: 274

Re: Como criar um pacote?

Olá, amigos do Arch fiquei com dúvida sobre dois tópicos, e por isso, para que todos que estão tendo contato com o excelente ARCH pela primeira vez possam se familiarizar melhor pergunto:

1) Como usar na prática o PKGBUILD, ou seja, o que tenho que fazer e como faço para utilizar o PKGBUILD?
2) E sobre o  tarball do fonte do aplicativo? Em que consiste realmente e como é o procedimento de colocar junto com o PKGBUILD na mesma pasta (apesar de parecer auto explicativo...)?

Bem, a finalidade das minhas questões foi destrinchar ainda mais o que já foi muito bem explicado, mas esses dois pontos, pelo menos para mim, geraram dúvidas.

Valeu.
Cezar

Offline

#6 22/07/2006 04:06:20

linfocito
Membro
De: Manaus - AM
Registrado: 11/07/2006
Mensagens: 9

Re: Como criar um pacote?

PKGBUILD desossado:

Introdução:

O PKGBUILD funciona como uma receita que o programa makepkg segue para construir um pacote do Archlinux. É importante saber que ele é tratado pelo makepkg como um script do bash. Segue abaixo um modelo, e então uma breve explicação de cada variável:

pkgname=NOME 
pkgver=VERSÃO 
pkgrel=1 
pkgdesc="" 
url="" 
license="" 
depends=() 
makedepends=() 
conflicts=() 
replaces=() 
backup=()
options=() 
install= 
source=() 
md5sums=() 

build() { 
  cd $startdir/src/$pkgname-$pkgver 
  ./configure --prefix=/usr 
  make || return 1 
  make DESTDIR=$startdir/pkg install 
}

1. pkgname: o nome do pacote, todo em letras minúsculas, sem espaços.

2. pkgver: a versão do programa - exatamente como apresentada pelo desenvolvedor (p. ex. "2.6.17", "1.3ALPHA", "3.2-rc1").

3. pkgrel: a versão do pacote - indica as sucessivas revisões/alterações do PKGBUILD para uma mesma versão do programa.

4. pkgdesc: uma descrição sucinta do pacote, em uma única linha (p. ex. "A simple window manager made to fit rox-desktop").

5. url: a url de um site sobre o programa (p. ex "http://www.python.org")

6. license: a licença do programa. O pacote licenses (base) traz algumas licenças de uso mais freqüente. Elas ficam, por convenção, em arquivos chamados licence.txt, cada uma num diretório com o nome da licença em maiúsculas, em subdiretórios de /usr/share/licenses/common. Se o seu pacote usa uma licença diferente das que estão no pacote licenses, ela deverá ser instalada pelo seu pacote em /usr/share/licenses/custom/$pkgname/license.txt e citadas na variável como ('custom')

7. depends: é uma lista das dependências do pacote em tempo de execução. Deve -se colocar somente as dependências diretas, ou seja, se o pacote depende de gtk2, atk e pango, deve se colocar só gtk2, pois este já dapende de atk e pango. Além disso, um pacote só pode depender de outro se: os dois estiverem no mesmo repositório, ou a dependência estiver no current ou extra, ou se os dois estiverem no AUR. Cada dependência deve estar entre aspa simples ('), separadas entre si por espaços.

8. makedepends: dependências que são necessárias durante a construção do pacote pelo makepkg, mas não durante sua execução.

9. conflicts: conflitos. Pacotes conflitantes não podem estar instalados ao mesmo tempo. O pacman pedirá para desinstalar os conflitos antes de prosseguir.

10. replaces: substituições. O pacman perguntará se quer substituir o referido pacote pelo que está sendo instalado - é útil quando um pacote muda de nome, por exemplo.

11. backup: arquivos que devem ser substituídos, preservando-se uma cópia, durante a instalação.

12. options: alteram o comportamento "default" do makepkg - 'KEEPDOCS' - não apaga /usr/share/{doc, info} e 'NOSTRIP' - não apaga os "debugging symbols" de executáveis e bibliotecas.

13. install: o nome de um script .install, quando o pacote tiver um. (Explicarei melhor no "próximo capítulo".)

14. source: a URL dos arquivos necessários para a construção do pacote (que serão automaticamente baixados pelo makepkg). Patches pequenos e arquivos de configuração personalizados para o archlinux podem ser postos no mesmo diretório do PKGBUILD e devem ser citados nesta variável.

15. md5sums: ckecksums de cada 'source', para verificar integridade do arquivo.

16. build(): função que será chamada pelo makepkg para construir o pacote. Dentro desta função há certas variáveis padrão:

$stardir/src: diretório onde o makepkg descompacta e/ou copia os arquivos citados na variável source.
$startdir/pkg: diretório cujo conteúdo será transformado no pacote.

Para escrever corretamente a função build, estude como o programa que será empacotado é compilado, e faça com que, no final das contas, a árvore desejada para o pacote esteja em $startdir/pkg. Para programas que usam as "autotools" padrão, o exemplo de código acima funciona bem.

Além disso, é importante lembra que novas variáveis só devem ser incluídas num PKGBUILD se for estritamente necessário e, nesse caso, devem ser precedidas de "_" (p. ex: _foo).

Espero que seja útil, mas não que seja suficiente. Embora criar receitas de pacotes no Archlinux seja mais fácil que no gentoo, FreeBSD, Debian, RedHat, etc, não significa que seja fácil fazer um bom PKGBUILD.

Antes de se lançar nesta árdua e recompensadora aventura, sugiro a leitura cuidadosa dos seguintes documentos:
- A man page do makepkg e do pacman;
- O Padrão de Empacotamento do Arch, que está em inglês mas eu já comecei a traduzir (aguardem notícias).

Boa sorte!

No próximo capítulo - "Scripts .install" e "Pronto! Escrevi meu PKGBUILD, e agora???"

Abraço a todos.

Offline

#7 22/07/2006 09:49:08

cezar
Membro
Registrado: 15/07/2006
Mensagens: 274

Re: Como criar um pacote?

Valeu Linfócito, excelente ajuda para todos. Obrigado. Cezar big_smile

Offline

#8 25/10/2006 02:59:02

gilsonmontanhajr
Membro
De: Lins
Registrado: 25/10/2006
Mensagens: 4

Re: Como criar um pacote?

acho que é uma pergunta meio besta... mais passei por isso ao tentar compilar o E17...

quando o BUILDPKG tem dependencias eu tenho que ter instaladas ?
teria como, tipo, eu criar um pacote com todas as dependencias dentro?

Offline

#9 22/01/2008 14:10:22

leoarcher
Admin
De: Arapiraca - AL
Registrado: 13/07/2006
Mensagens: 1.250
Website

Re: Como criar um pacote?

Putz, ninguém respondeu o gilson...

Bom, como vim aqui pra dizer que mudou algumas coisas no pacman e consequentemente nas pkgbuilds, vou aproveitar e responder.

Pra cada dependência você deve criar um pacote, e o nome correto é PKGBUILD e não BUILDPKG.

Você deve ter instalada todas as dependências do pacote a ser compilado/criado/instalado e não dá pra criar um único pacote com todas as dependências.


PS.: Logo vou postar as mudanças que tivemos.


Se copiarem, forneçam a fonte de origem. Se alguma resposta te ajudou a solucionar o problema, por favor edite o título do tópico e adicione "[Resolvido]" a ele (sem as aspas). Obrigado!

asa_tempo.jpg

Offline

#10 06/09/2017 23:54:19

shingonoide
Membro
Registrado: 06/09/2017
Mensagens: 6

Re: Como criar um pacote?

Sei que post é antigo mas fiquei curioso, já existiu alguma vez o parametro -A para o pacman?

Se já existiu, não seria a hora de atualizar as informações? Para instalar pacotes eu uso -U

pacman -U pacote-contruído.tar.xz

Ou tem mais alguma coisa que estou por fora?

Offline

#11 16/09/2017 15:35:38

sistematico
Moderador
De: Campo Grande / MS
Registrado: 13/06/2008
Mensagens: 1.015
Website

Re: Como criar um pacote?

shingonoide escreveu:

Sei que post é antigo mas fiquei curioso, já existiu alguma vez o parametro -A para o pacman?

Desconheço.

Offline

Rodapé do site