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.

Respuestas:


34

Uso del mk-build-depscual es parte devscripts.


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

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


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).


-6

Tratar:

apt-get install build-essential

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.