mai
31

Dans cet article, nous allons voir comment mettre en place un dépôt de paquets.
Le but étant de compiler une fois pour toute un binaire pour le redistribuer sur d’autre serveur.

Création des paquets

La première chose à faire quand on souhaite mettre en place un serveur de dépôt de paquets compilés,
est de récupérer l’arborescence des ports.
Les ports sont présents sur le CD d’installation de FreeBSD.
Télécharger l’arborescence complète, environ 450 Mo, depuis l’un des serveurs de FreeBSD n’est pas chose correcte.
Le comportement à adopter est de récupérer l’arborescence des ports depuis un CD d’installation de FreeBSD,
et de la mettre à jour avec csup, par exemple.
De ce fait, la charge et la bande passante utilisées en seront soulagés pour les deux parties.

$ mount -t cd9660 /dev/acd0 /mnt
$ cd  /mnt/8.0-RELEASE/ports
$ ./install.sh
Extracting ports tarball into  /usr
$ mkdir /usr/ports/packages
$ cd /usr/ports
$ make search name=lsof-4
Port:     lsof-4.83B,4
Path:    /usr/ports/sysutils/lsof
Info:    Lists information  about open files (similar to fstat(1))
Maint:     ler@lerctr.org
B-deps:
R-deps:
WWW:     http://people.freebsd.org/~abe/

On remarque qu’aucune dépendance n’est requise pour installer ce port.
C’est ce que l’on appelle un logiciel racine car il ne dépend de personne et personne ne dépend de lui
pour fonctionner.

$ cd /usr/ports/sysutils/lsof
$ make  package
[...]
===>  Building package for lsof-4.83,5
Creating  package /usr/ports/packages/All/lsof-4.83,5.tbz
Registering  depends:.
Creating bzip'd tar ball in  '/usr/ports/packages/All/lsof-4.83,5.tbz'

Le paquet a été créé sur le serveur.
Nous verrons plus tard comment installer ce paquet depuis un serveur distant.

Avant cela, prenons le cas d’un binaire devant satisfaire des dépendances pour fonctionner.

$ cd /usr/ports
$ make search name=wget-1
Port:     wget-1.11.4_1
Path:    /usr/ports/ftp/wget
Info:    Retrieve files from  the Net via HTTP(S) and FTP
Maint:    vd@FreeBSD.org
B-deps:     gettext-0.17_1 gmake-3.81_3 libiconv-1.13.1 perl-5.8.9_3
R-deps:     gettext-0.17_1 libiconv-1.13.1
WWW:     http://www.gnu.org/software/wget/wget.html

On peut constater cette fois-ci, que des dépendances sont requises pour le binaire wget.
On peut les installer et créer les paquets comme précédement.
Mais dans le cas d’un logiciel lourd comme la suite Open Office le travail peut être fastidieux.
La commande make possède une option pour ça.

$ cd /usr/ports/ftp/wget
$ make  package-recursive
$ ls -l /usr/ports/packages/All/
total  17326
-rw-r--r--  1 root  wheel   2681372 Feb 22 18:38  gettext-0.17_1.tbz
-rw-r--r--  1 root  wheel    362264 Feb 22 18:37  gmake-3.81_3.tbz
-rw-r--r--  1 root  wheel   1500142 Feb 22 18:38  libiconv-1.13.1_1.tbz
-rw-r--r--  1 root  wheel    388047 Feb 22 18:38  libtool-2.2.6b.tbz
-rw-r--r--  1 root  wheel    127348 Feb 22 18:15  lsof-4.83,5.tbz
-rw-r--r--  1 root  wheel  12014727 Feb 22 18:37  perl-5.8.9_3.tbz
-rw-r--r--  1 root  wheel    510270 Feb 22 18:37  wget-1.12.tbz

Serveur NFS

Les binaires compilés seront partagés sur le réseau par le biais d’un serveur NFS.

Permettre l’activation du serveur NFS :

$ cat  /etc/rc.conf
[...]
nfs_server_enable=YES
rpcbind_enable=YES
mountd_flags="-r"
[...]

Liste des exports NFS :

$ cat  /etc/exports
/usr/ports/packages -ro -mapall=nobody  -network=192.168.150.0/24

Démarrage du serveur NFS :

$ /etc/rc.d/rpcbind  start
Starting rpcbind.
$ /etc/rc.d/nfsd start
Starting  mountd.
Starting nfsd.

Client NFS

Pas grand chose à faire de ce côté là, étant donné que le client est intégré dans FreeBSD.

Monter l’export :

$ mkdir -p  /usr/ports/packages
$ mount -t nfs 192.168.150.18:/usr/ports/packages  /usr/ports/packages

Installation d’un paquet

Maintenant que tout est en place, nous allons installer les deux binaires compilés précédement sur notre nouveau serveur.

Binaire lsof :

$ cd /usr/ports/packages/sysutils
$ pkg_add lsof-4.83,5.tbz
$  pkg_info
lsof-4.83,5         Lists information about open files (similar to  fstat(1))

Binaire wget :

$ cd /usr/ports/packages/www
$ pkg_add wget-1.12.tbz
$  pkg_info
gettext-0.17_1      GNU gettext package
libiconv-1.13.1_1   A  character set conversion library
lsof-4.83,5         Lists information about  open files (similar to fstat(1))
wget-1.12           Retrieve files from the  Net via HTTP(S) and FTP

On peut constater que les dépendances nécessaires au fonctionnement de wget sont présentes.

Il est à noter que lors de la création d’un paquet sur le serveur de dépot, l’installation du binaire et des ses dépendances est obligatoire.

Si vous avez des remarques ou juste pour dire un petit « merci », laissez un commentaire.

(0) Comments    Read More   
Poster un commentaire
Votre pseudo:
Votre e-mail:
Votre site:
Votre commentaire: