site
header
Rendez-vous sur Arrakis
Le site perso d'un hacker libriste curieux crêpophile et étourdi

Installer un nouveau logiciel sur OpenBSD

OpenBSD dispose de nombreux paquets, tous vérifiés et donc sécurisés.

Pour installer un paquet, on doit utiliser la commande "pkg_add". Par exemple, pour installer firefox :

# pkg_add ftp://ftp.fr.openbsd.org/pub/OpenBSD/5.9/packages/amd64/firefox

Avouez que ce n'est pas pratique de taper tout ça. On peut se simplifier la vie une bonne fois pour toute. Dans le fichier ~/.profile, ajoutez la ligne suivante :

export PKG_PATH=ftp://your.ftp.mirror/pub/OpenBSD/5.9/packages/`machine -a`/

Ou alors, on peut mettre la ligne suivante dans le fichier /etc/pkg.conf (merci fred):

installpath = http://ftp.fr.openbsd.org/pub/OpenBSD/%v/packages/%a

Maintenant, il suffit de lancer :

# pkg_add firefox

Et c'est tout, il saura trouver le paquet tout seul

Chercher et trouver un paquet
Vous pouvez consulter dans un navigateur la liste des paquets : http://ftp.fr.openbsd.org/pub/OpenBSD/5.9/packages/amd64/ .

Cependant, ce n'est pas très pratique. Je vous propose alors le script pkg_sch, qui va récupérer une fois pour toute la liste des paquets (mise à jour régulièrement). Il s'utilise ainsi :

pkg_sch paquet à  trouver
 #!/bin/sh
 #Search packages for openBSD
 
 HOSTNAME="ftp.openbsd.org"
 LOCATION="pub/OpenBSD/5.8/packages/amd64"
 PKGLIST=~/.pkg_list
 
 update_list() 
 {
     echo "update package list"
 ftp -n $HOSTNAME > $PKGLIST << EOF
 user anonymous  " "
 cd $LOCATION
 nlist
 bye
 EOF
 sed -i "s/.tgz//g" $PKGLIST
 }
 
 # update if necessary
 
 if [ ! -e $PKGLIST ]; then
     update_list
 elif [ $(($(date +%s) - $(stat --format=%Z ~/.pkg_list))) -gt 604800 ]; then
     update_list
 fi
 
 egrep "$@" $PKGLIST
 
 

Mon programme préféré n'est pas empaqueté
L'équipe d'OpenBSD n'a peut-être pas eu le temps d'empaqueter et vérifier la fiabilité de ce logiciel. Cela ne vous empêchera pas de l'installer, grâce aux système des ports. Il s'agit en réalité d'instructions simples qu'un programme va lire pour compiler et installer votre programme favori.

Si un port est en réalité déjà empaqueté, vous pouvez faire en sorte de le sélectionner directement en ajoutant la ligne suivante au fichier /etc/mk.conf :

FETCH_PACKAGES=yes

Pour récupérer la liste de ports, il faut lancer une fois pour toute les commande suivantes :

 $ cd /tmp
     $ ftp http://ftp.openbsd.org/pub/OpenBSD/$(uname -r)/ports.tar.gz
     $ ftp http://ftp.openbsd.org/pub/OpenBSD/$(uname -r)/SHA256.sig
     $ signify -Cp /etc/signify/openbsd-$(uname -r | cut -c 1,3)-base.pub -x SHA256.sig ports.tar.gz
     # cd /usr
     # tar xzf /tmp/ports.tar.gz

Pour chercher un port, on se déplace dans /usr/ports, puis on cherche le dossier du port souhaité. On peut utiliser "make search" ainsi :

$ cd /usr/ports
 $ make search key=rsnapshot

Une fois le port trouvé, déplacez-vous dans son dossier puis lancez "make install".

Référence

le 18/04/2016 à 10:26:53, Comète a dit :

Bonjour,

pour rechercher un paquet particulier sur les dépôts, nul besoin de script supplémentaire.

pkg_info -Q nomdupaquet

Pour lister les paquets installés:

pkg_info

Pour lister les fichiers contenus dans un paquet:

pkg_info -L nomdupaquet

le 18/04/2016 à 12:27:18, Thuban a dit :

@Comète : Bonjour et merci!
Comment ai-je pu passer à côté d'une telle évidence? Sais-tu si un cache est conservé? (j'ai l'impression que non)

le 18/04/2016 à 12:47:09, Comète a dit :

A ma connaissance non, pas de cache, cependant il y a un paquet nommé 'pkg_mgr' qui fait ça. Il repose sur une base sqlite il me semble. Jamais essayé...