La plupart des logiciels Linux sont empaquetés dans des archives. Chacun d’entre eux ne nécessite que quelques commandes pour les compiler et les installer.
Ma question est; nous avons gdebi pour les paquets Debian autonomes, alors pourquoi pas une application pour installer les archives tar de la même manière? Pourquoi un processus aussi simple en apparence n'est-il pas automatisé? Pourquoi devons-nous continuer à intimider et à chasser les nouveaux utilisateurs avec des idées de logiciels de compilation?
Ces processus sont automatisés. Vous les recevez principalement dans des paquets .deb ou .rpm. La seule différence (au niveau auquel vous pensez) entre une archive et un .deb est la compilation. Tarball contient généralement le code source et crée des fichiers, pas des binaires pré-compilés (bien qu'ils en contiennent parfois aussi). Les .deb sont pré-compilés sur plusieurs architectures.
Voici une analogie pour vous:
un .deb est un camion transportant une voiture entière.
Une tarball est un camion transportant une boîte de pièces de voiture et un manuel vous expliquant comment assembler les pièces pour obtenir la voiture.
Ainsi, lorsque vous installez quelque chose à partir d'un fichier .deb (ou d'un fichier .rpm sur ces "autres" distributions), vous installez les mêmes éléments que ceux que vous obtiendrez dans cette archive, avec le travail déjà fait pour vous.
Bien que je ne sois pas d’accord avec txwikinger à propos de la progression/régression. Il n'y a rien de mal à utiliser tarballs et je les utilise fréquemment pour envelopper du code, des captures d'écran, des fichiers journaux ou ce que vous avez à envoyer à des personnes pour diverses raisons. Je télécharge également les archives source pour lire le code source d'un programme afin de voir ce qui se passe si je rencontre un problème.
Plutôt que de passer du temps à faciliter l’installation des archives, il serait globalement plus avantageux de le passer à conditionner le logiciel pour Debian/Ubuntu. Cela améliorera non seulement les offres des distributions basées sur Debian telles que Ubuntu, mais installera également correctement les dépendances.
Checkinstall peut générer des debs à partir des sources. (Il peut également générer des packages RPM et Slackeware)
Vous exécutez ./configure puis
checkinstall -D
créer un paquet debian.
Je pense que cet outil est principalement conçu pour vous permettre de mettre à niveau et de supprimer proprement des logiciels sur votre propre ordinateur et non de créer des distributions pour les autres - mais si vous n'avez pas de dépendances complexes, il devrait faire ce que vous voulez.
les tarballs sont généralement hautement personnalisables. Même si avec 90% d’entre eux, il suffit de lancer ./configure && make install, d’autres nécessitent des paramètres personnalisés ou, dans le pire des cas, ils utilisent différentes étapes pour créer l’application.
à mon humble avis, en tant qu'utilisateur normal, vous ne devriez pas avoir à vous soucier des archives. vous feriez mieux de vérifier si c'est dans le dépôt de quelqu'un en premier.
le problème avec les archives (en tant que méthode d’installation pour les utilisateurs finaux) est le suivant: - en cas de problème, vous devez être très rapide pour résoudre ce problème - ne pas nécessairement adhérer à la structure de dossiers de votre disto - pas toujours possible facilement désinstaller le logiciel à nouveau.
à votre deuxième question: oui, ce processus est automatisé avec les paquets debian-source ou les paquets rpm-source. mais ceux-ci ne sont pas problématiques et je pense qu'ils peuvent juste être ouverts dans gdebi. Je ne suis pas sûr que vous sachiez, mais une archive est le moyen le plus simple pour un développeur de diffuser son code dans le monde. quel que soit le gâchis qu'ils ont dans leur projet, il suffit de compresser le code source et de le télécharger - c'est le seul impératif que je connaisse pour une archive: il doit contenir le code source d'une application et éventuellement fournir un script de construction.
donc, même si cela ne va pas fonctionner pour utiliser ces archives directement, je pense que vous abordez un problème très important ici: l'emballage de Linux est un gâchis. Cela demande beaucoup de travail, même pour une seule distribution, et il est pratiquement impossible pour un petit projet de gérer des packages pour diverses distributions.
il y avait (et il y a toujours) un tas de projets qui ont essayé d'unifier les emballages d'une distribution à une autre, mais ça n'a jamais passé. du moins rien qui soit aussi commun qu'un paquetage msi pour Windows ou un fichier démo sur mac.
je sais que cette réponse doit être frustrante, mais si je n’ai pas raté une révolution récemment, c’est ce que nous sommes coincés pour le moment.
Vous pouvez écrire un petit script bash si vous le faites souvent ...
#!/bin/bash
FILE=$1
DIR="${FILE%.tar.gz}"
tar -xzf $1
cd $DIR
./configure
make
Sudo make install
Appelez-le tarinstall (ou quelque chose), mettez-le dans votre chemin et faites juste:
tarinstall thisnewpackage.tar.gz
Bien que je sois d’accord sur le fait, il est bien préférable d’utiliser un système d’emballage tel que .debs ou .rpms.
Différentes applications sont écrites par différents développeurs avec différentes normes. Il serait très difficile d’avoir une seule application pour installer toutes les archives. Au lieu de cela, nous avons des débats qui sont prédéfinis. Les tarballs posent également un problème de dépendance que debian et ses dérivés ont corrigé avec apt et aptitude qu’il serait presque impossible de résoudre avec seulement une archive tarball.
En tant qu'utilisateur normal, vous ne voudrez probablement pas installer des archives. Les équipes Debian et Ubuntu consacrent beaucoup de temps à la personnalisation et à la vérification des paquets en amont avant de les mettre dans le référentiel. Faire un paquet est un gros fouillis de dépendances et de scripts d’installation spécifiques à la distribution. Il n'y a pas de moyen simple d'automatiser le processus.
Toutefois, si vous êtes programmeur ou que vous essayez de contribuer à un projet en amont, vous devrez éventuellement installer les archives officielles. Bien que cela ne soit pas automatique, il existe quelques outils qui facilitent le processus.
Si vous voulez juste corriger un bogue dans un programme que vous avez installé, vous pouvez obtenir le code source avec apt-get source
nom_paquet et pirater. Si vous souhaitez envoyer ce correctif en amont, il est préférable de commencer par une archive amont.
La plupart des projets utilisent des outils automatiques qui permettent d'automatiser un grand nombre de décisions au moment de la compilation. Vous pouvez généralement savoir si un projet utilise autotools, car le dossier contient un script de configuration. Si c'est le cas, vous pouvez construire et installer le paquet en utilisant une ligne ./configure && make && make install
. Sauf si vous avez déjà construit le paquet auparavant, il échouera probablement car il vous manque des dépendances à la compilation.
Si le paquet que vous essayez d'installer se trouve déjà dans les dépôts Ubuntu, vous pouvez demander à APT d'installer automatiquement toutes les bibliothèques nécessaires à la compilation de l'archive avec apt-get build-dep
nom_du_package . S'il n'y a pas de nouvelles dépendances, c'est généralement tout ce que vous devez faire avant de pouvoir compiler le programme. Si ce n'est pas dans les dépôts Ubuntu que vous êtes seul, consultez la documentation du projet pour savoir ce dont il a besoin.
Un problème avec la procédure ./configure && make && make install
est qu’il n’ya généralement pas de make uninstall
. Il existe un programme appelé checkinstall qui exécute make install pour vous et enregistre le paquet dans APT afin que vous puissiez le désinstaller ultérieurement. Cependant, checkinstall ne fonctionne pas toujours, et en fonction de l'importance du paquet que vous installez pour le système, cela pourrait être très dangereux.
Les paquets .deb sont des archives contenant les informations nécessaires pour leur permettre de gérer correctement les paquets.
Si vous venez d'installer une archive, comment vous assurez-vous que toutes les dépendances sont remplies? Toutes les bibliothèques nécessaires sont installées?
Comment voulez-vous supprimer un paquet qui est installé uniquement par l'archive?
Vous perdez toutes les garanties offertes par la gestion des paquets basés sur Debian et cela facilite en particulier l’installation de logiciels par les nouveaux utilisateurs. Le fait de leur permettre d’installer plus facilement les archives, serait un pas en arrière et non un progrès.
A part ça, comment
./configure && make && Sudo make install
être simplifié davantage? (Si vous considérez un utilisateur qui doit être capable de traiter les problèmes soulevés ci-dessus)
Comme dans les messages ci-dessus, checkinstall
vous aidera à installer et à désinstaller l'application source de manière efficace. Comme il crée des paquets natifs (rpm pour les goûts Redhat et deb pour les goûts Debian, y compris Ubuntu), il est très facile de gérer ces paquets avec un gestionnaire de paquets natif tel que le centre logiciel. Consultez cet article pour plus d’informations: findasolution.in: la gestion des paquets checkinstall rendue facile sous linux . Il revient à l'origine pour Centos mais fonctionnera également à Ubuntu.