Table des matières
PKGIN, MAKE & PKGSRC
PKGIN utilisation des binaires
Destination locale des paquets téléchargés
Lorsque pkgin install est invoqué, la commande se rend sur le dépôt mentionné dans le fichier de configuration /usr/pkg/etc/pkgin/repositories.conf, prend le paquet demandé en format .tar.gz ainsi que les paquets pour les dépendances si besoin puis va ensuite les placer dans la destination : /var/db/pkgin/cache/ , les décompressent puis les installes.
Ou récupérer les binaires ?
nano /usr/pkg/etc/pkgin/repositories.conf http://ftp.NetBSD.org/pub/pkgsrc/packages/NetBSD/i386/7.0.2/All
Mettre à jour pkgin
pkgin update processing remote summary (http://ftp.NetBSD.org/pub/pkgsrc/packages/NetBSD/i386/7.0.2/All)... database for http://ftp.NetBSD.org/pub/pkgsrc/packages/NetBSD/i386/7.0.2/All is up-to-date
Installer un paquet
man pkgin pour le manuel pkgin install pkgin update pkgin remove pkgin list etc ...
Supprimer automatiquement les paquets inutiles
pkgin autoremove
Configuration de MAKE
En utilisant PKGSRC on va devoir compiler les sources, cela signifie qu'il faut régler mk.conf pour make afin de pouvoir gagner en puissance CPU lors de la compilation
cp /usr/pkgsrc/mk/defaults/mk.conf /etc/ vi /etc/mk.conf MAKE_JOBS= 2 (si vous avez un dual-core)
PKGSRC utilisation de l'arbre des sources
PKGRC
The pkgsrc guide - Documentation on the NetBSD packages system
portable package build system - pkgsrc.org
pkgsrc.se
Rechercher un package sur pkgs.org
Chemin de récupération
cd /usr/
Récupération de l'arbre
ftp ftp://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc.tar.bz2 OU ftp ftp://ftp.NetBSD.org/pub/pkgsrc/current/pkgsrc.tar.bz2
Décompression de l'arbre pkgsrc
tar xvjf pkgsrc.tar.bz2
Cela va créer le répertoire /usr/pkgsrc/
Maintenir l'arbre des ports à jour
- via FTP :
ftp ftp://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc.tar.bz2 OU ftp ftp://ftp.NetBSD.org/pub/pkgsrc/current/pkgsrc.tar.bz2
- via CVS :
export CVS_RSH=ssh export CVSROOT=anoncvs@anoncvs.NetBSD.org:/cvsroot cd /usr/pkgsrc cvs update -A -dP
- via CSUP :
ftp ftp://ftp.fr.netbsd.org/pub/pkgsrc/packages/NetBSD/i386/7.0_2016Q4/All/csup-20070216.tgz pkg_add csup-20070216.tgz
Test de récupération en suivant ce lien
https://www.netbsd.org/docs/guide/en/chap-fetch.html#chap-fetch-cvs-netbsd-release
cd /usr/ export CVSROOT="anoncvs@anoncvs.NetBSD.org:/cvsroot" export CVS_RSH="ssh" cvs checkout -r netbsd-7-1-2-RELEASE -P src
Pour la version current
cd /usr && cvs -q -z2 -d anoncvs@anoncvs.NetBSD.org:/cvsroot checkout -P pkgsrc
Il y a aussi ce tuto en français Installation de NetBSD-current
Compiler, installer et désinstaller un package
Desination du fichier créé au format .tar.bz ou .tar.bz2
/usr/pkgsrc/distfiles/
Vérifier les vulnérabilités avant
/usr/pkg/sbin/pkg_admin -K /var/db/pkg fetch-pkg-vulnerabilities
Compiler
cd /usr/pkgsrc/www/apache24 make
Que va faire cette commande ?
- Contrôler les vulnérabilités pour le paquet
- créer un fichier au format .tar.bz2 à destination de /usr/pkgsrc/distfiles/
- vérifier 3 checksum différents SHA1, RMD160, SHA512
- installer les dépendances
Si il trouve une vulnérabilité ?
Checking for vulnerabilities in php-7.1.31 Package php-7.1.31 has a denial-of-service vulnerability, see https://nvd.nist.gov/vuln/detail/CVE-2017-8923 Package php-7.1.31 has a denial-of-service vulnerability, see https://nvd.nist.gov/vuln/detail/CVE-2017-9119 Package php-7.1.31 has a out-of-bounds-read vulnerability, see https://nvd.nist.gov/vuln/detail/CVE-2017-9118 Package php-7.1.31 has a denial-of-service vulnerability, see https://nvd.nist.gov/vuln/detail/CVE-2018-19396 Package php-7.1.31 has a denial-of-service vulnerability, see https://nvd.nist.gov/vuln/detail/CVE-2018-19396 Package php-7.1.31 has a denial-of-service vulnerability, see https://nvd.nist.gov/vuln/detail/CVE-2018-19396 Package php-7.1.31 has a security-bypass vulnerability, see https://seclists.org/bugtraq/2019/May/52 ERROR: Define ALLOW_VULNERABLE_PACKAGES in mk.conf or IGNORE_URL in pkg_install.conf(5) if this package is absolutely essential. *** Error code 1 Stop. make: stopped in /usr/pkgsrc/www/ap-php
On remarque clairement que ce paquet contient une vulnérabilité qui déclenche un denial-of-service, bref sensible à une attaque de type DoS attack!
Mais on a absolument besoin d'installer ce paquet donc on contourne la sécurité comme ceci soit :
- en vérifiant s'il n'y a pas de dossiers patches
- en effectuant make update
- en modifiant /etc/mk.conf comme ceci
vi /etc/mk.conf Allow_vulnerable_packages= yes
Si il trouve des erreurs de fichier, de répertoires, etc … ?
- lire le code erreur
- souvent il suffit de créer un fichier ou répertoire là ou il le demande
- internet est notre ami

Si il trouve qu'une version est déjà installée
- soit le paquet est installé par les dépôt et fait conflit
- soit le paquet à été désinstallé par les dépôts mais il y a toujours des reste
Mettre le paquet à jour
make update
Installer
cd /usr/pkgsrc/www/apache24 make install
L'installation du paquet sur le système peut nécessiter d'être root.
Cependant, pkgsrc a une fonctionnalité «juste-à-temps-su», qui permet de ne devenir root que pour l'étape d'installation proprement dite.
PKGSRC va invoquer la commande pkg_add install lui permettant d'installer le paquet fraichement construit.
Nettoyer
cd /usr/pkgsrc/www/apache24 make clean
Pour supprimer les fichiers compilés du répertoire de travail, on n'aura plus besoin de les utiliser. Si d'autres packages ont également été ajoutés sur le système (dépendances) pour permettre à votre programme de compiler, on peut également les ranger avec la commande suivante:
cd /usr/pkgsrc/www/apache24 make clean-depends
