====== Installations de logiciels sous FreeBSD sous forme binaire ou par compilation ======
===== Installations de logiciels avec le gestionnaire de paquets binaire =====
À l'époque, **FreeBSD** intégrait les exécutables : **pkg_add**, **pkg_delete**, **pkg_info**, en autres (les outils de base pour les **BSD**), créés par **Jordan Hubbard**, exécutables qui ont finis par être retirés de la distribution, suite à l'adoption complète de **pkg** (**pkgng** pour //pkg new generation//) créé par **Baptiste Daroussin**. //pkg// est un gestionnaire de paquets en ligne de commande hyper complet. Les **paquets** de //pkg// sont compressés avec l'outil de compression nommé **XZ Utils** (''fichier.tar.xz''), de plus en plus utilisé sous **Unix** en lieu et place de **gzip** et **bzip2**.
==== Commandes à exécuter en utilisateur root ====
=== Commencer par installer le vrai pkg ===
L'exécutable **pkg** présent dans ''/usr/sbin/'' n'est pas réellement le gestionnaire de paquets **pkg**, c'est juste un utilitaire pour installer le vrai //pkg//, installé dans ''/usr/local/sbin''.
pkgsuite à cela, il est proposé d'installer //pkg//, répondez par l'affirmative ''y'' et ''validez''.
=== Installer un ou plusieurs Logiciels ===
pkg install nom_du_logicielinstalle un logiciel et toutes ses dépendances, valider par ''y'' (''yes'') via les dépôts de FreeBSD, avec l'option ''install'' vous pouvez également installer un paquet ''localement'' (hors dépôts). Pour installer plusieurs logiciels :
pkg install nom_du_logiciel nom_du_logiciel2 nom_du_logiciel3
Pour installer un logiciel sans //confirmation// de la part de l'utilisateur :
pkg install -y nom_du_logiciel
ou en version longue :
pkg install --yes nom_du_logicielpermet d'installer des logiciels sans //confirmation//, cette //sous-option// est disponible pour la plupart des //options// de **pkg**.
=== Supprimer un ou plusieurs logiciels ===
pkg delete nom_du_logicielsupprime un logiciel et ses dépendances. Pour faire de même avec plusieurs logiciels :
pkg delete nom_du_logiciel nom_du_logiciel2 nom_du_logiciel3supprime plusieurs logiciels et leurs dépendances.\\
Vous pouvez également supprimer des logiciels avec cette //option// :
pkg remove nom_du_logiciel nom_du_logiciel2 nom_du_logiciel3cette //option// de commande a exactement le même effet que l' //option// ''delete''.
=== Supprimer des paquets orphelins ===
pkg autoremovepermet de //supprimer// en autres les //dépendances// de paquets inutilisés.
=== Téléchargement de paquet logiciel ===
pkg fetch nom_du_logicielle paquet logiciel //télécharger// se retrouve dans le //cache// de pkg par défaut, ici ''/var/cache/pkg''.
pkg fetch -d -o /home/user/paquets/ nom_du_logiciel permet de //télécharger// un logiciels et tous ses dépendances (sous-option ''-d'') et dans un répertoire spécifique avec la sous-option ''-o'' suivi du //chemin du répertoire//.
=== Verrouillage et déverrouillage de paquets ===
pkg lock nom_du_logicielpermet de //vérouillier// un **paquet** pour qu'il reste dans sa version (évite la ''modification'', la ''mise à jour'', ''réinstallation'' ou même la ''suppression'' du paquet).
pkg unlock nom_du_logiciel permet de ''déverrouiller'' un paquet verrouillé.
=== Pour mettre à jour ou à niveau les logiciels tiers ===
pkg updatepermet de mettre à jour les //dépôts// indiqué dans le fichier ''/etc/pkg/FreeBSD.conf''.
pkg upgradepermet de faire la //mise à jour// ou à //niveau// de tous les logiciels tiers et leurs dépendances.
==== Commandes qui peuvent être exécutée en utilisateur non-privilégié ====
=== Pour connaître les options disponbibles sous pkg ===
pkg helppermet d'avoir la liste des ''options'' du gestionnaire de paquets //pkg// et une courte ''description'' de celle-ci.
pkg help installpermet d'avoir une ''description'' complète de l'option ''install'' de la commande //pkg//, toutes les options de pkg ont leurs descriptions.
man pkg-installpermet exactement la même chose que la commande précédente. Pour des infos sur d'autres options, ''man pkg-delete'', ''man pkg-fetch'', ''man pkg-upgrade'',...
=== Rechercher un logiciels ===
pkg search nom_du_logicielrecherche le logiciel par rapport à son ''nom''.
pkg search --description nom_du_logicielrecherche complète d'un logiciel en rapport à son ''nom'' et sa ''description''.
=== Pour avoir des infos sur un logiciel ===
pkg info nom_du_logicielpermet d'avoir les ''informations'' du logiciel tel que sa ''description'' et ses ''dépendances'', en autres.
pkg info -l nom_du_logiciel
ou version longue :
pkg info --list-files nom_du_logicielpermet d' ''afficher'' tous les fichiers contenus dans le paquet logiciel.
pkg prime-listpermet d'avoir la ''liste'' des paquets qui n'ont pas été installés ''automatiquement'' mais ''explicitement'' (sans avoir été installés comme **dépendances** d'un **paquet**). Exemple : **clamav** sans avoir installé son **interface graphique** nommé **clamtk** au préalable.
pkg prime-originsrenvoie la même ''liste'' que la **commande** précédente mais en indiquant où se situe les **paquets** dans le **catalogue des logiciels portés**.
=== Audit de sécurité sur un ou des paquets ===
pkg audit -Fpermet de faire un **audit de sécurité** général.
pkg audit nom_du_logicielpermet un **audit de sécurité** sur un **paquets** spécifique.
==== Dépôts du gestionnaire de paquets pkg ====
Sous FreeBSD, il y a par défaut 2 branches de **dépôts** différents, qui sont :
* le dépôt **Quarterly**, qui est plutôt axé sur la stabilité des paquets qu'il s'y trouvent, les mises à jour sont peu régulières et sont surtout des mises à jour de sécurité. Cette branche est a privilégié pour les serveurs ou les postes de travail ayant besoins d'une grande stabilité aux niveaux des //logiciels tiers//.
* le dépôt **Latest**, qui contient les dernières versions des logiciels tiers, cette branche à de ce fait énormément de mises à jour et mises à niveau (monté de version des logiciels). Ce dépôt permet d'avoir l'équivalent d'une **Arch Linux** mais avec la base stable des logiciels par défauts de FreeBSD, c'est donc la branche à privilégier pour ceux qui veulent les tous derniers logiciels et innovations.
Par défaut le fichier où se trouve le //dépôt// FreeBSD est :
/etc/pkg/FreeBSD.confle dépôt par défaut est le dépôt //Quarterly//.
Pour passer au dépôt //Latest//, vous devez en **root** :
* Créer le //répertoire// ''pkg'' puis son //sous-répertoire// ''repos'' dans ''/usr/local/etc'' : mkdir -p /usr/local/etc/pkg/repos
* Puis créer le fichier ''FreeBSD.conf'', en y ajoutant le dépôt //Latest// : echo 'FreeBSD: { url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest" }' > /usr/local/etc/pkg/repos/FreeBSD.conf
et enfin : pkg update -f
pour mettre à jour le nouveau dépôt.
===== Installations de logiciels avec le catalogue de logiciels portés (compilation) =====
Pour gérer le **catalogue de logiciels portés**, il est désormais recommandé d'utiliser le **logiciel** **Git** qui est un **gestionnaire de versions décentralisé** et qui permet de ''télécharger'' les **ports** de **FreeBSD**, en ce qui concerne la **compilation** à proprement parler l'**utilitaire** en **console** nommé **make** (dispnible sur tous les **Unix**), qui est très complet sous **FreeBSD**.
==== En root ====
=== Commencez par installer et utiliser Git ===
pkg install gitinstalle **Git** qui va permettre de ''télécharger'' le **catalogue de logiciels portés** aussi appelé **collection de ports**.
git clone --depth 1 https://git.FreeBSD.org/ports.git /usr/ports''télécharge'' les **ports logiciels** et son placés dans ''/usr/ports'' par convention.
git -C /usr/ports pullpermet de ''mettre à jour'' le **catalogue de logiciels portés**.
=== Installer un logiciel via la collection de ports ===
find /usr/ports/ -name "weechat*"la **commande** **find** est la **commande** par défaut pour la ''recherche'' de **fichiers**, **répertoire**,..., dans se cas je ''recherche'' le **logiciel** **WeeChat** pour savoir où il se trouve dans les **ports**.
cd /usr/ports/irc/weechatpermet de rendre dans le **répertoire** du **logiciel porté**.
make install cleanpermet d' ''installer'' le **logiciel** **WeeChat**. La **commande** **make** seul permet de **compiler** le **logiciel** (**make** seul peut-être utilisé en tant qu'**utilisateur** ''non privilégié'') , l' ''option'' **install** permet d' ''installer'' le **logiciel** dans ''/usr/local/bin'' et l' ''option'' **clean** nettoie le **port** de toute **compilation**