46 votes

J'ai installé un programme en récupérant son code source, puis en exécutant `sudo make install` ; comment faire pour que `apt-get` le sache ?

J'ai installé le programme (appelez-le, par exemple, progA ) en le construisant à partir du code source, puis en appelant finalement sudo make install y sudo ldconfig .

Cependant, il semble apt-get n'a pas eu le mémo, parce que lors de l'installation de progB qui dépend de progA , apt-get recommande d'installer aussi progA . Pourquoi cela, et que pourrais-je faire ?

56voto

A.B. Points 84870

TL;DR checkinstall est votre ami ;)

sudo apt-get install checkinstall

Après une installation avec sudo make install votre gestionnaire de paquets ne sait absolument rien de cette installation. Mais il sait tout d'un paquet avec le même nom dans les dépôts Ubuntu ou dans un PPA.

Utilisez sudo checkinstall 代わりに sudo make install et utiliser une version plus élevée que celle du référentiel pour être sûr que votre gestionnaire de paquets accepte cette version comme dépendance correcte de ProgB .


Pour plus d'informations :

checkinstall est vraiment astucieux, puisqu'il suit ce que l'option make install pour savoir comment construire un paquet.

Cela signifie que si vous installez un programme en utilisant make install mais que vous voulez vous repentir de vos péchés, tout ce que vous avez à faire est de sudo checkinstall -D make install et cette commande le fera :

  1. suivez make install pour savoir ce qu'il fait

  2. copier-coller make install sauf sous forme de paquet *.deb

  3. installer à partir du paquet (exactement comme make install aurait, compte tenu du point 1)), sauf à laisser aussi apt-get le savoir, et ainsi écraser tous les fichiers exactement où make install les aurait mis, à condition que vous choisissiez OUI pour inclure les fichiers mis par make install dans le répertoire d'origine dans le paquet ainsi - un couple d'options au cours de la checkinstall le processus vous laissera choisir (évidemment, le choix est là pour que vous puissiez l'exercer au cas par cas).

Bonus : vous pouvez également supprimer un paquet (appelez-le progA à nouveau) installé en utilisant make install que les odes n'ont pas make uninstall soutien en suivant les checkinstall le processus décrit jusqu'à présent, et ensuite simplement faire :

dpkg -r progA

13voto

Rmano Points 30303

Trois options :

  1. créer un faux paquet pour progA : Comment falsifier la version d'un paquet installé ? (il existe un exemple étendu pour TeXlive) .

  2. créer un paquet para progA plus facile s'il a un checkinstall option : Comment tromper les dépendances d'apt ?

  3. Construire également progB des sources.

1voto

bergyman Points 133

Je recommande d'utiliser uupdate de devscripts et construire le paquet comme l'original a été construit auparavant.

Installer les paquets requis

$ sudo apt-get install build-essential devscripts

Télécharger l'ancien paquet depuis le dépôt officiel (nous utiliserons MediaWiki à titre d'exemple) et le nouveau tar-ball d'amont.

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

Exécuter uupdate pour créer un nouveau dossier de sources à partir de la boule de tar en amont et de l'ancien dossier de sources. 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

Maintenant, vous devez vérifier si vous devez apporter des modifications à debian/control etc. Si vous avez terminé, vous pouvez construire le paquet deb et l'installer.

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X