Guide d'installation et d'utilisation de Gentoo pour Mac OS X Alexander Plank Hasan Khalil Patrick Tescher Clément Varaldi Ce guide présente une façon, pour les utilisateurs moyens, d'installer et utiliser Portage sous Mac OS X. 1.0 13 août 2004 Installation
Prérequis 

Afin de pouvoir installer Gentoo pour Mac OS X, vous devez avoir déjà installé les logiciels suivants :

  • Mac OS 10.2 ou ultérieur
  • XCode Tools 1.2 ou ultérieur
La suite XCode Tools peut être télechargée gratuitement depuis le site Web des membres de l'Apple Developer Connection (inscription gratuite nécessaire). Nous recommandons fortement d'installer XCode avec le SDK de X11.
L'installeur

Vous devez tout d'abord télecharger l'image disque de l'installeur de Gentoo pour Mac OS X. Une fois que l'image dmg a été montée (en double-cliquant dessus), son contenu sera affiché à l'écran dans une fenêtre du « finder ». Vous devriez alors voir l'icône de l'installeur. Vous n'avez plus qu'à le lancer et à suivre les instructions qui vous sont données à l'écran.

Terminal.app

Après que l'installeur ait fini et quitté, vous aurez besoin de lancer Terminal.app (ou tout autre émulateur de terminal). Si Terminal.app est déjà en cours d'exécution, vous devez ouvrir une nouvelle fenêtre pour que les logiciels installés par l'installeur soient reconnus par cette session du terminal.

Utiliser un autre shell que bash n'est pas encore supporté, et ne fonctionnera peut-être pas. Vous devriez modifier le shell par défaut de Terminal.app en cliquant sur Terminal->Preferences (dans la barre de menu), puis en choisissant l'option « Exécuter la commande ». Entrez alors /bin/bash dans la boîte de saisie disponible.
Mettre à jour Portage

il est important de garder la base d'information des paquets de Portage (aussi appellée « l'arbre de Portage ») à jour. Elle se situe dans /usr/portage. L'arbre de Portage contient des informations à propos de tous les paquets que Portage sait installer, ainsi que les directions que Portage va suivre pour installer les paquets pour vous. Il est important que vous mettiez à jour ces informations pour avoir la dernière version de l'arbre disponible avant de continuer, afin d'être sûr d'avoir toutes les dernières informations disponibles pour les derniers paquets.

Une fois dans la console, vous devez obtenir les privilèges root (administrateur) pour pouvoir continuer. Si vous êtes un administrateur de la machine, l'usage de sudo est la méthode la plus simple.

$ sudo su
Password:

Pour être sûr que vous avez les derniers paquets et les dernières mises à jour, vous devez synchroniser votre arbre de Portage avec le dernier en date à partir des serveurs Gentoo.

# emerge sync
Configuration

Nous devons maintenant renseigner Portage sur votre version de OSX. Portage utilise les fichiers dans /etc/make.profile pour déterminer lesquels des paquets sont déjà installés par Mac OS X, lesquels sont masqués pour votre version de Mac OS X, et les options de configuration par défaut. Vous pouvez utiliser l'un des profils proposés par défaut, en créant un alias depuis /etc/make.profile vers un profile pré-écrit. Entrez l'une des commandes de l'un des blocs suivants, en choisissant celle correspondant à votre système.

# ln -s /usr/portage/profiles/default-macos-10.3 /etc/make.profile
# ln -s /usr/portage/profiles/default-macos-10.4 /etc/make.profile
Les utilisateurs avertis peuvent également s'aventurer à modifier les options de configuration dans /etc/make.conf. Ce n'est pas recommandé à l'utilisateur moyen.
Installer les paquets du système

Ensuite, vous devez installer le système avec la commande emerge. Cela va installer les autres paquets dont Portage a besoin pour fonctionner correctement.

# emerge system

Bravo ! Votre installation de Mac OS X est désormais finie, et prête à l'emploi.

Installer des logiciels en utilisant Portage
Installer des logiciels

Pour installer un paquet depuis Portage, une simple exécution de emerge suffit. Portage s'occupera de l'ensemble des dépendances de votre paquet. Installer un paquet est facile, une fois que vous connaissez son nom.

# emerge lynx
Paquets masqués

