GNU/Linux >> Tutoriels Linux >  >> Linux

Gestion avancée des packages dans Kali Linux

L'Advanced Package Tool (APT) est la façon dont les programmes, les bibliothèques, la documentation et même le noyau lui-même sont installés et gérés sur Kali et d'autres dérivés basés sur Debian. APT fonctionne souvent si bien que de nombreux utilisateurs n'y prêtent aucune attention particulière, sauf peut-être pour rechercher et installer des programmes et (espérons-le) mettre à jour leur système régulièrement.

Pour la plupart des utilisateurs standard, utiliser APT de cette manière est parfaitement normal, mais nous aimons penser que les personnes qui utilisent Kali Linux ne sont pas des utilisateurs standard (dans le bon sens) et nous consacrons donc cet article à vous expliquer comment mieux utiliser d'APT et comment tirer parti du vaste écosystème de packages disponibles, tout en gardant votre système Kali stable et heureux.

Beaucoup de gens vous diront que vous ne devriez pas du tout vous fier à un gestionnaire de paquets et à la place, vous devriez tout compiler à partir de zéro car vous en apprendrez plus de cette façon. Bien qu'il soit certainement vrai que vous apprendrez beaucoup, surtout au début, tout construire à la main deviendra rapidement ennuyeux lorsque vous passerez votre temps à pirater ou à apprendre quelque chose de nouveau, de préférence les deux.

Dans cet article, nous vous montrerons comment vous pouvez ajouter en toute sécurité des référentiels de packages supplémentaires à votre installation Kali, comment les mettre à niveau et les rétrograder, et comment vous assurer que tous ces référentiels vivent en harmonie. APT est très puissant et évaluera les packages disponibles de toutes les sources dans leur ensemble lorsqu'il formulera ses solutions.

Ajout de sources de paquets à Kali Linux

Si vous voulez rendre votre futur moi heureux, vous ne devez pas modifier directement /etc/apt/sources.list directement. Pour chaque nouveau dépôt de paquets que vous ajoutez à votre système, créez un nouveau fichier avec un nom descriptif (comme debian-unstable.list ) sous /etc/apt/sources.list.d/ . En laissant l'original sources.list fichier intact, si Kali a besoin de le mettre à jour, il ne vous interrompra pas pendant la mise à jour, vous demandant quelle version du fichier conserver.

Dans cet article, nous allons ajouter le dépôt Kali Bleeding-Edge et les dépôts Debian Unstable et Experimental.

Le référentiel kali-bleeding-edge

Le référentiel kali-bleeding-edge contient un certain nombre d'outils qui sont très populaires et changent très fréquemment (voire quotidiennement). Il serait peu pratique et fastidieux de créer et de tester manuellement des packages mis à jour afin que les packages de ce référentiel soient générés automatiquement chaque fois que la source en amont change. Du côté positif, cela signifie que vous n'êtes jamais en retard de plus de 24 heures sur le projet en amont, mais du côté négatif, ces packages ne sont pas testés, vous devez donc être conscient que les packages de ce référentiel peuvent se casser de temps en temps.

Vous pouvez ajouter le référentiel et mettre à jour la liste des packages disponibles comme suit.

echo "deb http://http.kali.org/kali kali-bleeding-edge main contrib non-free" > /etc/apt/sources.list.d/bleeding-edge.list
apt update

Pour installer un package à partir de kali-bleeding-edge, vous devez ajouter le nom du référentiel au nom du package :

apt install dnsrecon/kali-bleeding-edge

Heureusement, APT facilite la rétrogradation vers la version kali-rolling d'un package particulier à tout moment, il n'est donc pas nécessaire de craindre les packages dans le référentiel kali-bleeding-edge. Si vous constatez qu'un paquet est cassé dans kali-bleeding-edge, vous pouvez revenir à la version kali-rolling de la même manière :

apt install dnsrecon/kali-rolling

Les dépôts Debian Unstable et Experimental

