GNU/Linux >> Linux の 問題 >  >> Linux

Kali Linux の高度なパッケージ管理

Advanced Package Tool (APT) は、プログラム、ライブラリ、ドキュメント、さらにはカーネル自体を Kali やその他の Debian ベースの派生物にインストールして管理する方法です。多くの場合、APT は非常にうまく機能するため、多くのユーザーは、おそらくプログラムを検索してインストールし、(できれば) システムを定期的に更新する以外に特に注意を払うことはありません.

ほとんどの標準ユーザーにとって、このように APT を使用することは完全に正常ですが、Kali Linux を使用する人々は (良い意味で) 標準ユーザーではないと考えたいため、この投稿を使用してより適切に使用する方法を説明することに専念しています。 APT の概要と、Kali システムの安定性と満足度を維持しながら、利用可能なパッケージの幅広いエコシステムを活用する方法について説明します。

多くの人は、パッケージ マネージャーにまったく依存するべきではなく、代わりにすべてをゼロからコンパイルする必要があると言うでしょう。多くのことを学ぶことは確かに真実ですが、特に最初はすべてを手作業で構築することは、ハッキングや新しいことの学習、できれば両方に時間を費やすことができる場合、すぐに退屈になります。

この投稿では、追加のパッケージ リポジトリを Kali インストールに安全に追加する方法、それらをアップグレードおよびダウングレードする方法、およびこれらすべてのリポジトリが調和して動作するようにする方法を紹介します。 APT は非常に強力で、ソリューションを策定する際に、すべてのソースから利用可能なパッケージをまとめて評価します。

Kali Linux へのパッケージ ソースの追加

将来の自分を幸せにしたい場合は、/etc/apt/sources.list を直接編集しないでください。 直接。システムに追加する新しいパッケージ リポジトリごとに、わかりやすい名前の新しいファイルを作成します (debian-unstable.list など)。 ) /etc/apt/sources.list.d/ の下 .元の sources.list を残す Kali が更新する必要がある場合、Kali は更新中にユーザーを中断せず、ファイルのどのバージョンを維持するかを尋ねます。

この投稿では、Kali Bleeding-Edge リポジトリと Debian Unstable および Experimental リポジトリを追加します。

kali-bleeding-edge リポジトリ

kali-bleeding-edge リポジトリには、非常に人気があり、非常に頻繁に (毎日でも) 変更されるツールが多数含まれています。アップストリームのソースが変更されるたびに、このリポジトリ内のパッケージが自動的に生成されるように、更新されたパッケージを手動で作成してテストするのは非現実的で時間がかかります。プラス面では、アップストリーム プロジェクトから 24 時間以上遅れることはありませんが、マイナス面として、これらのパッケージはテストされていないため、このリポジトリ内のパッケージが時々壊れる可能性があることに注意する必要があります.

次のようにして、リポジトリを追加し、利用可能なパッケージのリストを更新できます。

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

kali-bleeding-edge からパッケージをインストールするには、リポジトリ名をパッケージ名に追加する必要があります:

apt install dnsrecon/kali-bleeding-edge

幸いなことに、APT を使用すると、特定のパッケージの kali-rolling バージョンにいつでも簡単にダウングレードできるため、kali-bleeding-edge リポジトリ内のパッケージを恐れる必要はありません。パッケージが kali-bleeding-edge で壊れていることがわかった場合は、同じ方法で kali-rolling バージョンに戻すことができます:

apt install dnsrecon/kali-rolling

Debian Unstable および Experimental リポジトリ

Kali Linux は、Debian Stable よりも最新のソフトウェアを備えた Debian Testing の派生物です。さらに最近のソフトウェアには、最新のパッケージを含む Debian のローリング開発バージョンである Debian Unstable ディストリビューションがあります。 Debian パッケージでバグに遭遇した場合、修正されたバージョンが Debian Unstable リポジトリにある可能性があるため、それを Kali システムに追加することをお勧めします。 kali-bleeding-edge と同様に、Unstable のパッケージはときどき壊れる可能性があります。

Debian Experimental は、開発中のパッケージを含むもう 1 つのリポジトリです。このリポジトリのパッケージは非常に最新ですが、kali-bleeding-edge や Debian Unstable よりもバグが多い可能性があります。 APT は、明示的に要求した場合にのみ、このリポジトリからパッケージをインストールします。うまくいかない場合は、いつでもダウングレードできます。

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

kali-bleeding-edge パッケージと同様に、不安定版または実験版のパッケージをインストールする場合は、以下に示すようにパッケージ名の末尾にリポジトリ名を追加してください。

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