Vous devriez pouvoir installer toute combinaison de paquets qui a déjà été testée et marquée avec le mot-clef macos. Actuellement, seul un faible nombre de paquets ne sont pas masqués. Si un ebuild n'a pas encore eu le mot-clef macos ajouté, vous aurez un message similaire à celui-ci.

# emerge -p cowsay

 These are the packages that I would merge, in order:

 Calculating dependencies
 !! all ebuilds that could satisfy "cowsay" have been masked.
 !! possible candidates are:
 - games-misc/cowsay-3.03 (masked by: missing keyword)
Tester des paquets

Vous pourriez vouloir tester un paquet vous-même pour voir s'il fonctionne, malgré son état masqué. Même si l'on ne suggère pas aux utilisateurs moyens de le faire, les personnes souhaitant aider les développeurs en testant des paquets sont libres de démasquer et tester des paquets sur leur système. Cela se fait en ajoutant le mot-clef « macos » au fichier d'information d'un paquet, ou « ebuild ». Pour ajouter le mot-clef macos à un ebuild, il vous faudra utiliser la commande « ekeyword », qui fait partie du paquet gentoolkit-dev.

# emerge gentoolkit-dev
# cd /usr/portage/games-misc/cowsay
# ekeyword macos cowsay-3.03.ebuild

Si le paquet compile correctement et s'exécute bien, merci de soumettre un bogue sur Bugzilla Gentoo (inscription gratuite nécessaire) en nous signalant que le paquet fonctionne (vous pouvez assigner le bogue au groupe de développeurs Gentoo pour Mac OS X, osx@gentoo.org). Si le paquet ne fonctionne pas, soumettez un bogue nous montrant la ou les erreurs que vous avez constatées (en général, il y en a un certain nombre, copiez et collez les lignes à partir du premier message ressemblant à une erreur, jusqu'à la fin).

