Dans ce petit guide, je vais vous expliquer (et vous apprendre) pourquoi il vaut mieux compiler un programme (disons Firefox, Vlc, etc.) à partir de son code source, plutôt que de le télécharger (à partir du Software Center, Yumex, Pacman, etc. ) et installez.
Nous allons d'abord avec la théorie:
Qu'est-ce que "compiler"?
La compilation consiste à transformer le code source (code écrit dans un certain langage de programmation, disons C, C ++, etc.) en un programme exécutable pour son fonctionnement grâce à l'utilisation du processeur pour convertir le langage utilisé pour générer le code en binaire et assembleur. On l'appelle aussi souvent emballage.
Pourquoi est-il préférable de «compiler»?
Vous devez d'abord connaître les éléments suivants pour comprendre pourquoi. Dit de manière «grossière» (simple, pas très professionnelle, etc.), chaque race (Pentium, Core, Atom, etc.) et ses espèces (Intel, AMD, ARM, etc.) de processeur ont des instructions (logiciel écrit en assembleur qui traite le code) de leur modèle (Core i7, Core i5, Atom x2, Phantom x8, Arm, etc.) et ont également des instructions générales que tous ont.
Lorsque vous téléchargez à partir des référentiels via le Centre logiciel / apt-get / Yumex / Yum / Pacman / etc, un programme qui s'installe dit automatiquement que cela précompilé pour un fonctionnement sur tous les processeurs possibles (Intel et Amd). Comme il s'agit d'un programme précompilé, les instructions typiques de ce modèle de processeur spécifique sont perdues (pensez que si un programme comme Firefox ou Chrome, qui a plus de 7 ou 8 millions de lignes de code, il fallait mettre toutes les instructions spécifiques pour chaque processeur sur le marché, la quantité de code serait si grande que ce programme ne serait plus efficace) ne laissant rien de plus que ceux généraux de sa marque de créateur (Intel, Amd, Arm).
Lorsque vous téléchargez, décompressez et compilez vous-même le code source d'un programme, il se compile avec les instructions spécifiques de TU processeur, (ce qui ne veut pas dire qu'il ne fonctionnera pas sur une machine avec une autre, seulement qu'il sera optimisé spécifiquement et uniquement pour votre processeur), libérant ainsi et libérant toute la puissance que votre processeur est capable de donner grâce à ses instructions spécifiques.
Dans des détails plus techniques, ces instructions spécifiques sont étroitement liées à ce que l'on appelle le chipset de votre carte mère, ce qui est le grand casse-tête pour ceux d'entre nous qui ont Intel lorsque nous voulons mettre à niveau le processeur et la carte mère.
Vous seriez surpris de la puissance que votre Amd Atome x2 ou toi Intel Core à l'intérieur, 2 Core Duo, i3, etc. de votre ancien PC. Comprenez-vous maintenant pourquoi il est beaucoup question dans le monde Linux de compiler le fameux noyau (cœur de tout système d'exploitation)? Imaginez si vous compilez tout un système (environnement graphique (Gnome, Kde, etc.), Kernel, programmes couramment utilisés (Firefox, Vlc, Chrome, Wine, etc.) notamment pour votre pc) toute la vitesse et le niveau d'optimisation que vous auriez.
Ce principe de compilation pour obtenir un code optimisé spécialement pour votre machine est celui utilisé par les distributions telles que Gentoo et ses dérivés (dont je ne vais pas parler maintenant, j'utilise Fedora minimal avec la compilation de Gnome 3, du noyau et d'autres programmes) où le système, vos mises à jour et vos programmes sont toujours compilés.
Inconvénients de la compilation:
J'ai déjà expliqué tous les avantages, mais comme tout dans l'univers, il en a un contre.
Dans le cas de la compilation, ils le sont;
- Le temps nécessaire pour cela (Firefox avec un i7 4790K (sans overclock car je suis très mauvais avec les tensions) prend 3 minutes, Gnome Shell (la barre rien de plus) avec Gnome-Control-Center m'a pris environ 2 minutes, les deux étant compilés à en même temps dans Fedora. Mais sur une machine avec un processeur moins puissant, ce temps peut être disproportionné).
- Le processeur utilise 100% de sa puissance avec tous ses cœurs au maximum, donc la consommation et la chaleur montent en flèche (en tenir compte si vous avez un overclocking ou s'il s'agit surtout d'un notebook), il est donc pratique que vous prépariez un maté ou un café pour l'occasion.
- Il vous manque peut-être une bibliothèque (outil) qui utilise un programme afin qu'il n'entraîne pas d'erreur dans la compilation. En général, toutes les distributions ont des paquets ou des ensembles d'entre eux pour éviter cela (ils sont pleins de diverses bibliothèques et d'autres choses qui permettent au noyau de communiquer comme il se doit avec le processeur pendant le processus).
Comment puis-je compiler?
Ici, je parle de compiler un programme pour une utilisation normale, pas un noyau.
aptitude install build-essential dh-make devscripts fakeroot debhelper debian-policy ccache dh-autoreconf autotools-dev build-dep ardor
J'ai mis debian-policy, mais si votre distribution n'est pas Debian et qu'elle vous donne une erreur indiquant qu'aucun tel paquet n'existe, ignorez-le. Je dois préciser que je n'ai pas utilisé ces systèmes depuis longtemps, donc si un paquet n'est plus dans les référentiels, ne faites pas de problème.
Pour Fedora:
sudo yum -y installe les en-têtes du noyaunoyau-develsudo yum groupinstall "Outils de développement"sudo yum groupinstall "Bibliothèques de développement"
Ici, je dois m'excuser pour ceux qui utilisent Arch (je ne connais pas bien la distribution) et OpenSuse, car je ne connais pas ces distributions ou les packages respectifs pour effectuer une compilation correcte (et je n'ai pas corroboré ce qui se trouve sur le réseau, de sorte que pour ces deux-là je ne sais pas s'ils fonctionnent).
Maintenant que vous avez toutes les exigences nécessaires, il vous suffit de télécharger le code source du programme que vous souhaitez compiler, en fonction de l'extension que vous décompressez à l'aide du terminal (ne vous inquiétez pas, je vous laisse les commandes) et quand vous allez dans le dossier (toujours avec le terminal) vous faites la même chose:
Si vous avez la possibilité de vous configurer pour choisir les composants et autres:
./configure
Ensuite, vous tapez:
make
Et enfin pour installer le programme sur votre Linux:
make install
Commandes à décompresser à l'aide du terminal (le fichier est décompressé dans un dossier où se trouve le fichier):
Fichiers .Tar (tar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pack | tar cvf file.tar / file / * Décompresser | tar xvf file.tar Afficher le contenu | tar tvf fichier.tar
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.gz - .tar.z - .tgz (tar avec gzip ) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pack et zip | tar czvf file.tar.gz / file / Décompresser et décompresser | tar xzvf file.tar.gz Afficher le contenu (non extrait) | tar tzvf fichier.tar.gz
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .gz (gzip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compresser | gzip -q fichier (Le fichier se compresse et le renomme "file.gz") Décompresser | gzip -d fichier.gz (Le fichier le décompresse et le laisse comme "fichier" Remarque: gzip ne compresse que les fichiers, pas les répertoires
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .bz2 (bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compresser | fichier bzip2 | Fichier bunzip2 (Le fichier se compresse et le renomme "file.bz2") Décompresser | bzip2 -d fichier.bz2 | bunzip2 file.bz2 (Le fichier le décompresse et le laisse en tant que "fichier") Remarque: bzip2 ne compresse que les fichiers, pas les répertoires
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.bz2 (tar avec bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compresser | fichiers tar -c | bzip2> file.tar.bz2 Décompresser | bzip2 -dc file.tar.bz2 | tar -xv | tar jvxf file.tar.bz2 (versions récentes de tar) Afficher le contenu | bzip2 -dc file.tar.bz2 | tar -tv
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .zip (zip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compresser | zip file.zip / mayo / archives Décompresser | décompressez file.zip Afficher le contenu | décompressez -v fichier.zip
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .rar (rar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compresser | rar -a fichier.rar / mai / archives Décompresser | rar -x file.rar Afficher le contenu | rar -v fichier.rar | rar -l fichier.rar
Et c'est tout. Salutations de Buenos Aires, Argentine. Bonnes vacances et nouvel an! :).