Portupgrade est un outil de management des ports extremement avancé, ce dernier répond au problème principal des ports FreeBSD, l'upgrade et l'installation propre de packages, tant sources que binaires.

Portupgrade est dans le port tree, pour l'installer, faites l'opération suivante :

# cd /usr/ports/sysutils/portupgrade/
# sudo make install clean

Avant toute chose, mettez à jour votre database de ports par la commande :

# pkgdb -F

Et laissez vous guider pour les eventuelles réparations.

Voyons maintenant quelques exemples pratiques d'utilisation.

Installation d'un port, sans action particulière, ici on souhaite installer l'outil “screen”

# portinstall screen

ou encore

# portupgrade -N screen

Les 2 syntaxes sont similaires

Upgrade d'un port sans action particulière :

# portupgrade screen

Upgrade d'un port avec mise à jour recursive des packages qui en dépendent :

# portupgrade -r gtk12

Upgrade d'un port avec mise à jour recursive des packages dont il dépend :

# portupgrade -r gtk12

Upgrade d'un port avec mise à jour recursive des packages dont il dépend :

# portupgrade -R gtk12

On peut evidemment combiner :

# portupgrade -rR gtk12

ou encore, si le port n'est pas encore installé :

# portupgrade -rRN gtk12

Et etre encore plus propres en faisant le ménage, à savoir, en effaçant les librairies plus utilisées ( -u ) :

# portupgrade -rRu gtk12

Pour les feinéants ou les machines peu puissantes, il est possible de travailler sur les packages binaires. Tout d'abord, renseignez la valeur ENV['PACKAGEROOT'] dans /usr/local/etc/pkgtools.conf

Par exemple, ENV['PACKAGEROOT'] = 'ftp://ftp.fr.FreeBSD.org'

Puis pour installer une version binaire de XFree 4.2 en gérant toutes les dépendances :

# portupgrade -PPrRu XFree86-4.2

-PP spécifie de ne travailler que sur les packages binaires.

Quelques bonus :

# pkg_glob *truc*                  # liste tous les packages contenant la chaine "truc"
# pkg_which /path/vers/fichier     # dit de quel port est issu un fichier
# pkg_deinstall package            # desinstalle, avec possibilité de récursivité, "package"
# pkgclean                         # fait le ménage

A lire pour plus d'infos :

# man portupgrade
# man pkgdb
freebsd/portupgrade.txt · Last modified: 2010/01/12 13:29 (external edit)