Kali Linux est un dérivé de Debian Testing, qui a un logiciel plus à jour que Debian Stable. Pour les logiciels encore plus récents, il existe la distribution Debian Unstable, qui est une version de développement continu de Debian, contenant les packages les plus récents. Lorsque vous rencontrez un bogue dans un paquet Debian, il peut y avoir une version corrigée dans le référentiel Debian Unstable, c'est donc une bonne idée de l'ajouter à votre système Kali. Comme avec kali-bleeding-edge, les paquets dans Unstable peuvent casser de temps en temps.

Debian Experimental est encore un autre dépôt qui contient des paquets en cours de développement. Les paquets de ce dépôt sont très récents mais peuvent aussi être très bogués, plus que kali-bleeding-edge ou Debian Unstable. APT n'installera les packages de ce référentiel que si vous les demandez explicitement et vous pouvez toujours rétrograder si les choses ne fonctionnent pas.

echo "deb http://ftp.debian.org/debian unstable main contrib non-free" > /etc/apt/sources.list.d/debian.list
echo "deb http://deb.debian.org/debian experimental main" >> /etc/apt/sources.list.d/debian.list
apt update

Comme pour les packages kali-bleeding-edge, si vous souhaitez installer des packages à partir d'unstable ou d'expérimental, ajoutez le nom du référentiel à la fin du nom du package, comme indiqué ci-dessous.

[email protected]:~# apt install socat/experimental netperf/unstable
Reading package lists... Done
Building dependency tree
Reading state information... Done
Selected version '2.0.0~beta9-1' (Debian:experimental [amd64]) for 'socat'
Selected version '2.6.0-2.1' (kali-rolling, Debian:unstable [amd64]) for 'netperf'
The following NEW packages will be installed:
  netperf
The following packages will be upgraded:
  socat
1 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 909 kB of archives.
After this operation, 1,127 kB of additional disk space will be used.
Get:1 http://kali.mirror.globo.tech/kali kali-rolling/non-free amd64 netperf amd64 2.6.0-2.1 [544 kB]
Get:2 http://deb.debian.org/debian experimental/main amd64 socat amd64 2.0.0~beta9-1 [365 kB]
Fetched 909 kB in 1s (555 kB/s)
Reading changelogs... Done
apt-listchanges: Mailing root: apt-listchanges: news for kali
Selecting previously unselected package netperf.
(Reading database ... 287650 files and directories currently installed.)
Preparing to unpack .../netperf_2.6.0-2.1_amd64.deb ...
Unpacking netperf (2.6.0-2.1) ...
Preparing to unpack .../socat_2.0.0~beta9-1_amd64.deb ...
Unpacking socat (2.0.0~beta9-1) over (1.7.3.2-1) ...
Setting up socat (2.0.0~beta9-1) ...
Processing triggers for systemd (234-3) ...
Processing triggers for man-db (2.7.6.1-2) ...
Setting up netperf (2.6.0-2.1) ...
update-rc.d: We have no instructions for the netperf init script.
update-rc.d: It looks like a network service, we disable it.
Processing triggers for systemd (234-3) ...

Déterminer les priorités des packages

Afin de déterminer quels packages sont installés, APT a des priorités attribué à toutes les sources de paquetage, le numéro de priorité le plus élevé ayant priorité. Un paquet avec une priorité de 0 ne sera jamais installé et un paquet avec une priorité supérieure à 1000 sera toujours installé, même si cela implique de rétrograder le package.

C'est bien beau pour APT mais comment pouvez-vous, l'utilisateur, voir quelle est la priorité d'un paquet donné ? Entrez la commande peu connue "apt-cache" et son option "policy", qui affiche tous vos référentiels configurés et leurs priorités.

