snapshot
.
Poudriere
est un infrastructure de compilation permettant de construire ses propres paquets pour une ou plusieurs releases. Elle repose sur les jails.
Nous allons signé nos paquets à l'aide de l'utilitaire openssl
. Ce n'est pas une obligation mais nos utilisateurs seront sans doute plus rassurés.
openssl genpkey -algorithm RSA -out /usr/local/etc/ssl/rsa-key.pem -pkeyopt rsa_keygen_bits:4096
openssl pkey -in /usr/local/etc/ssl/rsa-key.pem -pubout -out /usr/local/etc/ssl/rsa-key.cert
Rien de plus simple, on installe la version déjà fournie pour notre système.
pkg install poudriere dialog4ports
Il faut éditer le fichier /usr/local/etc/poudriere.conf
. Ci dessous mes propres réglages, je n'utilise pas de système de fichiers ZFS.
C'est une configuration sans ZFS.
NO_ZFS=yes FREEBSD_HOST=http://ftp.fr.freebsd.org RESOLV_CONF=/etc/resolv.conf BASEFS=/usr/local/poudriere POUDRIERE_DATA=${BASEFS}/data USE_PORTLINT=yes USE_TMPFS=yes DISTFILES_CACHE=/usr/ports/distfiles SVN_HOST=svn.FreeBSD.org CHECK_CHANGED_OPTIONS=verbose CHECK_CHANGED_DEPS=yes PKG_REPO_SIGNING_KEY=/usr/local/etc/ssl/rsa-key.pem NOLINUX=yes NO_RESTRICTED=no
Explication concernant certaines variables :
http
, car mon pare-feu bloque les connexions vers les serveurs FTPNous avons besoin au minimum de deux jails :
Je préfère utiliser l'utilitaire svn
(devel/subversion
) au lieu de portsnap
1).
pkg install subversion ca_root_nss
poudriere ports -c -m svn+https -p HEAD
L'arbre des ports est désormais situé dans /usr/local/poudriere/ports/HEAD
.
Si l'on ne souhaite pas utiliser Subversion, voici la commande qui faut taper :
poudriere ports -c
Dans ce cas là, la jail s'appelle default. On la retrouvera dans /usr/local/poudriere/ports/default
.
<note>Quelques options à connaître
Pour lister toutes les jails relatives aux ports (créées avec l'option ports) :
poudriere ports -l
Pour supprimer une jail en particulier (créée avec l'option ports) :
poudriere ports -d default
</note>
poudriere jail -c -j amd64-102 -v 10.2-RELEASE -a amd64
Cela va créer une jail ayant comme nom amd64-102. Si notre système de base est une architecture amd64, on peut éventuellement préciser une autre architecture avec l'option -a.
Par exemple, si je veux contruire des ports pour l'architecture i386.
poudriere jail -c -j i386-93 -v 9.3-RELEASE -a i386
<note>Quelques options à connaître
Pour lister toutes nos jails (créées avec l'option jail) :
poudriere jail -l
Pour supprimer une jail en particulier (créée avec l'option jail) :
poudriere jail -d amd64-102
Dans ce cas là, je supprime la jail intitulée amd64-102.</note>
snapshot
.