Dado un paquete fuente de Debian - ¿Cómo instalo los build-deps?

47

Tengo un paquete fuente debian (bueno, técnicamente ubuntu), es decir, el .dsc, el .tar.gz, etc., quiero construir esto. El dpkg-buildpackagefalla, ya que no tengo todas las dependencias de compilación.

Normalmente lo usaría apt-get build-dep, pero este paquete no está en apt.

¿Existe una forma 'limpia', 'adecuada' de instalar todas las dependencias de compilación, dado un paquete fuente? Sé que podría abrir el archivo debian / control, pero tengo curiosidad por saber si hay una forma 'adecuada'.

He instalado build-essentialy tengo todos los compiladores normales, etc., este paquete requiere software adicional.

Rory
fuente

Respuestas:

34

Uso del mk-build-depscual es parte devscripts.

ptman
fuente
12

Aquí hay un ejemplo de flujo de trabajo usando la sugerencia de ptman.

Suponiendo que ha descargado el .dscarchivo, el .orig.*zarchivo y quizás también un .debian.*zarchivo, descomprima el paquete fuente con:

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

Muévase a la carpeta fuente extraída y ejecute:

sudo mk-build-deps -i

Esto creará el archivo [package_name]-build-deps_[version].deby lo instalará, y también instalará todas las dependencias que sugiere.

Ahora debería poder construir su paquete desde la fuente:

debuild

Cuando haya terminado, puede eliminar fácilmente las dependencias que se extrajeron, eliminando el build-depspaquete que generó:

sudo apt-get purge --auto-remove [package_name]-build-deps
joeytwiddle
fuente
2
También puede pasar -ra sudo mk-build-deps -ipara eliminar el paquete después de instalarlo. Además, en lugar de construir como root, puede instalar como root usando --root-cmd sudo. Al final, usemk-build-deps --install --root-cmd sudo --remove
Lucas
Además, es posible que necesite sudo apt install devscripts equivsprimero.
Alba Méndez
9

En realidad, puedo usar lo dpkg-checkbuilddepsque muestra las dependencias de compilación. Eso me da el 99% de lo que necesito

Rory
fuente
2
Por extraño que parezca, el archivo packagename-version.dsc contiene las dependencias de compilación en la línea que comienza con la cadena Build-Depends
quack quixote
6

Usualmente uso debuildfrom devscriptspara construir paquetes, y si es relevante, imprime una línea de los build-deps faltantes.

La forma "adecuada" es usar pbuildero similar, lo que construirá el paquete en un mínimo chroot, y solo instalará cualquier construcción adicional como se especifica en el paquete, esto también elimina un montón de otros problemas potenciales (instalaciones locales de bibliotecas no empaquetadas). por ejemplo).

LapTop006
fuente
-6

Tratar:

apt-get install build-essential
Lanselot
fuente
Tengo instalar build-essential. Este paquete requiere software adicional.
Rory
¿Y no explica lo que requiere? tal vez libncurses-dev también.
Lanselot
1
Ese no es el punto; claro que lo hace. El punto es tener un comando que realmente instale las dependencias, no uno que solo las muestre.
Matthias Urlichs