Arch Linux: Descobrindo dependências de compilação para que possam ser transformadas em dependências do AUR

2

Estou usando o Arch Linux e tentando criar um arquivo AUR que baixe a origem de um driver, compile e instale-o. O que eu imagino é - como posso verificar quais pacotes são necessários para a compilação ter sucesso (só para poder declarar essas dependências no meu AUR)? Eu realmente tenho que analisar o arquivo configure muito longo ou existe uma maneira melhor?

Editar: ou talvez eu não deva adicionar dependências de compilação às dependências de uso do AUR?

Editar # 2: Estou tentando criar o AUR para isso: link

    
por Łukasz Zaroda 11.08.2016 / 21:01

1 resposta

1

A maioria dos pacotes deseja ser útil ao instalá-los para que eles tenham algumas informações de dependência no arquivo README ou INSTALL . Caso contrário, sim, verificando o script configure como a única opção real (Nota: autoconf produz configure.log que enumera dependências e vários outros scripts de configuração imprimem um resumo de dependência no final para tornar isso mais fácil para os empacotadores).

Para o problema em questão, o README é mais útil, diz:

Linux
- pcsclite 1.8.3 or above
- libusb 1.0.9 or above
- flex
- perl
- pkg-config

Agora, vamos dar uma olhada nisso. Um pacote do AUR pode assumir que base e base-devel grupos de pacotes estão instalados, o que facilita o raciocínio. Enumerando as dependências que vemos:

  • pkg-config : está em base-devel , não precisamos nos preocupar com isso.

  • perl : faz parte de base , tudo bem.

  • flex : base-devel novamente.

  • libusb 1.0.9 or above e pcsclite 1.8.3 or above

    pacman -Ss libusb
    core/libusb 1.0.20-1
        Library that provides generic access to USB devices
    
    pacman -Ss pcsclite
    community/pcsclite 1.8.16-1
        PC/SC Architecture smartcard middleware library
    

A beleza de uma distribuição contínua é que você pode assumir que o usuário possui os pacotes mais recentes (se ele for um usuário sensato, ele fará pacman -Syu antes de instalar seu pacote AUR). Portanto, podemos simplesmente fazer (dentro de PKGBUILD ):

depends=(libusb pcsclite)

Nota extra: às vezes, não é tão fácil encontrar o pacote do qual fala README ou INSTALL . Nesse caso, é necessário google-fu . No entanto, o arch também tem pkgfile , que é o banco de dados de quais arquivos estão em quais pacotes.

Para encontrar dependências a serem adicionadas aos pacotes do AUR, é altamente recomendável instalar o pkgfile , ou seja,

pacman -S pkgfile

E então você pode consultar pacotes suspeitos para bibliotecas, por exemplo

pkgfile -l <package> | grep lib
    
por 11.08.2016 / 21:49