Instala automaticamente as dependências de construção do umet detectadas pelo dpkg-checkbuilddeps

2

Existe um comando que instala todas as dependências de compilação não atendidas que dpkg-checkbuilddeps listaria?

Eu tentei sed a saída e dei para apt-get install , mas parece muito hacky e por alguma razão não funcionou em alguns ambientes.

sudo apt-get install --yes $(dpkg-checkbuilddeps | sed 's/([^)]*)//g' | sed 's/dpkg-checkbuilddeps:\serror:\sUnmet build dependencies://g')

Existe uma maneira melhor?

    
por Forivin 11.01.2018 / 22:44

2 respostas

7

Eu uso mk-build-deps do pacote devscripts para isso.

mk-build-deps -i debian/control

irá construir um pacote dependendo de todas as dependências de compilação no arquivo de controle fornecido; esse pacote pode ser instalado usando apt , que também instalará todas as dependências ausentes.

A vantagem dessa abordagem é que a desinstalação do pacote de dependências, assim que você terminar, também identificará quaisquer dependências de compilação que também possam ser desinstaladas.

    
por 12.01.2018 / 07:28
0

Tente o seguinte:

dpkg-checkbuilddeps 2>&1 | sed 's/dpkg-checkbuilddeps:\serror:\sUnmet build dependencies: //g' | sed 's/[\(][^)]*[\)] //g'

Antes de mais nada, dpkg-checkbuilddeps imprime o erro em stderr not stdout . Por isso, ele precisa ser redirecionado para stdout para usar o pipeline.

Veja como Redirecionar stderr e stdout no Bash

Você usou o regex ([^)]*) em:

sed 's/([^)]*)//g'

Mas deve ser:

sed 's/[\(][^)]*[\)] //g'

Referência: Usando o sed para excluir uma string entre parênteses

    
por 31.01.2018 / 08:21