[email protected]:~# apt-cache policy
Package files:
 100 /var/lib/dpkg/status
     release a=now
   1 http://deb.debian.org/debian experimental/main amd64 Packages
     release o=Debian,a=experimental,n=experimental,l=Debian,c=main,b=amd64
     origin deb.debian.org
 500 http://ftp.debian.org/debian unstable/non-free amd64 Packages
     release o=Debian,a=unstable,n=sid,l=Debian,c=non-free,b=amd64
     origin ftp.debian.org
 500 http://ftp.debian.org/debian unstable/contrib amd64 Packages
     release o=Debian,a=unstable,n=sid,l=Debian,c=contrib,b=amd64
     origin ftp.debian.org
 500 http://ftp.debian.org/debian unstable/main amd64 Packages
     release o=Debian,a=unstable,n=sid,l=Debian,c=main,b=amd64
     origin ftp.debian.org
 100 http://http.kali.org/kali kali-bleeding-edge/main amd64 Packages
     release o=Kali,n=kali-bleeding-edge,c=main,b=amd64
     origin http.kali.org
 990 http://http.kali.org/kali kali-rolling/contrib amd64 Packages
     release o=Kali,a=kali-rolling,n=kali-rolling,c=contrib,b=amd64
     origin http.kali.org
 990 http://http.kali.org/kali kali-rolling/non-free amd64 Packages
     release o=Kali,a=kali-rolling,n=kali-rolling,c=non-free,b=amd64
     origin http.kali.org
 990 http://http.kali.org/kali kali-rolling/main amd64 Packages
     release o=Kali,a=kali-rolling,n=kali-rolling,c=main,b=amd64
     origin http.kali.org
Pinned packages:

