apt-build – Installer des applications optimisées pour votre écosystème sur Debian, Ubuntu et dérivés

apt-build est un utilitaire intéressant, qui s’adresse aux utilisateurs désireux d’avoir les versions de leur programmes correspondant le mieux à leur système et à leur configuration matérielle. Vous ne le savez sans doute pas, mais les paquets précompilés présents dans les dépôts officiels de Debian ou d’Ubuntu (entre autres), sont bâtis en général à l’aide d’options génériques, afin d’assurer un maximum de stabilité et de faciliter leur prise en charge sur les différents systèmes et architectures. En conséquence et même si pour la plupart des utilisateurs ceci est largement suffisant, rien ne vous empêche de compiler vous-même les applications qui vous intéressent, afin qu’elles collent au mieux à votre système et votre matériel. C’est un peu la philosophie de Gentoo pour ceux qui connaissent. Bien entendu la compilation n’est pas chose aisée pour un grand nombre d’utilisateurs et c’est là qu’apt-build entre en jeu. Il va vous permettre de compiler facilement vos programmes sur Debian et Ubuntu, avec les paramètres idéals pour votre écosystème et ce, comme vous pourriez le faire avec apt-get. Une fois l’application paramétrée il vous suffira d’adapter vos commandes en conséquence, en remplaçant simplement « get » par « build ».

Avant de commencer il faut quand même préciser deux ou trois choses. Pour commencer je l’ai testé et si je veux être honnête je dois vous préciser que cette application n’est pas exempte de quelques bugs (et je suis gentil). J’ai tenté pas mal d’installations, mais au final beaucoup ont échouée. Précisons ensuite qu’il ne faut pas non plus vous attendre à avoir une fusée. La rapidité des applications ne dépend pas seulement de la compilation et pas mal d’autres facteurs peuvent entrer en jeu et fausser la donne.

Alors si je peux me permettre de vous donner quelques conseils, ne l’utilisez pas en production pour commencer et ne dégainez cet outil que pour des applications dédiées à de lourdes tâche (vidéo, encodage, modélisation etc). Je pense que les gains seraient trop négligeables et que cela n’aurait pas de sens de l’utiliser pour installer une calculette ou un petit éditeur de texte par exemple. À vous de voir donc…

Installation :

Si vous êtes toujours partants la première chose à faire est de récolter les informations relatives à votre processeur, qui vous serviront à choisir les bons paramètres lors de la configuration d’apt-build.

Vous pouvez le faire à l’aide de la commande suivante :

cat /proc/cpuinfo

Installez ensuite l’application à l’aide de la commande suivante :

sudo apt-get install apt-build

Vous devriez alors voir apparaître cette fenêtre et le mieux à faire est d’opter pour l’option « Intermédiaire » (l’option « Élevé » peut engendrer des instabilités).

Ici aussi choisissez l’option par défaut :

Et vous voilà maintenant sur la fameuse fenêtre, où les infos récoltées plus haut (avec cpuinfo) vont vous permettre de choisir l’option correspondant le mieux à votre architecture.

Aussi étonnant que cela puisse paraître, vous voilà déjà prêts à compiler en procédant de la même manière que dans l’exemple ci-dessous.

Si vous voulez installer The Gimp par exemple, remplacez simplement get par build dans la commande suivante et le tour est joué :

sudo apt-build gimp

Vous ne serez bien entendu pas limités à l’installation de paquets, car apt-build possède un grand nombre d’options, dont vous pourrez prendre connaissance à l’aide de l’option -h. Elles vous permettront d’effectuer des mises à jour, d’actualiser, d’installer ou de supprimer des sources et un tas d’autres choses, comme le montre le retour ci-dessous :

Usage: apt-build [options] [command]

Commands:
update - Update package lists
upgrade - Perform an upgrade
install - Build and install new packages
source - Download and extract source in build directory
build-source - Download, extract and build source package
update-source - Update all sources and rebuild them
remove - Remove packages
build-repository - Rebuild the repository
clean-build - Erase downloaded packages and temporary build files
clean-repository - Erase built packages
clean-sources - Clean up all object files in source directories
world - Rebuild and reinstall all packages on your system
info - Build-related package information

Options:
--reinstall - Re-build and install already installed package
--rebuild - Rebuild package
--remove-builddep - Remove build-dependencies installed by apt-build
--nowrapper - Do not use gcc/g++ wrapper
--purge - Use purge instead of remove
--noupdate - Do not run 'apt-get update' before package installation
--build-command - Use  to build package
--patch - Apply patch s before the build
--patch-strip - Striplevel for the patch files
--yes -y - Assume yes
--version -v - Show version and exit
--force-yes - Force yes
--source - Do not download source (sources are extracted already)
--build-only - Do not install any of build dependencies or --build-dir - Specify build dir
--repository-dir - Specify the repository directory
--target-release - Distribution to fetch packages from
--sources-list - Specify sources.list file
--aptget - Specify an alternative apt-get application to use
--aptcache - Specify an alternative apt-cache application to use
--config - Specify an alternative configuration file

lavachelibre@lavachelibre-labs:~$

Conclusion ?

Je dirais que je suis assez mitigé dans l’ensemble et qu’elle m’a semblé merdouiller plus qu’autre chose.

Cela dit elle a le mérite d’exister et peut-être que dans certains cas elle pourra vous être utile. De toute manière si une compil ne passe pas, vous pourrez toujours vous rabattre sur apt-get, car les deux outils cohabitent plutôt bien.

Amusez-vous bien.

source




8 Responses

  1. Val Libre 21 février 2014 / 17 h 20 min

    Précision, apt-build c’est/c’était du Gentoo *avant* Gentoo. D’où une certaine incompréhension à voir les debianeux dénigrer Gentoo lors de sa création, en disant grosso-modo, « ça ne marchera jamais, c’est trop le b….l »

    Cela-dit, une autre application de apt-build c’est l’aide au backport. Vous ajoutez *uniquement* le deb-src pour la distrib visée. Apt-build va alors s’efforcer de recompiler l’application sans pouvoir aller chercher les paquets binaires de la distrib visée… En cas de blocage réel sur un paquet nécessaire, on relance apt-build sur ce paquet et ainsi de suite.
    E.g. vous êtes en ubuntu/précise avec toutes les sources binaires, vous ajoutez donc uniquement le deb-src pour quantal ou raring ou …

    • noireaude 21 février 2014 / 21 h 56 min

      Merci bien pour ces précisions ;)

  2. Salamandar 21 février 2014 / 10 h 20 min

    Pour le coup, je n’ai pas trouvé l’info demandée dans /proc/cpuinfo… Du coup j’ai sélectionné native :p

  3. Egan 21 février 2014 / 10 h 07 min

    >>>De toute manière si une compil ne passe pas, vous pourrez toujours vous rabattre sur apt-get

    A remplacer par :

    De toute manière si une compil ne passe pas, vous pourrez toujours rapporter le bug auprès des gentils développeurs.

    • noireaude 21 février 2014 / 21 h 54 min

      Pas faux :)

Comments are closed.