![]() |
|
ForumTue May 16 07:13:40 2023 UTC Aide: Je débuteThierry ![]() Mon May 15 11:26:47 2023 UTC Aide: Je débutecebd ![]() Mon May 15 09:23:31 2023 UTC Aide: Je débuteThierry ![]() Mon May 15 07:41:26 2023 UTC Aide: Je débutecebd ![]() Sun May 14 11:13:15 2023 UTC Aide: Je débuteThierry ![]() Sun May 14 10:26:31 2023 UTC Aide: Je débutecebd ![]() Sun May 14 09:55:53 2023 UTC Aide: Je débuteThierry ![]() Sun May 14 09:13:39 2023 UTC Aide: Je débutecebd ![]() Sat Feb 18 19:01:06 2023 UTC Généralitées: NuTyXThierry ![]() Fri Jan 6 21:21:32 2023 UTC Aide: Matérielcotaky ![]() |
Sun Mar 15 15:38:45 2020 UTC Compiler dans un environnement isoléSommaireIntroductionCet article vous explique chaque étape pour la compilation de paquets dans une chroot.
Ce tutoriel est désormais déprecié, il est vivement recommender de suivre ce tutoriel
Ajuster /etc/cards.confPour pouvoir installer les paquets compilés dans votre chroot, vous devez ajuster votre fichier /etc/cards.conf. Vous y ajouez en haut de celui-ci: dir /mnt/hd/usr/ports/perso Vous êtes maintenant prêt pour installer et configurer votre chroot. Installation de la chroot
VERSION="rolling" install-nutyx Entrer dans la chroot
install-nutyx -ec
A partir de maintenant, tout ce que vous allez faire, vous le faite dans votre environnement chroot isolé.
Installation des outils de développementL'installation par défaut est tout à fait adaptée donc un petit: get cards.devel Les fichiers de configuration/etc/cards.confcat >/etc/cards.conf << EOF dir /usr/ports/perso dir /usr/ports/gui dir /usr/ports/cli dir /usr/ports/base logdir /var/log/pkgbuild base /usr/ports/base EOF Un dossier contenant mes recettes personnelles est ajouté. Ce dossier ainsi que les collections ne doivent jamais être mis à jour par la commande cards sync. On ne spécifie donc aucune URL. Le dossier /var/log/pkgbuild contiendra les logs de compilation. Je n'ai pas besoin de spécifier les locales, elles seront toujours toutes installées. Le dossier /usr/ports/base définit le système de base lors de l'usage de la commande cards base -r. /etc/pkgmk.confcat > /etc/pkgmk.conf << EOF export CFLAGS="-O2 -pipe" export CXXFLAGS="\${CFLAGS}" case \${PKGMK_ARCH} in "x86_64"|"") export MAKEFLAGS="-j$(getconf _NPROCESSORS_ONLN)" ;; "i686") export MAKEFLAGS="-j$(getconf _NPROCESSORS_ONLN)" export CFLAGS="${CFLAGS} -m32" export CXXFLAGS="${CXXFLAGS} -m32" export LDFLAGS="${LDFLAGS} -m32" ;; *) echo "Unknown architecture selected! Exiting." exit 1 ;; esac PKGMK_SOURCE_DIR="/tmp" PKGMK_KEEP_SOURCES="yes" PKGMK_WORK_DIR="/tmp/work" PKGMK_IGNORE_REPO="no" PKGMK_IGNORE_COLLECTION="no" PKGMK_GROUPS=() PKGMK_LOCALES=() PKGMK_COMPRESS_PACKAGE="yes" PKGMK_COMPRESSION_MODE="xz" PKGMK_CLEAN="no" PKGMK_IGNORE_RUNTIMEDEPS="no" EOF Il est indispensable de vérifier toutes les variables nécessaires pour le bon fonctionnement du duo pkgmk/cards. Les sources sont stockées dans un dossier commun, je ne souhaite pas qu'elles soient effacées. Les binaires produits seront dans le format de compression xz. Je ne souhaite pas supprimer mes binaires produits une fois installés. Je souhaite que les dépendances soient ajoutées automatiquement dans le binaire. Synchronisation des binaires via rsyncCette opération consiste à rapatrier les paquets contenus dans les collections base, cli, et gui disponibles en binaires. Elle peut durer entre quelques minutes et quelques heures en fonction de votre connection.
Heureusement, cette opération n'est à faire qu'une fois
Il faut commencer par créer le dossier racine mkdir -p /usr/ports/perso On peut maintenant synchroniser l'ensemble des binaires: for i in base cli gui do rsync -avz --delete-after rsync://downloads.nutyx.org/nutyx/`uname -m`/rolling/$i/ \ /usr/ports/$i/ done
Allez peut-être boire un café, manger une pizza ou un bon paquet de frites
Compilation et installation de votre paquetVous commencez par créer le dossier dans lequel sera placé votre nouveau paquet. Appellons-le monpaquet (à adapter avec le nom réel) mkdir /usr/ports/perso/monpaquet On crée maintenant la recette (à adapter avec votre paquet réel): description="Mon premier paquet de la mort avec des dépendances" url="http://www.mon-premier-paquet.org/" packager="francis perrin" makedepends=(python gtk3 librsvg) name=monpaquet version=1.0.0 release=1 source=(${url}downloads/$name/$name-$version.tar.xz) build() { cd $name-$version ./configure --prefix=/usr make make DESTDIR=$PKG install } Il ne nous reste plus qu'à lancer la compilation et l'installation de notre paquet cards create -r monpaquet Je vous invite à consulter l'aide de cards pour comprendre le fonctionnement de cards create -r man cards ConclusionLes commandes à retenir sont: cards level cards base -r cards create -r |