Libremakepkg (Português)
Libremakepkg é um script que:
- Verifica dependências não livres no PKGBUILD
- 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)
- Atualiza o chroot onde você está construindo (opção -u)
- Limpa o chroot para que nenhum pacote seja configurado automaticamente como uma dependência (opção -c) e
- Finalmente usa o makechrootpkg para construir o pacote.
O pacote será colocado em ${PKGDEST}.
Contents
1 Uso
# 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:
- copia a lista de pacotes para o ambiente chroot (/etc/libretools.d/cleansystem
- usa comm para comparar pacotes instalados no sistema e no "cleansystem"
- 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.