Compiler la source dans un paquet DEB

34

J'ai toujours eu un problème pour installer et supprimer les logiciels compilés. J'ai donc décidé de créer un logiciel à partir des sources dans un paquet .deb pour en faciliter l'installation / la suppression.

J'aimerais connaître un moyen simple et rapide de générer le code source dans un paquet .deb, en tant qu'utilisateur final .

J'ai essayé:

Ashu
la source
1
Ubucompilator est un projet intéressant et je salue leurs efforts à ce jour. Cependant, comme vous l'avez découvert, il ne fournit qu'une interface graphique à quatre ou cinq commandes de bas niveau. Et, NON, vous ne pouvez pas l'utiliser pour créer facilement un package '.deb' approprié.
david6

Réponses:

47

checkinstall fait ce que vous voulez réaliser: il surveillera les fichiers à installer et les placera dans un paquet .deb, qui pourra ensuite être installé et supprimé

Installez-le avec

apt-get install checkinstall

Ensuite, vous effectuez la procédure d'installation normale à partir du code source, en remplaçant "sudo make install" par "sudo checkinstall":

  ./configure
  make
  sudo checkinstall

Référence: https://help.ubuntu.com/community/CheckInstall

Floyd
la source
9

Nous avons un très bon guide d’emballage qui contient une section sur les nouveaux paquets .

tordue
la source
1
Je recommande ce lien, car il contient toutes les informations dont quelqu'un aurait besoin. De plus, s'il y a des questions spécifiques, je peux peut-être vous aider, mais pas pour expliquer la procédure complète de création d'un paquet Debian à partir du code source.
Thomas Ward
@pumkin: mis à jour.
tumbleweed
6

J'ai utilisé la make checkinstallcommande à plusieurs reprises pour créer un .debpackage sur une machine à installer sur mes autres serveurs. C'est un moyen rapide d'installer une version bêta. Cela fonctionne, mais devrait être utilisé avec prudence. Il y a des pièges pour l'utilisateur qui ne comprend pas les nombreuses fonctions du .debpaquet.

J'ai une vingtaine de serveurs qui utilisent les mêmes applications maison. L'ajout du support de compilation et du compilateur à chaque hôte n'est pas si difficile.

Saisie des commandes pour télécharger et compiler une nouvelle version vingt fois prend beaucoup de temps. L'alternative consiste à télécharger un script pour effectuer la tâche, puis à l'exécuter. Mais il est souvent plus facile de mettre à jour des applications en utilisant le .debfichier créé avec checkinstall.

C Schuman
la source
0

Emballer une partie aléatoire du code logiciel dans un fichier .deb est assez compliqué si le logiciel ne se présentait pas déjà sous cette forme, surtout si on la comparait simplement à make, make install. Si vous voulez que les choses soient plus simples, je pense que vous allez dans la mauvaise direction.

Je ne dis pas que vous ne pouvez pas le faire, les développeurs Debian le font souvent. Mais cela ne semble pas être le moyen le plus simple de faire ce que vous voulez.

Peut-être devriez-vous vous concentrer davantage sur l'apprentissage de la compilation et de l'installation de logiciels à partir des sources. En votre faveur est le fait que tout ce que vous avez installé vous-même devrait se retrouver dans / usr / local

thomasrutter
la source
merci pour la suggestion, mais je sais déjà sur la compilation de logiciels, j’en ai calqué un certain nombre d’entre eux compilés sur mon système. La seule chose que je trouve difficile est de les améliorer ou de les supprimer. Donc, je pense qu'un fichier deb serait plus pratique
Ashu
La raison pour laquelle un paquet deb peut se mettre à niveau ou se supprimer sans problème est que quelqu'un a écrit des scripts très pénibles à cet effet, pour chaque paquet. En outre, ils ont dû ajouter de nombreuses autres métadonnées descriptives que dpkg peut utiliser pour déterminer les fichiers. Vous aurez du pain sur la planche.
thomasrutter
1
En fait, allez simplement avec la réponse de Floyd. Globalement, cela ressemble à une solution bien meilleure, si elle fait vraiment ce qu'elle dit!
thomasrutter
Ouaip. La solution de Floyd est géniale. Surtout maintenant, il est extrêmement mature. Maintenant, je n'ai pas besoin de créer à partir de la source sur des tonnes de serveurs. :)
Jack_Hu