Pour la plupart des paquets nécessitant l'utilisation de X11, vous devrez installer le paquet de développement de X11. Si vous n'optez pas pour son installation lors de l'installation de XCode, vous pouvez l'installer aisément après coup à partir du fichier X11SDK.pkg, qui se trouve dans le répertoire Packages du CD de XCode 1.2 (il suffit de double-cliquer dessus pour l'installer). Evitez d'installer Portage à partir des ebuilds. Il est en plein développement pour tout ce qui concerne les paquets dépendant de Portage (par exemple gentoolkit).

Paquets déjà installés

Si vous trouvez un paquet qui a déjà été installé par Mac OS X, vous devriez soumettre un bogue sur le Bugzilla Gentoo (inscription gratuite requise). Sur votre propre système, vous pouvez ajouter un paquet à /etc/portage/package.provided pour que Portage sache que ce paquet est déjà installé.

# echo nom-cat/paquetage-x.y.z >> /etc/portage/package.provided
Pour voir la liste des paquets que les développeurs ont notés comme pré-installés par Apple sur votre version de Mac OS X, vous pouvez lire le fichier /etc/make.profile/package.provided. Modifier le fichier /etc/make.profile/package.provided n'est pas recommandé, car il sera écrasé à chaque fois que vous mettrez l'arbre de Portage à jour (en utilisant « emerge sync »).
Utiliser le CVS
Problèmes avec la sensibilité à la casse

Les scripts de CVS ont des problèmes avec les systèmes de fichiers tels que HFS(+) qui ne sont pas sensibles à la casse des caractères. Il vous faudra donc créer une image de système de fichiers sensible à la casse (nous recommandons une taille minimum de 750 Mo) dans lequel vous importerez l'arbre de Portage du CVS. L'une des commandes suivantes peut être utilisée pour créer une telle image de système de fichiers :

(Remplacez « gentoo-cvs.dmg » par le nom que vous voulez,
et « Gentoo-CVS » par le nom de volume que vous souhaitez.)
$ hdiutil create -size 750m gentoo-cvs.dmg -volname Gentoo-CVS -fs UFS
(Remplacez « gentoo-cvs.dmg » par le nom que vous voulez,
et « Gentoo-CVS » par le nom de volume que vous souhaitez.)
$ hdiutil create -size 750m gentoo-cvs.dmg -volname Gentoo-CVS -fs HFSX
Pour les développeurs : repoman ne fonctionnera pas s'il y a des espaces dans le chemin de la racine de l'arbre de Portage. Vous devez éviter d'utiliser un nom de volume contenant des espaces pour votre image du CVS.
Désinstallation
Script de désinstallation

Pour désinstaller Gentoo pour Mac OS X, vous pouvez utiliser le script de désinstallation, qui vous permet de choisir si vous voulez ou non désinstaller également les paquets qui ont été installés avec Gentoo pour Mac OS X.

# sudo perl uninstall.pl
Pour désinstaller, vous devez utiliser le script avec les privilèges root.
Paquets disponibles
Vue d'ensemble

Il y a plusieurs façons de voir la liste des paquets qui sont marqués avec le mot-clef « macos », et qui sont donc signalés comme stables pour Mac OS X. Comme il y a encore beaucoup de travail à faire pour marquer des paquets comme stables pour Gentoo pour Mac OS X, nous encourageons les utilisateurs à vérifier régulièrement l'état de la liste des paquets.

Récents ebuilds de Gentoo pour Mac OS X

Le site des récents ebuils de Gentoo pour Mac OS X fait partie du site officiel des récents ebuilds Gentoo. Il ne propose pas seulement une liste d'informations sur les ebuilds actuels, mais permet également de faire des recherches, et propose quelques fonctionnalités intéressantes, comme des fils RSS (un fil dédié à un mot-clef, par exemple). Il y a notamment un fil RSS pour les derniers ebuilds marqués « macos » disponible sur la liste des fils pour les récents ebuilds Gentoo.

Gentoo-Portage.com

Gentoo-Portage.com est une source non-officielle d'informations concernant l'arbre de Portage, un peu à la manière de Fresh Gentoo Ebuilds, mais qui propose plus de fonctionnalités relatives aux informations sur les ebuilds, comme, par exemple, l'obtention des dépendances inverses des paquets.

Fontionnalités avancées et problèmes rencontrés
Protection contre la collision

Gentoo pour Mac OS X propose une protection automatique contre les collisions, qui empêche Portage d'écraser un fichier déjà présent qu'il n'avait pas installé lui-même. On peut enlever la protection grâce à FEATURES="-collision-protect".

# FEATURES="-collision-protect" emerge autoconf
Enlever la protection contre les collisions est très dangereux et pourrait mener à un système complètement brisé.
emerge: command not found

L'installeur de Gentoo pour Mac OS X met à jour le fichier /etc/profile en ajoutant /usr/lib/portage/bin à votre variable d'environnement PATH. Pour lancer un simple emerge ..., vous aurez probablement besoin de taper « source /etc/profile » ou de fermer puis rouvrir votre session, afin de pas à avoir à taper le chemin d'accès complet (/usr/lib/portage/bin/<nom_outil>) pour lancer un outil de Portage.

Erreurs avec <library>.a

Quand on installe des fichiers de type <library>.a, ranlib est lancé pour être sûr que la bibliothèque référence les bons répertoires. Quand make install est exécuté par un ebuild, tout est installé dans /var/tmp/portage/<package>/image au lieu du système de fichier réel (« livefs »). Cela signifie que les bibliothèques installées par le biais des ebuilds référencent des répertoires incorrects. Ce problème existe seulement avec le noyau darwin avec ses fichiers <library>.a. Il existe toutefois une échappatoire à ce problème.

Comme le veut la politique de Gentoo pour Mac OS X, les bibliothèques installées par les ebuilds doivent être vérifiées pour s'assurer de leur bon fonctionnement avant de marquer l'ebuild avec le mot-clef « macos ». La plupart du temps, la raison pour laquelle une bibliothèque ne fonctionne pas réside dans des références incorrectes à des répertoires. Pour les aventuriers, une méthode permet de contourner cela. La commande ranlib résoud entre autres les problèmes de répertoires dans les bibliothèques.

(Remplacez « /usr/lib/libjpeg.a » par la librairie cassée)
# ranlib /usr/lib/libjpeg.a
La dépendance avec Portage

Certains paquets dépendent de l'installation de Portage. Il y a actuellement un problème avec Portage qui ne se reconnait pas comme étant installé. Même si l'équipe de Gentoo pour Mac OS X travaille actuellement à corriger ce problème, il existe là encore une méthode de contournement. Il est possible d'installer n'importe quel paquet sans installer ses dépendances. Cela peut être utile si l'on ne veut pas se préoccuper de la dépendance envers Portage, mais cela ne devrait pas être utilisé dans d'autres cas.

# emerge --nodeps gentoolkit