Dado um pacote de fontes debian - Como instalo os build-deps?

47

Eu tenho um pacote de código-fonte debian (bem tecnicamente ubuntu), ou seja, o .dsc, o .tar.gz, etc., quero compilar isso. A dpkg-buildpackagefalha, desde que eu não tenho todas as dependências de construção.

Normalmente eu usaria apt-get build-dep, mas este pacote não está no apt.

Existe uma maneira 'limpa' e 'apropriada' de instalar todas as dependências de compilação, considerando um pacote de origem. Eu sei que poderia abrir o arquivo debian / control, mas estou curioso para saber se existe uma maneira 'adequada'.

Eu instalei build-essentiale tenho todos os compiladores normais etc., este pacote requer software extra.

Rory
fonte

Respostas:

34

Use o mk-build-depsque faz parte devscripts.

ptman
fonte
12

Aqui está um exemplo de fluxo de trabalho usando a sugestão de ptman.

Supondo que você baixou o .dscarquivo, o .orig.*zarquivo e talvez também um .debian.*zarquivo, descompacte o pacote de origem com:

dpkg-source -x [package_name]_[package_version].dsc

Vá para a pasta de origem extraída e execute:

sudo mk-build-deps -i

Isso criará o arquivo [package_name]-build-deps_[version].debe o instalará, além de instalar todas as dependências sugeridas.

Agora você deve conseguir compilar seu pacote a partir da fonte:

debuild

Quando você terminar, poderá remover facilmente as dependências que foram extraídas, removendo o build-depspacote que você gerou:

sudo apt-get purge --auto-remove [package_name]-build-deps
joeytwiddle
fonte
2
Você também pode passar -rpara sudo mk-build-deps -ipara remover o pacote após instalá-lo. Além disso, em vez de criar como root, você pode instalar como root usando --root-cmd sudo. No final, usemk-build-deps --install --root-cmd sudo --remove
Lucas
Além disso, você pode precisar sudo apt install devscripts equivsprimeiro.
Alba Mendez
9

Na verdade, eu posso usar o dpkg-checkbuilddepsque mostra as dependências de compilação. Isso me dá 99% do que eu preciso

Rory
fonte
2
Curiosamente, o packagename-version.dsc arquivo contém as dependências de construção na linha que começa com a seqüência de Build-Depends
quack quixote
6

Eu costumo usar debuildfrom devscriptspara criar pacotes e, se relevante, imprime uma linha dos build-deps ausentes.

A maneira "adequada" é usar pbuilderou semelhante, o que criará o pacote em um mínimo chroot, e apenas instale quaisquer build-deps adicionais, conforme especificado pelo pacote, isso também remove vários outros problemas em potencial (instalações locais de bibliotecas não empacotadas) por exemplo).

LapTop006
fonte
-6

Experimentar:

apt-get install build-essential
Lanselot
fonte
Eu instalei o build-essential. Este pacote requer software extra.
Rory
E isso não explica o que requer? talvez libncurses-dev também.
Lanselot 30/03/10
1
Essa não é a questão; Claro que sim. O objetivo é ter um comando que realmente instale as dependências, não um que apenas as exiba.
Matthias Urlichs