46 votos

He instalado un programa de su código fuente, y luego ejecutar 'sudo make install'; ¿Cómo hacer 'apt-get' saber sobre él?

He instalado el programa (lo llaman, por ejemplo, progA ) mediante la creación de código fuente y entonces finalmente llamar a sudo make install y sudo ldconfig .

Sin embargo, parece apt-get no ha recibido la nota, porque al instalar progB , que depende de progA , apt-get recomienda también instalar progA . ¿Por qué es esto, y ¿qué podía hacer?

56voto

A.B. Puntos 44943

TL;DR checkinstall es tu amigo ;)

sudo apt-get install checkinstall

Después de una instalación con sudo make install el gestor de paquetes sabe absolutamente nada acerca de esta instalación. Pero lo sabe todo acerca de un paquete con el mismo nombre en los repositorios de Ubuntu o en un PPA.

Uso sudo checkinstall en lugar de sudo make install y el uso de una versión superior como la versión en el repositorio para estar seguro, que el gestor de paquetes acepta esta versión correcta de dependencia para ProgB.


Más información:

checkinstall es bastante bueno, ya que se basa en lo que el make install comando haría, con el fin de averiguar cómo construir un paquete.

Esto significa que si usted instala un programa mediante make install, pero luego se arrepienten de sus pecados, todo lo que tienes que hacer es sudo checkinstall -D make install, y que el comando será:

  1. siga make install a averiguar lo que hace

  2. copy-cat make install, excepto en *.paquete deb formulario

  3. instalación del paquete (exactamente como make install tendría, dado el punto 1)) excepto que también deje apt-get saber sobre él, y por lo tanto sobrescribir todos los archivos exactamente donde make install habría puesto tanto tiempo como usted elija SÍ para incluir los archivos de poner por make install en el directorio de inicio en el paquete ... un par de opciones durante la checkinstall proceso le permitirá elegir (obviamente sin embargo, la elección es de allí, así que usted puede ejercer, en un caso-a-caso base)

Bonus: también puede eliminar un paquete ( progA de nuevo) instalado con make install que las ecuaciones diferenciales ordinarias no tienen make uninstall de apoyo siguiendo el checkinstall proceso descrito hasta ahora, y después simplemente hacer:

dpkg -r progA

13voto

zacharyalexstern Puntos 149

Tres opciones:

  1. crear un falso paquete para progA: Cómo una falsa versión del paquete instalado? (hay un amplio ejemplo de TeXlive).

  2. crear un paquete para progA, más fácil si tiene un checkinstall opción: Cómo engañar apt dependencias?

  3. Construir también progB de fuentes.

1voto

Germar Puntos 2103

Me gustaría recomendar el uso de uupdate de devscripts y construir el paquete es igual que el original fue construido antes.

Instalar los paquetes necesarios

$ sudo apt-get install build-essential devscripts

Descargar el viejo paquete del repositorio oficial (usará MediaWiki como ejemplo) y la nueva tar-bola de arriba.

$ mkdir ~/Downloads/mediawiki
$ cd ~/Downloads/mediawiki
$ apt-get source mediawiki
$ wget https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.0.tar.gz

Ejecutar uupdate para crear una nueva carpeta de origen de la parte de arriba tar-ball y el antiguo debian/control

$ cd mediawiki-1.19.14+dfsg   # depends on your Ubuntu version
$ uupdate ../mediawiki-1.26.0.tar.gz 1.26.0
$ cd ../mediawiki-1.26.0

Ahora usted debe comprobar si usted necesita hacer cambios a debian/control etc los archivos. Si usted está listo, puede construir el paquete deb e instalarlo

$ dpkg-buildpackage -us -uc
$ cd ..
$ sudo dpkg -i *.deb

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X