Le but de cet article sera de présenter les différentes fonctionnalités de MacPorts, puis de montrer comment tout cela fonctionne sur OSX (plus précisément sur Leopard, mais le fonctionnement sera identique sous Tiger) MacPorts ne résout pas tous les problèmes, mais il facilite quand même pas mal de choses…
OSX possède une base Unix. Ce qui fait que beaucoup de logiciels compatibles avec l’un le sont également avec l’autre. Cela ne signifie pas qu’ils le sont tous malheureusement, les différences se situant généralement au niveau des librairies graphiques. Une librairie, c’est un gros morceau de code qui permet d’effectuer un ensemble défini de fonctions. Prenons par exemple deux libraires, une qui dessine des rectangles, l’autre qui dessine des ronds. Si un programmeur est amené à devoir dessiner l’un ou l’autre, il pourra inclure directement la librairie qui l’intéresse, afin de ne pas avoir à refaire le même travail qu’un autre. C’est une des forces des logiciels libres : si quelqu’un est intéressé par une fonction en particulier, rien ne l’empêche d’ouvrir la librairie préexistante et d’en modifier le contenu pour qu’elle corresponde à ses envies. Il ne s’agit bien entendu que d’un exemple destiné à expliquer les bases, les logiciels libres ne se limitant pas à cela.
Prenons un exemple : Adium et Pidgin. A priori, rien ne relie ces deux logiciels. Pourtant, ils utilisent tous les deux la même base, à savoir les libpurples. Cela signifie donc que les modifications sur les libpurples sont profitables à l’un comme à l’autre des logiciels. Il « suffit » que le logiciel se greffe sur la nouvelle version pour profiter des avantages
. Ce n’est pas pour autant que Adium peut fonctionner sur Gnome ou Pidgin sur OSX, puisque Adium utilise également d’autres librairies, propres à OSX, alors que Pidgin utilise les librairies GTK.
L’idée est donc qu’un logiciel a besoin de certaines librairies pour fonctionner, et que ces librairies peuvent être utilisées par plusieurs logiciels en parallèle. La philosophie d’Unix est de partager ces librairies et que chaque programme va les récupérer lors de son exécution. On retrouve ce comportement sur Windows également, avec le principe des Dynamic Linked Librairies (DLL pour les intimes. Regardez dans les différents dossiers, vous verrez, elles sont partout). Le but est donc de regrouper ces librairies dans un emplacement définis, afin que les différents logiciels sachent où les récupérer.
Généralement, en installant un logiciel « graphiquement » (suivant, suivant, terminé!), les dépendances sont également installées. Cela facilite évidemment la vie aux utilisateurs, puisqu’il ne faut pas se charger des librairies externes.
Sous Linux (et d’autres versions d’Unix, style BSD), la plupart des distributions viennent avec un gestionnaire d’installation. Il suffit généralement de gérer les dépôts, puis de choisir le logiciel dont on a besoin, et celui-ci vient avec toutes ses dépendances. Lors d’une autre installation, le gestionnaire vérifiera si le logiciel a besoin de dépendances, et si oui, vérifiera si elles ne sont pas déjà installées. Inutile de réinstaller quelque chose qui existe déjà…
Et sous OSX, comment on fait pour gérer les dépendances? D’abord, il faut en avoir besoins, des dépendances. Soit on se limite aux programmes existants et dans ce cas, on n’a généralement rien à faire, soit aucune application répondant aux fonctionnalités demandées n’a pu être trouvée, et il faut envisager de se tourner vers les applications non spécifiques à OSX. Pour cela, il existe MacPorts qui pourra se charger de télécharger les sources d’un programme, ses dépendances, de compiler le tout, pour avoir finalement quelque chose de directement fonctionnel
Dans la suite, je me limiterai aux programmes en ligne de commande, ceux qui fonctionnent généralement out-of-the-box, les dépendances graphiques étant parfois assez lourdes à résoudre (remontez à mon exemple de Adium/Pidgin…)
J’aime pas la ligne de commande, c’est nul, j’y comprend rien et ça sert à rien. Faux et archi-faux. On ne critique pas sans avoir essayer
Dans certains cas, il est beaucoup plus facile de lancer une commande « à la main », plutôt que de se taper toute l’interface graphique qui va avec. Ok, parfois rien ne remplace l’ergonomie d’une interface graphique. Parfois pas
Le but n’est pas de discuter sur le « oui ou non », mais de montrer qu’il existe une alternative, et que parfois, cela vaut vraiment la peine de creuser un peu. MacPorts fonctionne donc en ligne de commande et nécessitera l’utilisation du Terminal. Son utilisation est relativement simple :
sudo port install nzbget
installera l’application nzbget ainsi que toutes ses dépendances.
sudo port selfupdate
fera une mise à jour des différents dépôts, vérifiera que toutes les applications précédemment installées avec MacPorts sont à jour, etc.
Convaincus? On passe à l’installation
Installation
Histoire de simplifier la marche à suivre, on va prendre la méthode la plus simple : le package Mac OSX. Il est disponible pour
A la fin de l’installation, ouvrez le Terminal et tapez la commande suivante, qui aura pour effet de mettre MacPorts à jour et de récupérer la liste des applications disponibles.
sudo port -v selfupdate
Utilisation
La recherche d’une application est super simple, et à partir du moment où cette application se trouve bien dans l’arbre de MacPorts, toutes les dépendances seront automatiquement gérées. De cette manière, faites une recherche pour un logiciel avec la commande
sudo port search le_logiciel_que_je_veux
sudo port info nzbget
Par cette commande, on obtient beaucoup plus d’informations sur l’application. Il s’agit ici d’une application de transfert d’informations à partir des newsgroups. On a la page d’accueil du projet, les dépendances (libxml2), la plateforme supportée, et une adresse pour contatcter la personne en charger du projet. Si ok, on peut l’installer
Vu que je n’ai pas besoin d’NZBGet, je vais refaire la liste des commandes avec wget, plus utile
Ensuite on passe à l’installation
:
Et voila. Rien de plus compliqué
Ok, ça prend un peu de temps, mais on a une application complètement fonctionnelle en seulement trois étapes (suffisamment explicites d’ailleurs
). Pour preuve :
La prochaine fois, on verra comment installer une application à partir des sources
(et avec l’aide de MacPorts, histoire de faciliter les dépendances…)
Références
- MacPorts : site officiel et support Trac (wiki, feuille de route pour le développement, …)
- Quick Start Guide





