Supposons que j’ai un programme d’installation ou une archive source pour un programme que je souhaite installer. (Il n'y a pas de paquet Debian disponible.) Tout d'abord, je veux créer un paquet .deb
afin de pouvoir supprimer proprement le programme installé à l'avenir (voir Désinstallation d'une application créée à partir du code source] , Si je construis un paquet à partir de la source, comment puis-je désinstaller ou supprimer complètement? ). De plus, l'installation à l'aide d'un paquet l'empêche de compresser les fichiers d'autres paquets, ce qui ne peut être garanti si vous exécutez le programme d'installation ou Sudo make install
.
En lisant les réponses ici et ailleurs, je suppose que la solution habituelle consiste à utiliser checkinstall
pour construire le paquet. Malheureusement, il semble que checkinstall
empêche pas d’empêcher make install
d’empiler les fichiers système d’autres paquets. Par exemple, selon Résoudre les problèmes causés par checkinstall avec gcc build :
J'ai créé un paquet Debian à partir de l'installation en utilisant
Sudo checkinstall -D make install
.[...] Je l'ai enlevé en utilisant Synaptic Package Manager. En fait, [supprimant] le paquet checkinstall créé à partir de
make install
a tenté de supprimer tous les fichiers concernés par le processus d'installation, y compris les bibliothèques gcc partagées telles que /lib64/libgcc_s.so.
J'ai ensuite essayé de dire à checkinstall
de construire le paquet sans l'installer, dans l'espoir de contourner le problème. J'ai créé un Makefile factice:
install:
echo "Bogus" > /bin/qwertyuiop
et a lancé Sudo checkinstall --install=no
. Le fichier /bin/qwertyuiop
a été créé , même si le package n'a pas été installé.
Dans mon cas, je ne fais pas confiance au programme d'installation/make install
pour ne pas écraser les fichiers système , cette utilisation de checkinstall
est donc exclue.
Est-il possible d'exécuter Checkinstall dans un environnement fakechroot
ed debootstrap pour y parvenir? De préférence, la compilation doit être effectuée en tant qu'utilisateur normal plutôt qu'en tant que root, ce qui empêcherait le processus de remplacer les fichiers système en cas de problème.
Vous voudrez peut-être essayer debuild
pour créer un fichier binaire (deb) en dehors de la source. Vous devez préparer le dossier debian comme vous le conditionnez. Une fois que vous avez bien compris, exécutez la commande debuild -b
à partir du répertoire source et il créera un fichier deb pour vous.
Vous voudriez aussi jeter un oeil à Introduction aux paquets Debian .
Si tout cela est fou, il vous suffira de vous débrouiller avec checkinstall
en jouant avec les fichiers système.
J'ai trouvé ne réponse dans un article du Linux Journal appelé utilisant Checkinstall pour créer des packages à partir de la source :
Si vous souhaitez simplement créer le fichier .deb sans effectuer l'installation, utilisez le commutateur de ligne de commande
Sudo checkinstall --install=no