GNU/Linux >> Znalost Linux >  >> Linux

Pokročilá správa balíčků v Kali Linuxu

Nástroj Advanced Package Tool (APT) je způsob instalace a správy programů, knihoven, dokumentace a dokonce i samotného jádra na Kali a dalších derivátech založených na Debianu. APT často funguje tak dobře, že mu mnoho uživatelů nevěnuje žádnou zvláštní pozornost kromě toho, že možná hledá a instaluje programy a (doufejme) pravidelně aktualizuje svůj systém.

Pro většinu standardních uživatelů je používání APT tímto způsobem naprosto normální, ale rádi si myslíme, že lidé, kteří používají Kali Linux, nejsou standardními uživateli (v dobrém slova smyslu), a proto věnujeme tento příspěvek tomu, abychom vám řekli, jak jej lépe používat. APT a jak využít široký ekosystém balíčků, které jsou k dispozici, a zároveň udržet váš systém Kali stabilní a šťastný.

Mnoho lidí vám řekne, že byste se vůbec neměli spoléhat na správce balíčků a místo toho byste měli vše zkompilovat od začátku, protože se tak dozvíte více. I když je jistě pravda, že se toho hodně naučíte, zvláště když začínáte, ruční stavění se rychle změní v nudu, kdy můžete trávit čas hackováním nebo učením se něčemu novému, nejlépe obojímu.

V tomto příspěvku vám ukážeme, jak můžete bezpečně přidat další úložiště balíčků do vaší instalace Kali, jak je upgradovat a downgradovat a jak zajistit, aby všechna tato úložiště fungovala v harmonii. APT je velmi výkonný a při formulování řešení vyhodnotí dostupné balíčky ze všech zdrojů jako celek.

Přidání zdrojů balíčků do Kali Linux

Pokud chcete svému budoucímu já udělat radost, neměli byste přímo upravovat /etc/apt/sources.list přímo. Pro každé nové úložiště balíčků, které přidáte do systému, vytvořte nový soubor s popisným názvem (např. debian-unstable.list ) pod /etc/apt/sources.list.d/ . Opuštěním původního sources.list soubor nedotčen, pokud jej Kali potřebuje aktualizovat, nebude vás během aktualizace vyrušovat a ptá se, kterou verzi souboru si má ponechat.

V tomto příspěvku přidáme úložiště Kali Bleeding-Edge a úložiště Debian Unstable a Experimental.

Úložiště kali-bleeding-edge

Úložiště kali-bleeding-edge obsahuje řadu nástrojů, které jsou velmi oblíbené a velmi často (i denně) se mění. Bylo by nepraktické a časově náročné ručně vytvářet a testovat aktualizované balíčky, takže balíčky v tomto úložišti jsou generovány automaticky, kdykoli se změní zdrojový kód. Na pozitivní straně to znamená, že nikdy nezostáváte více než 24 hodin za upstream projektem, ale na druhou stranu tyto balíčky nejsou testovány, takže si musíte být vědomi toho, že balíčky v tomto úložišti se mohou čas od času rozbít.

Můžete přidat repo a aktualizovat seznam dostupných balíčků následovně.

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

Chcete-li nainstalovat balíček z kali-bleeding-edge, musíte k názvu balíčku připojit název úložiště:

apt install dnsrecon/kali-bleeding-edge

Naštěstí APT umožňuje kdykoli snadno přejít zpět na kali-rolling verzi konkrétního balíčku, takže se nemusíte bát balíčků v úložišti kali-bleeding-edge. Pokud zjistíte, že je balíček rozbitý v kali-bleeding-edge, můžete se vrátit zpět k verzi kali-rolling stejným způsobem:

apt install dnsrecon/kali-rolling

Nestabilní a experimentální úložiště Debian

Kali Linux je derivátem Debian Testing, který má aktuálnější software než Debian Stable. Pro ještě novější software existuje distribuce Debian Unstable, což je průběžná vývojová verze Debianu, která obsahuje nejnovější balíčky. Když narazíte na chybu v balíčku Debianu, v úložišti Debian Unstable může být opravená verze, takže je dobré ji přidat do systému Kali. Stejně jako u kali-bleeding-edge mohou balíčky v Unstable čas od času prasknout.

Debian Experimental je další úložiště, které obsahuje balíčky, které jsou ve vývoji. Balíčky v tomto úložišti jsou velmi aktuální, ale mohou být také velmi chybné, více než kali-bleeding-edge nebo Debian Unstable. APT nainstaluje balíčky z tohoto úložiště pouze v případě, že o ně výslovně požádáte, a pokud něco nefunguje, můžete kdykoli přejít na nižší verzi.

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

Stejně jako u balíčků kali-bleeding-edge, pokud chcete instalovat balíčky z unstable nebo experimental, přidejte název úložiště na konec názvu balíčku, jak je uvedeno níže.

[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) ...

