Utilisez MacPorts !

Formation

En Ligne

Prix sur demande

Appeler le centre

Avez-vous besoin d'un coach de formation?

Il vous aidera à comparer différents cours et à trouver la solution la plus abordable.

Description

  • Typologie

    Formation

  • Méthodologie

    En ligne

Grâce à cette formation vous pourrez acquérir les connaissances nécessaires qui vous permettrons d’ajouter des compétences à votre profil et obtenir de solides aptitude qui vous offriront de nombreuses opportunités professionnelles.

Questions / Réponses

Ajoutez votre question

Nos conseillers et autres utilisateurs pourront vous répondre

À qui souhaitez-vous addresser votre question?

Saisissez vos coordonnées pour recevoir une réponse

Nous ne publierons que votre nom et votre question

Les Avis

Le programme

Introduction du cours

Il existe de nombreuses façons d'installer un logiciel sous Mac OS X. La première consiste à faire comme la plupart des utilisateurs, et de télécharger le logiciel sur Internet, pour l'installer ensuite. Cette façon de procéder fonctionne pour beaucoup de programmes, mais parfois certains programmes spécifiques ne sont pas disponibles sous une forme facilement installable, voire ne sont carrément pas disponibles pour Mac. Il existe cependant des moyens détournés d'installer ces programmes. :)

MacPorts est ce qu'on appelle un gestionnaire de paquets. C'est un logiciel qui se charge d'installer un programme demandé : il va le télécharger, le "préparer", et l'installer sur votre ordinateur, sans que vous ayez à faire autre chose que lui dire "installe-moi ce logiciel." ;)

Notions Préliminaires

C'est un fait, beaucoup de logiciels disponibles sur le Web sont très faciles d'installation. La plupart sont disponibles sous forme d'exécutable : c'est un fichier contenant du code binaire directement utilisable par votre ordinateur. Il n'y a donc aucune manipulation particulière à faire, à part installer le logiciel de la manière indiquée. :)

En revanche, certains logiciels (beaucoup en fait, mais peu connus sous Mac), particulièrement les logiciels libres, sont disponibles sous la forme de code source. Ce code source décrit le fonctionnement du programme de façon claire pour un humain, mais l'ordinateur ne sait pas le lire. Il faut pour cela compiler le code source (avec un compilateur), c'est-à-dire le transformer en code binaire, utilisable par votre ordinateur. Cette manipulation, même si elle est simple dans beaucoup de cas, peut s'avérer très complexe sur Mac, tout particulièrement lorsque le logiciel que l'on cherche à compiler ne se présente pas pour Mac à l'origine (mais une fois compilé il fonctionne très bien).

Les dépendances sont un des problèmes épineux que l'on rencontre lors de l'installation de tels logiciels. En effet, pour bien fonctionner, un programme est souvent dépendant de plusieurs autres programmes ou bibliothèques, qu'il faut aussi installer. Et bien souvent ces bibliothèques ont besoin d'autres bibliothèques pour être compilées, etc. :( Voici un schéma en guise d'exemple :

Pour installer wget, il faut d'abord installer tout ça.

C'est là que le gestionnaire de paquets entre en scène. Il dispose d'une liste de paquets. Les paquets sont des programmes disposés sous une forme compréhensible pour le gestionnaire : il y a une liste des dépendances, un mode d'emploi pour la compilation et l'installation, de la documentation, etc. Tout est centralisé. Il suffit de dire au gestionnaire "installe-moi le logiciel X", et il installera les dépendances de ce logiciel, téléchargera et compilera le logiciel, et enfin l'installera, ainsi que sa documentation, au bon endroit sur votre disque dur. ;)

Beaucoup de gestionnaires de paquets sous GNU/Linux téléchargent directement les formes binaires des logiciels. C'est le cas d'APT sur Debian et ses dérivés.
MacPorts fait en revanche partie des gestionnaires de paquets qui téléchargent le code source du programme et le compilent.

Évidement, un gestionnaire de paquets peut être utilisé pour désinstaller un logiciel précédemment installé, et aussi supprimer les dépendances devenues inutiles. Il peut aussi être utilisé pour mettre à jour un logiciel et ses dépendances. :)

