Installer des logiciels sur FreeBSD
Un article de DocAstairs.
Sommaire |
[modifier] Comment installer les logiciels
Il existe deux possibilités pour installer des logiciels sur FreeBSD :
- Les logiciels précompilés : C'est la mise à disposition d'une liste de logiciels déjà compilés avec les options les plus usuelles.
- Les logiciels portés : Dans le répertoire /usr/ports se trouve une liste de logiciels prêts à être compilés avec des configurations, les patchs et la gestion des dépendances.
Les Logiciels pré compilés sont rapides à installer. Cependant, pour une configuration mieux maitrisée, je préconise l'utilisation des logiciels portés (un peu plus long, mais on choisi les options de compilation et l'installation et plus appropriée au système sur lequel on compile. Un peu comme sur la Gentoo).
Pour les deux types d'installation, la liste des logiciel est la même (je croix... à vérifier).
- installer/désintaller un logiciel avec les logiciels pré-compilés
root@freebsd#pkg_add -r nom_du_logiciel (pour l'installation) root@freebsd#pkg_delete -r nom_du_logiciel (pour l'installation)
Pour faire une installation à partir des logiciels portés, la démarche est simple :
root@freebsd#cd /usr/ports root@freebsd#make search name=le_nom_du_logiciel (ou freshports) root@freebsd#cd destination_du_port root@freebsd#make (compilation du logiciel) root@freebsd#make install (installation du logiciel) root@freebsd#make clean (suppression des fichiers compilés) //Ces trois dernières commandes peuvent être groupées par #make install clean
nb : Cependant, il existe des outils qui facilite la gestion des logiciels portés. Regardez la partie suivante pour faire leur connaissance. ;)
[modifier] Les outils de management des ports
Tous les outils nécessaires pour gérer vos logiciels portés, vous pourrez les avoir avec portupgrade.
root@freebsd#cd /usr/ports/ports-mgmt/portupgrade root@freebsd#make install clean
Comme décris dans la description, ces deux commandes auront pour effet de vous procurer les outils suivants :
- portinstall: Helps you install new ports in a handy way.
- portcvsweb: Instantly lets you browse change history via CVSweb.
- portversion: Replaces pkg_version(1) and helps you upgrade packages with portupgrade(1). (runs much faster)
- portsclean: Cleans ports workdir's, unreferenced distfiles, old and orphan shared libraries, and stale packages.
- portsdb: Creates binary database from the ports INDEX.
- ports_glob: Expands ports globs.
- pkg_deinstall: Wraps pkg_delete(1) and provides additional features.
- pkg_fetch: Fetches packages from a remote site.
- pkg_glob: Expands package globs.
- pkg_which: Checks which package a file came from quickly.
- pkgdb: Manages and searches the package database.
[modifier] Mise a jour des ports (manuellement)
FreeBSD fonctionne avec un système de logiciels portés. On peut trouver un répertoire avec les sources pour compiler et installer les logiciels dont on a besoin (/usr/ports/).
Maintenant que l'on a un accés à internet, on va changer le type de média (plus le cd, mais un server FTP).
root@freebsd#sysinstall
- configure -> média -> FTP -> France (on confirme et voilà le travail)
Pour mettre a jour le répertoire /usr/ports il existe plusieurs méthodes (Cvsup et portsnap). Je préfère portsnap :
root@freebsd#portsnap fetch (un peu plus de 40MB à télécharger) root@freebsd#portsnap extract (uniquement la première foi pour construire l'arborescence) root@freebsd#portsnap fetch update
[modifier] Script de notification de mise à jour
Il est important d'avoir un système à jour. D'un part pour une question de sécurité, mais également pour bénéficier des corrections de bug et des nouvelles fonctionnalités. On pourrait facilement mettre le system a jour automatiquement, mais je préfère savoir ce que je mets à jour pour pouvoir éventuellement faire des opération de sauvegarde spécifique avant. Pour éviter d'aller voir si mon système est à jour, c'est lui qui me dira s'il ne l'est pas...
Un petit script a ajouter dans la crontab (quotidiennement est à mon avis nécessaire et suffisant) :
Attention, il est préférable pour ajouter un script dans les taches cron de placer ce dernier dans un répertoire périodique (/usr/local/etc/periodic/daily), plutôt que dans le fichier de configuration directement.
#!/bin/sh #script de listage des mises a jour possibles /usr/sbin/portsnap -I cron update /usr/local/sbin/portsdb -u echo "liste des mises a jour potentielles sur hannibal">/tmp/list_maj echo "------------------------------------------------">>/tmp/list_maj /usr/local/sbin/portversion -vL= >>/tmp/list_maj if [ `cat /tmp/list_maj|wc -l` -ne 2 ] then `cat /tmp/list_maj|mail -s "mise a jour" root` else echo "pas de mise a jour..." fi rm /tmp/list_maj
Et voilà, la liste des ports sera mise à jour quotidiennement sans intervention, mais dès qu'un des ports installé ne correspond plus à la version du logiciel porté, je m'envoies un mail. Ensuite, quand je reçois le mail de notification, utiliser la commande suivante :
root@freebsd#portupgrade -p nom_du_port
si il s'agit de plusieurs ports qui ne sont pas sensibles, cette commande fait tout :
root@freebsd#portupgrade -a