パッケージの優先度の決定

どのパッケージがインストールされるかを判断するために、APT には優先順位があります。 すべてのパッケージ ソースに割り当てられ、最も優先度の高い番号が優先されます。優先度が 0 のパッケージ 決してインストールされず、優先度が 1000 を超えるパッケージ パッケージのダウングレードを意味する場合でも、常にインストールされます。

これは APT にとってはまったく問題ありませんが、ユーザーであるあなたは、特定のパッケージの優先順位をどのように確認できますか?あまり知られていない「apt-cache」コマンドとその「policy」オプションを入力すると、構成済みのすべてのリポジトリとその優先度が表示されます。

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

デフォルトのディストリビューションである kali-rolling の優先度が 990 で最も高いことに注意してください。これは、そのパッケージが他のすべてのパッケージよりも優先されることを意味し (これは、Kali ユーザーとして必要なことです)、500 で Debian 不安定版が続き、kali-bleeding が続きます。 -edge は 100 で、最後は実験的で、優先度は 1 と低いです。特定のパッケージにこれらの優先度がどのように適用されるかを確認するには、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

kali-bleeding-edge の sqlmap のバージョンの方が新しいですが、インストールされているバージョンの優先度が 990 であるのに対して、優先度が 100 しかないため、インストールされません。別のパッケージ リポジトリからパッケージをインストールするには、明示的に要求する必要があります。

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

APT 設定

デフォルト配布の設定

システムに追加のリポジトリが追加されたので、新しいパッケージの探索とインストールを開始したいと思うでしょうが、その前に、デフォルトのディストリビューションを APT に伝えておくことをお勧めします。 これは、Kali Linux ユーザーにとっては「kali-rolling」です。このようにして、システムはあなたの同意なしに他のディストリビューションにアップグレードされません. 「APT::Default-Release “kali-rolling”;」を追加して、デフォルトのディストリビューションを構成します。 /etc/apt/apt.conf.d/local .

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

デフォルトのディストリビューションが設定されていると、「apt full-upgrade」を実行するたびに kali-rolling にアップグレードが適用され、システムの安定性が維持されます。

アップグレード プロンプトの削減

Debian 派生物をかなりの時間使用すると、「apt upgrade」の実行中にプロンプ​​トが表示され、構成ファイルについて尋ねられ、ローカル バージョンを保持するか、新しいバージョンを使用するか、それらを比較するかを尋ねられます。多くの場合、デフォルトを受け入れてしまい、これらの中断が無駄になります。

/etc/apt/apt.conf.d/local を更新することで、これらのプロンプトを回避できます。 ‘DPkg::options { “–force-confdef”; を含むファイル。 「-強制コンフォールド」; }」を以下に示します。この行は、ファイルが変更されていない場合 (–force-confdef)、ファイルが異なる場合は既存のバージョンを維持する (–force-confold) 場合に、APT が選択を試みるように指示します。

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

パッケージ バージョンの固定

場合によっては、特定のパッケージの特定のバージョンを必要とし、他のバージョンでは動作しないアプリケーションが見つかることがあります。また、1 つのパッケージの更新が他のツールに悪影響を与える場合もあります。これは、最近の devscripts パッケージの更新で発生し、Kali パッケージのビルドを妨げていました。

幸いなことに、APT では 固定 することができます 優先度を 1001 に設定して、パッケージを特定のバージョンに /etc/apt/preferences .たとえば、バージョン 2.16.x で devscripts パッケージを保持するように APT に指示するには、次を追加します。

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

その他のリソース

この投稿では、デフォルトの Kali または Debian エコシステムをはるかに超えて APT を拡張する方法の表面をなぞっただけです。ソルバー アルゴリズムは非常に効果的で、問題が発生することはめったにないため、他のリポジトリを探索することを恐れる必要はありません。 APT の詳細と、APT を意のままに曲げる方法については、Kali Linux Revealed と Debian 管理者ハンドブックを参照することをお勧めします。どちらにも、豊富な情報、ヒント、トリックが含まれています。


Linux
  1. aptによるLinuxパッケージ管理

  2. Linuxパッケージ管理のためのAppImageの使用

  3. Linux – KaliRollingとKaliSanaリポジトリ?

  1. VoidLinuxでXBPSパッケージマネージャーを使用する方法

  2. Linux – Kaliにヘッダーをインストールしますか?

  3. Linux でのパッケージ管理のための 15 の aptitude コマンドの例

  1. Linuxで特定のリポジトリからパッケージをインストールする方法

  2. Kali Linux リポジトリの HTTPS サポート

  3. Kali Linux のパッケージを見つける