Installer MacPorts

Voici le site du projet MacPorts : http://www.macports.org/
Vous pouvez y trouver (en anglais) les instructions d'installation, la documentation, la liste des paquets disponibles, etc. Nous allons ici détailler la démarche d'installation. :)

On a dit que MacPorts compilait le code source des programme qu'il voulait installer. Malheureusement, MacPorts n'est pas un compilateur : il faut donc en installer un. ;) Apple fournit sur son DVD d'installation des logiciels "optionnels" lors de l'installation de Mac OS X sur un ordinateur. Il y a notamment les Xcode Tools. C'est une suite de logiciels permettant le développement de programmes sous Mac OS X. Si vous ne les avez pas déjà installés, faites-le : il y a un installeur sur le DVD. Parmi ces Xcode Tools, il y a le compilateur GCC (qui est d'ailleurs nécessaire au développement d'applications sur Mac). C'est lui que MacPorts utilise pour compiler les programmes qu'il installe.

Il y a une deuxième installation préliminaire à faire : installer X11. X11 est le serveur graphique utilisé sur GNU/Linux. Il est nécessaire quand on installe des programmes qui n'ont pas étés développés pour Mac OS X. Pour les versions de Mac OS supérieures à 10.5, X11 est installé par défaut dans le dossier /Applications/Utilitaires. Si vous avez une version antérieure à 10.5, ou que X11 n'est tout simplement pas installé, il est disponible sur le DVD d'installation de Mac OS X. ;)

Vous pouvez à présent télécharger l'installeur de MacPorts ici (choisissez le lien qui correspond à votre version).
Lancez l'installeur :

Il ne vous reste plus qu'à créer un dossier « MacPorts » dans votre dossier Applications, et voilà ! MacPorts est installé sur votre ordinateur, prêt à fonctionner ! :D

Se servir de MacPorts

Il existe plusieurs façons de se servir de MacPorts. La méthode principale consiste à utiliser la ligne de commande. On peut donc s'adresser à MacPorts via des commandes, comme install, upgrade, etc. Il y a une commande pour chaque action possible.

On utilise donc MacPorts avec l'application Terminal, située dans /Applications/Utilitaires. Contrairement à ce que beaucoup de gens pensent au premier abord, la ligne de commande n'est absolument pas dangereuse, et surtout pas avec MacPorts.

Avant de commencer, il faut savoir que MacPorts s'installe dans le dossier /opt/local. Vous pouvez regarder dans Macintosh HD, il y a bien un nouveau dossier opt. Le problème, c'est que la commande de MacPorts se trouve dans ce dossier, et que celui-ci ne figure pas dans la variable $PATH (elle contient les dossiers où se trouvent les commandes : si MacPorts n'y est pas, on ne peut pas l'utiliser correctement). Il faut donc l'y ajouter.

Ouvrez donc Terminal, tapez la commande echo 'export PATH=${PATH}:/opt/local/bin' >> ~/.profile et appuyez sur <Entrée>. Relancez le Terminal, et tapez la commande port. C'est la commande de MacPorts.

MacPorts 1.8.1 Entering interactive mode... ("help" for help, "quit" to quit) [Users/rosewood] >

Ici, vous êtes en mode interactif, c'est-à-dire que vous êtes à l'intérieur de MacPorts (plus possible de tout casser :p ).
Vous l'aurez compris, MacPorts affiche sa version, un message d'accueil, ainsi qu'un prompt. Le texte entre crochets vous indique dans quel dossier vous vous situez (ici Users/rosewood).

Pour quitter tout ça, entrez la commande quit.

Les ports

Les ports sont les paquets dont on a parlé précédemment. Vous pouvez afficher la totalité des paquets avec la commande list :

