Libremakepkg (Português)

From ParabolaWiki
Jump to: navigation, search

Libremakepkg é um script que:

  1. Verifica dependências não livres no PKGBUILD
  2. Vincula mount a ${SRCDEST} ${PKGDEST} ${SRCPKGDEST} ${WORKDIR}, e opcionalmente copia etc/makepkg.conf etc/pacman.conf etc/mtab para o chroot (Este passo é chamado buildenv no script)
  3. Atualiza o chroot onde você está construindo (opção -u)
  4. Limpa o chroot para que nenhum pacote seja configurado automaticamente como uma dependência (opção -c) e
  5. Finalmente usa o makechrootpkg para construir o pacote.

O pacote será colocado em ${PKGDEST}.

Note: ${SRCDEST} ${PKGDEST} ${SRCPKGDEST} ${WORKDIR} são configurados em /etc/makepkg.conf

1 Uso

Note: Antes de usar o libremakepkg você precisa configurar o /etc/libretools.conf primeiro. Siga as instruções no Package maintainer guide
Warning: libremakepkg não será funcional se você ainda não instalou o devtools
 # pacman -Sy devtools

1.1 Quais são as opções do libremakepkg?

Libremakepkg irá sempre ter uma lista atualizada de opções que podem ser listadas usando:

$ libremakepkg -h

1.2 Construindo com libremakepkg

Para construir com libremakepkg você deve executar um cd para o diretório onde o PKGBUILD está e executar

 $ cd /diretório/com/PKGBUILD
 # libremakepkg [options] 

Se nenhuma opção é passada para o libremakepkg ele irá entrar no ambiente de construção e e construir o pacote sem atualizar ou limpar. Isto é útil se uma construção anterior falhou e você mudou o PKGBUILD para que ele funcione desta vez.

2 Para que o ambiente de construção?

Ambiente de construção é para o fullpkg ser capaz de adicionar pacotes ao repositório local e instalá-los também.

3 Como a limpeza é feita?

makechrootpkg tem uma opção de limpeza rsync a partir de um "root" no ambiente chroot para uma "cópia" de um chroot e usa a "cópia" do chroot para construção. Quando estávamos trabalhando no mips port nós criamos um script que rastreia dependências e as constrói (fullpkg). Nós descobrimos que a limpeza do rsync é lenta e ineficiente. Então nós projetamos um novo método de limpeza que usa o pacman e uma lista de pacotes em um sistema limpo.

O método de limpeza no libremakepkg:

  1. copia a lista de pacotes para o ambiente chroot (/etc/libretools.d/cleansystem
  2. usa comm para comparar pacotes instalados no sistema e no "cleansystem"
  3. remove todos os pacotes que não costam no "cleansystem".

4 Estou tendo problemas com libremakepkg

Relate um problema no bug tracker. Use [libretools] no inicio do título da sessão para o problema.