手動でインストールされたwslでkaliを適切に更新する方法は?

手動でインストールされたwslでkaliを適切に更新する方法は?

Windows 10でkali wsl(バージョン1)を使用しており、この方法を使用してC以外のドライブにインストールしました。ここ

以下が返されますuname -r4.4.0-19041-Microsoft

適切な更新時に次のエラーが発生します。

user@host:~$ sudo apt update
[sudo] password for user:
Get:1 <mirror_site> kali-rolling InRelease [30.5 kB]
Err:1 <mirror_site> kali-rolling InRelease
  The following signatures were invalid: EXPKEYSIG ED444FF07D8D0BF6 Kali Linux Repository <[email protected]>
Fetched 30.5 kB in 2s (12.5 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: <mirror_site> kali-rolling InRelease: The following signatures were invalid: EXPKEYSIG ED444FF07D8D0BF6 Kali Linux Repository <[email protected]>
W: Failed to fetch http://http.kali.org/kali/dists/kali-rolling/InRelease  The following signatures were invalid: EXPKEYSIG ED444FF07D8D0BF6 Kali Linux Repository <[email protected]>
W: Some index files failed to download. They have been ignored, or old ones used instead.

その後、問題を解決しようとしましたが、次のgpg --keyserver hkp://keys.gnupg.net --recv-key 7D8D0BF6エラーが発生しました。

E: gnupg, gnupg2 and gnupg1 do not seem to be installed, but one of them is required for this operation

だからgnupg_2.2.27-2_all.deb手動でインストールしようとしました。Debian パッケージ。しかし、より多くの依存関係の問題が発生します。

user@host:~$ sudo dpkg -i gnupg_2.2.27-2_all.deb
(Reading database ... 17159 files and directories currently installed.)
Preparing to unpack gnupg_2.2.27-2_all.deb ...
Unpacking gnupg (2.2.27-2) over (2.2.27-2) ...
dpkg: dependency problems prevent configuration of gnupg:
 gnupg depends on dirmngr (<< 2.2.27-2.1~); however:
  Package dirmngr is not installed.
 gnupg depends on dirmngr (>= 2.2.27-2); however:
  Package dirmngr is not installed.
 gnupg depends on gnupg-l10n (= 2.2.27-2); however:
  Package gnupg-l10n is not installed.
 gnupg depends on gnupg-utils (<< 2.2.27-2.1~); however:
  Package gnupg-utils is not installed.
 gnupg depends on gnupg-utils (>= 2.2.27-2); however:
  Package gnupg-utils is not installed.
 gnupg depends on gpg (<< 2.2.27-2.1~); however:
  Package gpg is not installed.
 gnupg depends on gpg (>= 2.2.27-2); however:
  Package gpg is not installed.
 gnupg depends on gpg-agent (<< 2.2.27-2.1~); however:
  Package gpg-agent is not installed.
 gnupg depends on gpg-agent (>= 2.2.27-2); however:
  Package gpg-agent is not installed.
 gnupg depends on gpg-wks-client (<< 2.2.27-2.1~); however:
  Package gpg-wks-client is not installed.
 gnupg depends on gpg-wks-client (>= 2.2.27-2); however:
  Package gpg-wks-client is not installed.
 gnupg depends on gpg-wks-server (<< 2.2.27-2.1~); however:
  Package gpg-wks-server is not installed.
 gnupg depends on gpg-wks-server (>= 2.2.27-2); however:
  Package gpg-wks-server is not installed.
 gnupg depends on gpgsm (<< 2.2.27-2.1~); however:
  Package gpgsm is not installed.
 gnupg depends on gpgsm (>= 2.2.27-2); however:
  Package gpgsm is not installed.
 gnupg depends on gpgv (>= 2.2.27-2); however:
  Version of gpgv on system is 2.2.12-1.

dpkg: error processing package gnupg (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 gnupg

これ以降は何をすべきかわかりません。これらすべての依存関係を手動でダウンロードしてインストールする必要がありますか?適切なタスクを正しく実行するにはどうすればよいですか?

答え1

このような複雑な過程を経て申し訳ありませんが、ただ一つ見つけました。たくさんより簡単なソリューション。今後他の人がこの問題に直面するときに時間を節約できることを願っています。

キーリングを更新するには:

> wget https://http.kali.org/kali/pool/main/k/kali-archive-keyring/kali-archive-keyring_2020.2_all.deb
> sudo dpkg -i kali-archive-keyring_2020.2_all.deb

その後、正常に進むことができますsudo apt update && sudo apt upgrade

礼儀正しいu/desktopechoRedditから引用Githubリポジトリ

答え2

これは、Microsoft ドキュメントの古いリンクが原因で発生しているようです。手動でディストリビューションをインストールする。リンクされたKaliパッケージは2019.2で、その(古い)パッケージで発生した問題を再現できます。もちろん、Microsoft Storeからインストールされたバージョンは2021.2なので、最新のKali WSLパッケージを使用できます。残念ながら、パッケージへの直接リンクがわかりません。私はこれを次のように使用しました。質問MicrosoftDocs\WSL Github にあります。

問題は、KaliがWSL用に提供するディストリビューションが非常に小さく、「通常の」ディストリビューション(GPGなど)で提供されるいくつかのツールが含まれていないという事実によってさらに悪化します。したがって、鍵を更新するために一般的に従う指示は、WSLでは機能しません。

gpg機能せずにすべての依存関係をインストールする方法があるかもしれませんが、apt私の考えにはそれほど価値がありません。

代わりにインストールする必要がある場合は、代替インストール方法を提案しますC:一時的にC:このプロセス中に、1GB未満のスペースがドライブに専用(または解放)されます。最後に公開できます。

以下の指示の長さのために怖がらないでください。私はあなたが何が起こっているのかを確実に理解し、できるだけ失敗しないように努力するために、詳細に説明しすぎる傾向があります。以下のプロセス全体を個人的にテストしましたが、問題が発生した場合はお知らせください。

  • まず、既存のKaliインストールを削除します。最近インストールしたようですので、そこにキーファイルがないとしましょう。しかし、そうする場合は、WSLインスタンスの外に移動してください。

    次に、PowerShell または CMD で次の操作を行います。

    wsl --unregister kali-linux
    
  • また、以前にダウンロードした(古い、古い)パッケージファイルを削除してください。

  • 次に、Microsoft StoreにアクセスしてKaliをインストールします。これにより、保護されたディレクトリにパッケージファイルがインストールされるため、C:\Program Files\WindowsApps\そのドライブに一時的にスペースが必要です。

  • Windows端末を実行しているとし、Start-Process wt -Verb RunAsPowerShellで実行して管理者プロンプトを受け取ります。 Windows端末でない場合は、管理者権限でPowerShellを実行してください。

  • Admin PowerShell で以下を実行して、Get-ChildItem -Recurse 'C:\Program Files\WindowsApps\Kali*' | Where-Object {$_.Name -eq 'install.tar.gz' } | % { $_.DirectoryName } | Set-ClipboardKali パッケージがインストールされているディレクトリをインポートします。

  • で正しいパスを見つけてくださいGet-Clipboard。これは次の結果を返す必要がありますC:\Program Files\WindowsApps\KaliLinux.54290C8133FEE_1.8.0.0_x64__ey8k8hqnwqnmg。このパスは後で変更される可能性がありますが(後でこの回答を読んでください)、大丈夫です。

  • 管理シェルを終了し、「一般ユーザー」PowerShellに戻ります。

    mkdir D:\wsl\instances\kali-linux
    cd D:\wsl\instances\kali-linux
    Get-Clipboard # Confirm that the Kali package path is still on the clipboard
    Copy-Item "$(Get-Clipboard)\*"
    

    これにより、パッケージファイルがD:ドライブにコピーされます。もちろん、インストールパスを必要に応じて設定できます。私はwsl\instances\distro-name複数のディストリビューションとインスタンスを保持しているので、個人的に1つの形式を使用します。後でより多くのコピーが必要な場合に備えて、将来の校正用にお勧めします。

  • これで、ターゲットディレクトリに多くのファイルが必要です。それは次のとおりです。

    Name
    ----
    AppxBlockMap.xml
    AppxManifest.xml
    AppxMetadata/
    AppxSignature.p7x
    Assets/
    install.tar.gz
    kali.exe
    resources.pri
    
  • ここからもう一度おなじみの領域に戻る必要があります。を実行して.\kali.exeしばらく待ってからユーザー名とパスワードを設定すると、WSLはKaliで起動します。

  • Kaliを終了して(PowerShellに戻って)Remove-Item Appx*, Assets, install.tar.gz, resources.pri

  • WSL1の場合は、次のように終了する必要があります。

    • rootfsファイルシステムが保存されるディレクトリです。重要なヒント:いいえ何らかの理由でWindows/PowerShell/CMD/Notepad/その他のWindowsアプリケーションなどからアクセスしてください。そこに龍があります。
    • tempディレクトリ
    • fsserver
    • kali.exeコピーしたが削除しなかったコマンドです。 IMHO あまり役に立ちませんが、必要な場合があります。それできるKaliを起動するために使用されますが、このwslコマンドははるかに優れています(より多くの機能、より良いサポート)。
  • Microsoft StoreからKaliを削除してドライブスペースを解放しますC:

インストールは、Microsoft Storeで利用可能なKaliの最新バージョンと最高バージョンでなければなりません。 Kaliのバージョンはを使用して確認できますcat /etc/os-release。現在は2021.2。 sudo apt update && sudo apt upgradeこれでうまくいきます...

関連情報