[Users/rosewood] > list AppHack                        @1.1            aqua/AppHack AppKiDo                        @0.971          aqua/AppKiDo AquaLess                       @1.6            aqua/AquaLess ArpSpyX                        @1.1            aqua/ArpSpyX AssignmentTrackerX             @2.0beta3.1     aqua/AssignmentTrackerX BigSQL                         @1.0            aqua/BigSQL BiggerSQL                      @1.3.8          aqua/BiggerSQL Books                          @3.2.4          aqua/Books BwanaDik                       @3.2.1          aqua/BwanaDik Cenon                          @3.83           aqua/Cenon [[ Je coupe, c'est trop long :p ]] zope-portaltransforms          @1.3.3          zope/zope-portaltransforms zope-revisionmanager           @1.3.2          zope/zope-revisionmanager zope-stripogram                @1.4            zope/zope-stripogram zope-usersniffer               @1.21           zope/zope-usersniffer zope-usertrack                 @1.1            zope/zope-usertrack zope-validation                @1.3.1          zope/zope-validation zope-zopetree                  @1.3            zope/zope-zopetree zope-zopezen                   @0.5            zope/zope-zopezen zope-zphotoslides              @1.3            zope/zope-zphotoslides zope-zsyncer                   @0.6.1          zope/zope-zsyncer [Users/rosewood] >

J'ai compté, il y a 6435 lignes :p . Vous remarquerez que le prompt est de nouveau là, vous pouvez donc taper une autre commande.

Dans la liste des paquets qui s'est affichée, vous pouvez déjà avoir un peu plus d'informations sur un paquet : vous avez son nom, sa version (@1.3.1), et sa catégorie (aqua/AquaLess).

Le problème avec la commande list, c'est que si elle fait une liste exhaustive des paquets, elle n'est pas très pratique lorsque l'on cherche un paquet en particulier.
C'est là qu'intervient la commande search. Cette commande prend un ou plusieurs paramètres : les mots-clés que vous souhaitez chercher. Elle va d'ailleurs chercher ces mots-clés dans le nom du paquet, mais aussi dans sa description. Chaque paquet possède une courte description des ses fonctionnalités, pour que vous puissiez savoir ce que fait le programme que vous allez installer.

[Users/rosewood] > search hack AppHack @1.1 (aqua, devel)     Program for hacking application bundles. blib @1.1.7 (graphics, blinkenlights)     Library of useful things to hack the Blinkenlights denyhosts @2.6 (security, sysutils)     DenyHosts is a utility to help sys admins thwart ssh hackers jnethack @3.4.3-0.10 (games, japanese)     Classic dungeon adventure game, translated in Japanese. nethack @3.4.3 (games)     Classic dungeon adventure game. p5-universal-can @1.15 (perl)     Hack around people calling UNIVERSAL::can() as a function Found 6 ports.

Vous voyez donc tous les paquets qui correspondent à une recherche avec hack comme mot-clé.

Une fois que vous avez trouvé un paquet intéressant, vous pouvez utiliser la commande info pour obtenir des informations détaillées sur ce paquet : ces dépendances, son site web, ses variantes, le système-cible, etc.

[Users/rosewood] > info nethack nethack @3.4.3, Revision 2 (games) Variants:             autopickup_exceptions, menucolors, universal, x11 Description:          Classic dungeon adventure game. Homepage:             http://nethack.sourceforge.net/ Platforms:            darwin, freebsd License:              unknown Maintainers:          yeled@macports.orgInstaller un paquet

Pour installer un paquet, on utilise la commande install, en précisant le nom du paquet à installer. MacPorts va alors se charger d'installer les dépendances, de compiler les sources, etc. Essayons d'installer le paquet fetch.

Il faut avoir des privilèges administrateur pour pouvoir installer ou désintaller un paquet. Relancez donc port avec la commande sudo port, puis tapez votre mot de passe administrateur.

[Users/rosewood] > install fetch --->  Computing dependencies for fetch --->  Fetching libfetch --->  Verifying checksum(s) for libfetch --->  Extracting libfetch --->  Applying patches to libfetch --->  Configuring libfetch --->  Building libfetch --->  Staging libfetch into destroot --->  Installing libfetch @6.2.0-RELEASE_0+darwin --->  Activating libfetch @6.2.0-RELEASE_0+darwin --->  Cleaning libfetch --->  Fetching fetch --->  Verifying checksum(s) for fetch --->  Extracting fetch --->  Applying patches to fetch --->  Configuring fetch --->  Building fetch --->  Staging fetch into destroot --->  Installing fetch @6.2.0-RELEASE_0+darwin --->  Activating fetch @6.2.0-RELEASE_0+darwin --->  Cleaning fetch

On peut voir que MacPorts installe d'abord la bibliothèque libfetch, puis installe ensuite le programme fetch, car fetch dépend de libfetch (c'est d'ailleurs la seule dépendance) :

On peut séparer le processus d'installation en plusieurs étapes. On a d'abord le téléchargement (Fetching fetch :p ), l'exécution du script./configure (Configuring fetch), la compilation (Building fetch), l'activation (Activating fetch) et le nettoyage du paquet, tâche qui consiste à supprimer tous les fichiers liés à la compilation qui ne sont plus nécessaires.

Désinstaller un paquet

Pour désinstaller un paquet, on utilise la commande uninstall. Seulement, il arrive que l'on se heurte à quelques problèmes lors de la désinstallation. En effet, que se passe-t-il si on désinstalle un paquet qui était nécessaire au bon fonctionnement d'un autre ? Certaines dépendances ne sont nécessaires qu'à la compilation d'un paquet, mais d'autres sont nécessaires à l'exécution du programme. Essayons de désinstaller libfetch pour voir :

[Users/rosewood] > uninstall libfetch --->  Unable to uninstall libfetch 6.2.0-RELEASE_0+darwin, the following ports depend on it: --->    fetch Error: port uninstall failed: Please uninstall the ports that depend on libfetch first. Goodbye

MacPorts nous annonce gentiment que fetch est dépendant de libfetch et qu'on ne peut pas le désinstaller.

Il faudrait d'abord désinstaller fetch puis libfetch alors ? C'est un peu lourd...

Oui, on pourrait faire comme ça. Mais si on voulait désinstaller un paquet comme xorg, il faudrait supprimer les dizaines de paquets qui en sont dépendants. C'est effectivement trop lourd. :-°
Heureusement, il existe deux options qui permettent de se simplifier la vie. Les options sont des paramètres passés aux commandes qui permettent d'en modifier le comportement.
L'option -f permet de forcer la désinstallation du paquet, quoi qu'il arrive.

[Users/rosewood] > uninstall -f libfetch --->  Unable to uninstall libfetch 6.2.0-RELEASE_0+darwin, the following ports depend on it: --->    fetch Warning: Uninstall forced.  Proceeding despite dependencies. --->  Deactivating libfetch @6.2.0-RELEASE_0+darwin --->  Uninstalling libfetch @6.2.0-RELEASE_0+darwin

Sauf que là, fetch sera toujours installé, mais ne fonctionnera plus. On n'a donc rien changé au problème, puisqu'au final on aura désinstallé les deux paquets un à un.

Il existe une option plus pratique : l'option --follow-dependents. Cette option va suivre les paquets qui sont dépendants du paquet que vous souhaitez désinstaller, et les désinstaller avant de s'occuper du vôtre.

[Users/rosewood] > uninstall --follow-dependents libfetch --->  Deactivating fetch @6.2.0-RELEASE_0+darwin --->  Uninstalling fetch @6.2.0-RELEASE_0+darwin --->  Deactivating libfetch @6.2.0-RELEASE_0+darwin --->  Uninstalling libfetch @6.2.0-RELEASE_0+darwin

Et voilà ! On a réussi à désinstaller deux paquets en une ligne ! :)

Mettre à jour un paquet

Pour mettre à jour un paquet, c'est-à-dire télécharger les nouvelles sources et compiler le nouveau logiciel, on utilise la commande upgrade. Si le paquet peut être mis à jour, la procédure est lancée. Si ce n'est pas la cas, MacPorts ne fera rien.

Pour vérifier qu'on a la dernière version du paquet disponible, comment s'y prend MacPorts...

Appeler le centre

Avez-vous besoin d'un coach de formation?

Il vous aidera à comparer différents cours et à trouver la solution la plus abordable.

Utilisez MacPorts !

Prix sur demande