Mettre à jour les ports

© Christian PAULUS. Document créé le 27 juillet 2007 , mis à jour le 7 mars 2009.

L'homme qui ne tente rien ne se trompe qu'une fois. Lao-Tseu

Accueil du site > Astuces > FreeBSD > Mettre à jour les ports

Upgrade / FreeBSD 6.0

D’aucuns ne sont censés ignorer que la mise à jour d’un système est un mal nécessaire. Sur BSD, les commandes cvsup et portupdate sont d’un grand secours, aussi bien pour le système que pour les ports.

Mise à jour du système

Brièvement, vous pouvez utiliser cvsup pour mettre à jour l’arborescence des sources de votre système. L’étape suivante sera de lancer la compilation du tout, et refaire le monde (make world). L’opération nécessite patience et précision, elle est décrite ici en français.

Mise à jour des ports

Les ports, ce sont les portages, les programmes, fontes, drivers, etc. qui ont été adaptés pour FreeBSD.

Il y en a des milliers. Vous pouvez découvrir le catalogue sur le site officiel de FreeBSD.

Tous ces ports sont maintenus et il arrive parfois que la mise à jour de l’un d’entre eux soit indispensable. Lorsqu’un programme de ce catalogue dépend d’un autre programme de ce même catalogue, le second s’appelle une dépendance (depend). Il arrive aussi que le premier port soit lui-même une dépendance d’un autre programme. Bref, quand on commence une mise à jour d’un des éléments de ce catalogue, il faut prévoir large !

Autre solution, installer le binaire (les packages). Mais l’installation par les sources reste souvent indispensable, ne serait-ce que pour vérifier que tout se passe correctement sur votre machine.

Rappel : installation d’un port

Les ports sont dans /usr/ports. Allez donc faire un petit tour dans ce répertoire et découvrez comment sont classés les éléments. Pour installer l’un d’entre eux, entrez simplement dans son répertoire et tapez les commandes nécessaires à la compilation, l’installation et le nettoyage avant de partir.

Par exemple, pour installer orca (lecteur d’écran) :

cd /usr/ports/accessibility/orca
make
make install
make clean

Bien sûr, les commandes sont à entrer avec les droits nécessaires (root).

Pour les aguerris, l’ensemble peut tenir en une seule ligne :

cd /usr/ports/accessibility/orca ; make install clean

Dresser l’inventaire des ports installés

En très peu de temps, pris par la frénésie indispensable de la recherche d’un monde meilleur, de make en make install (de port en port,…) vous ne savez plus où vous en êtes ? Entrez simplement

pkg_info

Pour obtenir la liste des ports installés (nom, version et une brève description).

Mettre à jour le répertoire ports

Le répertoire /usr/ports/ installé sur votre machine est – au début du moins – celui de la distribution. Il est souvent nécessaire de la mettre à jour avant toute nouvelle installation importante. Deux solutions :
— Soit récupérer l’archive à jour de ce répertoire et remplacer votre /usr/ports par cette archive ;
— Soit mettre à jour cette archive par cvsup. Il existe d’autres solutions, sont données ici les plus pratiques.

Mise à jour globale des ports

Si votre archive /usr/ports date de plusieurs mois, ou si vous avez un doute sur son contenu (nombreux oublis de make clean par exemple), récupérez l’archive officielle et installez-là en lieu et place de votre /usr/ports.

Par exemple :

cd /usr
wget ftp://ftp.freebsd.org/pub/FreeBSD/ports/ports/ports.tar.gz
mv ports ports-OLD
tar xvf ports.tar.gz

Vous remarquerez que la version de tar ici reconnaît automatiquement le format compressé.

Vous pouvez terminer en supprimant le répertoire ports-OLD qui prend maintenant de la place inutilement.

Pour info, en juillet 2007, l’archive des ports compressée pèse dans les 37 Mo, et une fois décompressée, dans les 270 Mo. Pour effectuer la manipulation ci-dessus, il vous faut donc plus de 300 Mo de libre sur /usr. Pour calculer la place disponible, vous pouvez :

cd /usr
df –H .

(n’oubliez pas le point à la suite du « df -H » pour ne sélectionner que le répertoire présent). Le paramètre « -H » n’est là que pour faciliter la lecture du résultat.

Reconstruire l’index des ports

Vous avez modifié l’environnement des ports dans /etc/make.conf, /usr/local/etc/pkgtools.conf ou autre de ce genre ? Vous devez reconstruire l’index :

cd /usr/ports && make index

Mise à jour par cvsup

La commande cvsup permet de mettre à jour tout ou partie de la distribution FreeBSD. La documentation, les sources du système, la distribution des ports, etc.

Pour la mise à jour des ports, cvsup a besoin d’un fichier de configuration : ports-supfile. En retirant les lignes de commentaires, ce fichier doit ressembler à ceci :

*default host=cvsup5.fr.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=.
*default delete use-rel-suffix
*default compress
ports-all

La première ligne indique sur quel serveur cvsup doit aller chercher les mises à jour. Cette ligne est à configurer à l’aide de la commande fastest_cvsup.

fastest_cvsup -c fr

L’option « -c » (country) est suivie ici de « fr » (France).

Le résultat vous donne une liste de serveurs disponibles et le délai obtenu (time taken). Choisissez le plus rapide et placez son adresse dans cette première ligne de ports-supfile.

Une fois ce fichier de configuration ports-supfile correctement paramétré, lancez la commande magique (inutile d’être dans le répertoire /usr/ports) :

cvsup ports-supfile

La mise à jour de l’arborescence commence dès maintenant. Soyez patient !

Mise à jour par portupgrade

cvsup ne met pas à jour les ports, mais uniquement son arborescence.

Le résultat, la liste des ports obsolètes, est obtenu par la commande pkg_version. Cette commande est détaillée dans ce billet.

Pour mettre à jour un port, il est plus sage de demander à portupgrade de mettre à jour en même temps les dépendances, amont et aval (les dépendances de votre port, et les programmes dont ce port dépend) :

portupgrade –rR nom_du_port_a_mettre_a_jour

Vous avez juste besoin maintenant d’un peu de patience.

A noter:

Plussoyez !

Répondre à cet article