Gentoo For Mac OS X Installation and Usage Guide Alexander Plank Hasan Khalil Patrick Tescher Clément Varaldi Ce guide présente une manière 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 supérieur
  • XCode Tools 1.2 ou supérieur
La suite XCode Tools peut être télechargé gratuitement depuis le site de membre de l'Apple Developer Connection (inscirption libre nécessaire). Nous recommandons grandement d'installer XCode avec le SDK de X11. We strongly recommend that XCode be installed with the X11 SDK.
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 vous sera affiché à l'écran dans une fenêtre du finder. Vous devriez voir alors l'icône de l'installeur et donc 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 vous avez déjà Terminal.app de lancé, vous devez ouvrir une nouvelle fenêtre pour que les logiciels installés par l'installeur soient reconnus par la session du terminal.

Utiliser un autre shell que bash n'est pas encore supporté, et aura des chances de ne pas fonctionner. Vous devriez modifier le shell par défaut de Terminal.app en cliquant sur Terminal->Preferences (Dans la barre de menu), et en choisissant l'option "Exécuter la commande", puis entrer /bin/bash dans la case de saisie disponible.
Mettre à jour Portage

il est important de garder la base d'information des paquetages de Portage (autrement appellée "l'arbre de Portage") à jour. Il est placé dans /usr/portage. L'arbre de Portage contient des informations à propos de tous les paquetages que Portage sait installer, ainsi que les directions que Portage va suivre pour installer le paquetage 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 paquetages.

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 paquetages et les dernières mises à jours, vous devez synchroniser votre arbre de Portage avec le dernier en date à partir des serveurs Gentoo.

# emerge sync
Configuration

Nous devons désormais renseigner Portage de votre version de OSX. Portage utilise les fichiers dans /etc/make.profile pour déterminer lesquels des paquetages 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 pourriez utiliser l'un des profiles proposé 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 paquetages du Système

Ensuite, vous devez 'emerger' le système. Cela va installer les autres paquetages dont Portage a besoin pour fonctionner correctement.

# emerge system

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

Installer des logiciels en utilisant Portage
Installer des logiciels

Pour installer un paquetage depuis Portage, tout ce que vous avez à faire est de l''emerger'. Portage s'occupera de l'ensemble des dépendances de votre paquetage. Installer un paquetage est facile, une fois que vous connaissez son nom.

# emerge lynx
Paquetages masqués

Vous devriez pouvoir emerger toute combinaison de paquetages qui a déjà été testée et mise à jour comme fonctionnant pour macos. Actuellement, seul un faible nombre de paquetages 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 paquetages

Vous pourriez vouloir tester un paquetage 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 paquetages sont libres de démasquer et tester des paquetages sur leur système. Cela se fait en ajoutant le mot-clef 'macos' au fichier d'information d'un paquetage, ou 'ebuild'. Pour ajouter le mot-clef macos à un ebuild, il vous faudra utiliser la commande 'ekeyword', qui fait partie du paquetage gentoolkit-dev.

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

Si le paquetage compile correctement et se lance bien, merci de soumettre un bug au Bugzilla Gentoo (inscription libre nécessaire) en nous signalant que le paquetage fonctionne (vous pouvez assigner le bug au groupe de développeurs de Gentoo pour Mac OS X, osx@gentoo.org). S'il ne fonctionne pas, soumettez un bug nous montrant le ou les erreurs que vous avez eu (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 paquetages nécessitant l'utilisation de X11, vous devrez installer le paquetage 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'emerger portage à partir des ebuilds. Il est en plein développement pour tout ce qui concerne les paquetages dépendant de portage (comme gentoolkit par exemple).

Paquetages déjà installés

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

# echo nom-cat/paquetage-x.y.z >> /etc/portage/package.provided
Pour voir la liste des paquetages que les développeurs ont remarqué comme pré-installés par Apple sur votre version de Mac OS C, 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. Il vous faudra donc créer une image de système de fichier sensible à la casse (nous recommandons un minimum de 750Mo pour la taille) 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èmen de fichier :

(Remplacer '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
(Remplacer '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 avec des espaces dans la direction de la racine de l'arbre de Portage. Vous devez éviter d'utiliser un nom de volume pour votre image du CVS, contenant des espaces.
Désinstallation
Script de désinstallation

Pour désinstaller Gentoo pour Mac OS C, vous pouvez utiliser le script de désinstallation, qui vous permet de choisir si vous voulez ou non désinstaller également les paquetages 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 droits root.
Paquetages disponibles
Vue d'ensemble

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

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 des informations des ebuilds actuels, mais permet également de faire des recherches, et propose quelques fonctionnalités intéressantes, comme des fils RSS (un par 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 en proposant plus de fonctionnalité en partant des informations des ebuilds, comme par exemple l'obtention des dépendances inverses par paquetages, etc.

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'écrire par dessus un fichier qui était déjà présent, et qu'il n'avait pas mis 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 cassé.
emerge: command not found

L'installeur de Gentoo pour Mac OS X met à jour le fichier /etc/profile en y 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 vous délogger puis relogger pour ne pas à avoir à taper la direction complète (/usr/lib/portage/bin/<nomoutil>) 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 librairie a des références avec les bons répertoires. Quand un 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). Ce qui signifie que les librairies installées par le biais des ebuilds ont des références à des répertoirs incorrectes. Ce problème existe seulement avec le noyau darwin avec ses fichiers <library>.a et actuellement une échappatoire existe.

Comme le veut la politique de Gentoo pour Mac OS X, les ebuilds qui installent des librairies doivent être vérifiée comme fonctionnant correctement avant de pouvoir être marqués du mot-clef 'macos'. La plupart du temps, la raison pour laquelle une librairie ne fonctionne pas réside dans des références incorrectes dans les répertoires. Pour les aventuriers, une méthode permet de contourner cela. La commande ranlib résoud en autres des problèmes de répertoires dans les librairies.

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

Certains paquetages 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 point, il existe là encore une méthode de contournement. Il est possible d'emerger n'importe quel paquetage sans emerger ses dépendances. Cela peut être utile si l'on ne veut pas se préoccuper de la dépendance de Portage, mais ne devrait pas être effectué dans d'autres cas.

# emerge --nodeps gentoolkit