Určení priorit balíčku

Aby bylo možné určit, které balíčky se nainstalují, má APT priority přiřazeno pro všechny zdroje balíčků, přičemž přednost má číslo s nejvyšší prioritou. Balíček s prioritou 0 nebude nikdy nainstalován a balíček s prioritou nad 1000 se vždy nainstaluje, i když to znamená downgrade balíčku.

To vše je pro APT dobré a dobré, ale jak můžete vy, uživatel, vidět, jakou prioritu má daný balíček? Zadejte málo známý příkaz „apt-cache“ a jeho možnost „policy“, která zobrazí všechna vaše nakonfigurovaná úložiště a jejich priority.

[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:

Všimněte si, že kali-rolling jako výchozí distribuce má nejvyšší prioritu na 990, což znamená, že jeho balíčky mají přednost před všemi ostatními (což jako uživatel Kali chcete), následuje Debian nestabilní na 500, kali-bleeding -edge na 100 a konečně experimentální, s nízkou prioritou 1. Chcete-li vidět, jak se tyto priority vztahují na daný balíček, podívejte se na 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

I když je verze sqlmap v kali-bleeding-edge novější, nebude nainstalována, protože má prioritu pouze 100 oproti nainstalované verzi, která má prioritu 990. Z tohoto důvodu, když chcete Chcete-li nainstalovat balíček z jiného úložiště balíčků, musíte o to výslovně požádat.

[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) ...

Konfigurace APT

Nastavení výchozí distribuce

Nyní, když máte do systému přidána nějaká další úložiště, budete chtít začít prozkoumávat a instalovat nové balíčky, ale než to uděláte, je dobré sdělit APT, jakou máte výchozí distribuci je, což je pro uživatele Kali Linuxu „kali-rolling“. Tímto způsobem váš systém nebude upgradovat na jinou distribuci bez vašeho souhlasu. Nakonfigurujte svou výchozí distribuci přidáním „APT::Default-Release „kali-rolling“;“ na /etc/apt/apt.conf.d/local .

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

Když máte nakonfigurovanou výchozí distribuci, kdykoli spustíte „apt full-upgrade“, použije se upgrade na kali-rolling, což pomůže udržet váš systém stabilní.

Snížení počtu výzev k upgradu

Pokud používáte nějaký derivát Debianu po značnou dobu, narazíte při spuštění ‚apt upgrade‘ na výzvu s dotazem na konfigurační soubor a na to, zda si chcete ponechat místní verzi, použít novou verzi nebo je porovnat. Častěji se přistihnete, že přijmete výchozí nastavení, takže tato přerušení jsou zbytečná.

Těmto výzvám se můžete vyhnout aktualizací /etc/apt/apt.conf.d/local soubor s ‘DPkg::options { “–force-confdef”; „–force-confold“; }' Jak je ukázáno níže. Tento řádek říká APT, aby se pokusil vybrat sám, zda se soubory nezměnily (–force-confdef) a pokud se soubory liší, ponechat stávající verzi (–force-confold).

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

Připnutí verzí balíčků

Občas najdete nějakou aplikaci, která potřebuje konkrétní verzi konkrétního balíčku a nebude fungovat s žádnou jinou. Jindy může aktualizace jednoho balíčku nepříznivě ovlivnit ostatní nástroje. To se nám stalo nedávno s aktualizací balíčku devscripts, která nám bránila ve vytváření balíčků Kali.

Naštěstí vám APT umožňuje připnout balíček na konkrétní verzi nastavením jeho priority na 1001 v /etc/apt/preferences . Chcete-li například říci APT, aby podržel balíček devscripts ve verzi 2.16.x, přidali byste následující.

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

Další zdroje

V tomto příspěvku jsme byli schopni pouze poškrábat povrch toho, jak můžete rozšířit APT daleko za výchozí ekosystém Kali nebo Debian. Algoritmy řešiče jsou velmi efektivní a narazit na problémy je vzácné, takže se nemusíte bát prozkoumávat jiná úložiště. Chcete-li se dozvědět více o APT a o tom, jak jej přizpůsobit své vůli, doporučujeme vám nahlédnout do Kali Linux Revealed a The Debian Administrator’s Handbook, které obě obsahují spoustu informací, tipů a triků.


Linux
  1. Jak nainstalovat balíčky z konkrétního úložiště v Linuxu

  2. Jak vypsat nainstalované balíčky z určitého úložiště v Linuxu

  3. Linux – nainstalovat záhlaví na Kali?

  1. Správa balíků Linux pomocí apt

  2. 15 Příklady příkazů aptitude pro správu balíčků v Linuxu

  3. Podpora HTTPS úložiště Kali Linux

  1. Použití AppImage pro správu balíčků Linuxu

  2. Jak používat XBPS Package Manager na Void Linux

  3. Linux – úložiště Kali Rolling vs Kali Sana?