Vous remarquerez que kali-rolling, en tant que distribution par défaut, a la priorité la plus élevée à 990, ce qui signifie que ses paquets ont priorité sur tous les autres (ce que vous voulez en tant qu'utilisateur de Kali), suivi de Debian unstable à 500, kali-bleeding -edge à 100, et enfin expérimental, avec une faible priorité de 1. Pour voir comment ces priorités s'appliquent à un paquet donné, jetez un œil à sqlmap.

[email protected]:~# apt-cache policy sqlmap
sqlmap:
  Installed: 1.1.9-1
  Candidate: 1.1.9-1
  Version table:
     1.1.9+0~git1505273832.7de63a-1 100
        100 http://http.kali.org/kali kali-bleeding-edge/main amd64 Packages
 *** 1.1.9-1 990
        990 http://http.kali.org/kali kali-rolling/main amd64 Packages
        500 http://ftp.debian.org/debian unstable/main amd64 Packages
        100 /var/lib/dpkg/status

Même si la version de sqlmap dans kali-bleeding-edge est plus récente, elle ne sera pas installée car elle n'a qu'une priorité de 100, par rapport à la version installée, qui a une priorité de 990. C'est pour cette raison que lorsque vous voulez pour installer un package à partir d'un référentiel de packages différent, il doit être demandé explicitement.

[email protected]:~# apt install sqlmap/kali-bleeding-edge
Reading package lists... Done
Building dependency tree
Reading state information... Done
Selected version '1.1.9+0~git1505273832.7de63a-1' (http.kali.org [all]) for 'sqlmap'
The following packages will be upgraded:
  sqlmap
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 6,789 kB of archives.
After this operation, 2,048 B of additional disk space will be used.
Get:1 http://kali.mirror.globo.tech/kali kali-bleeding-edge/main amd64 sqlmap all 1.1.9+0~git1505273832.7de63a-1 [6,789 kB]
Fetched 6,789 kB in 5s (1,192 kB/s)
Reading changelogs... Done
(Reading database ... 287587 files and directories currently installed.)
Preparing to unpack .../sqlmap_1.1.9+0~git1505273832.7de63a-1_all.deb ...
Unpacking sqlmap (1.1.9+0~git1505273832.7de63a-1) over (1.1.9-1) ...
Setting up sqlmap (1.1.9+0~git1505273832.7de63a-1) ...
Processing triggers for man-db (2.7.6.1-2) ...

Configuration APT

Définition de la distribution par défaut

Maintenant que vous avez ajouté des référentiels supplémentaires à votre système, vous voudrez commencer à explorer et à installer de nouveaux packages, mais avant de le faire, c'est une bonne idée de dire à APT quelle est votre distribution par défaut est, qui pour les utilisateurs de Kali Linux, est "kali-rolling". De cette façon, votre système ne sera pas mis à niveau vers une autre distribution sans votre consentement. Configurez votre distribution par défaut en ajoutant "APT::Default-Release "kali-rolling" ;" vers /etc/apt/apt.conf.d/local .

[email protected]:~# cat /etc/apt/apt.conf.d/local
APT::Default-Release "kali-rolling";

Avec votre distribution par défaut configurée, chaque fois que vous exécutez "apt full-upgrade", il appliquera la mise à niveau à kali-rolling, aidant à maintenir la stabilité de votre système.

Réduction des invites de mise à niveau

Si vous utilisez un dérivé de Debian pendant une durée significative, vous rencontrerez une invite lors de l'exécution de "apt upgrade" vous demandant un fichier de configuration et si vous souhaitez conserver la version locale, utiliser la nouvelle version ou les comparer. Le plus souvent, vous vous retrouverez à accepter la valeur par défaut, ce qui rendra ces interruptions inutiles.

Vous pouvez éviter ces invites en mettant à jour votre /etc/apt/apt.conf.d/local fichier avec 'DPkg::options { "-force-confdef" ; "-forcer-confondre" ; }' comme indiqué ci-dessous. Cette ligne indique à APT d'essayer de choisir par lui-même si les fichiers n'ont pas changé (–force-confdef) et si les fichiers sont différents, de conserver la version existante (–force-confold).

[email protected]:~# cat /etc/apt/apt.conf.d/local
DPkg::options { "--force-confdef"; "--force-confold"; }
APT::Default-Release "kali-rolling";

Épingler les versions de paquet

Parfois, vous trouverez une application qui nécessite une version spécifique d'un package particulier et qui ne fonctionnera avec aucune autre. D'autres fois, une mise à jour d'un package peut affecter négativement d'autres outils. Cela nous est arrivé récemment avec une mise à jour du package devscripts, qui nous empêchait de créer des packages Kali.

Heureusement, APT vous permet d'épingler un package à une version particulière en définissant sa priorité sur 1001 dans /etc/apt/preferences . Par exemple, pour indiquer à APT de conserver le paquet devscripts à la version 2.16.x, vous devez ajouter ce qui suit.

Package: devscripts
Pin: version 2.16.*
Pin-Priority: 1001

Ressources supplémentaires

Dans cet article, nous n'avons pu qu'effleurer la façon dont vous pouvez étendre APT bien au-delà de l'écosystème Kali ou Debian par défaut. Les algorithmes de résolution sont très efficaces et les problèmes sont rares, vous n'avez donc pas à craindre d'explorer d'autres référentiels. Pour en savoir plus sur APT et sur la façon de le plier à votre volonté, nous vous encourageons à vous référer à Kali Linux Revealed et au manuel de l'administrateur Debian, qui contiennent tous deux une mine d'informations, de conseils et d'astuces.


Linux
  1. Gestion des packages Linux avec apt

  2. Utilisation d'AppImage pour la gestion des packages Linux

  3. Comment installer des packages à partir d'un référentiel spécifique sous Linux

  4. Comment répertorier les packages installés à partir d'un certain référentiel sous Linux

  5. Linux - Référentiel Kali Rolling Vs Kali Sana?

Kali Linux contre Parrot

Kali Linux - Échec de la récupération d'InRelease - Correctif du référentiel

Comment ajouter un référentiel à Debian

Comment convertir des packages Linux avec Alien

Gestion des packages Linux avec YUM et RPM

Comment répertorier les packages installés sous Linux à l'aide de la gestion des packages