我在 32 位 Kali Linux PC 上安装 PowerShell 时遇到一些问题。我跟着本指南并开始于:
apt update && apt -y install curl gnupg apt-transport-https
接下来,我下载并添加了公共存储库 GPG 密钥,以便 APT 信任这些软件包,并就软件包签名的任何问题向用户发出警报。
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
添加 GPG 密钥后,我将 Microsoft 软件包存储库添加到其自己的软件包列表文件中,/etc/apt/sources.list.d/
并更新了可用软件包列表。
echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-debian-stretch-prod stretch main" \
> /etc/apt/sources.list.d/powershell.list
apt update
到目前为止,更新过程中没有出现任何错误,Microsoft 源代码位于我的 source.list 中,一切都应该很顺利。
当我执行时:
apt -y install powershell
我得到:
root@kali:/opt# apt -y install powershell
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package powershell
答案1
您已成功将 Powershell 存储库添加到您的sources.list
.
但是,您报告使用的是 32 位体系结构系统。您的输出apt-cache
确认您的存储库不包含 Powershell 包。
看看Powershell GitHub,微软似乎没有为 32 位 Linux 系统提供 Powershell 的 Linux 软件包。此处适用于 Linux 的所有源代码和二进制包均适用于 64 位系统。
正如用户 Bob 在评论中指出的那样,Powershell for Linux 依赖于.Net核心。
如果您熟悉从源代码构建,则可能会构建 32 位包,但这是一个不同类型的问题。这实际上可能不起作用,因为 Powershell 可能对 64 位指令和优化有硬性要求。
答案2
您已添加 PowerShell 存储库,但它仅提供amd64
二进制文件(如 Microsoft 要求您包含的体系结构限定符所示)。您无法在 32 位系统上运行二进制文件...也就是说,除非您的 CPU 支持 64 位模式(您可以通过lm
在 中查找处理器标志来检查/proc/cpuinfo
)并且您正确配置了系统。
(如果您正在运行实时 Kali 系统,您也可以重新启动到 64 位 Kali 设置。)
以下说明并非特定于 Kali,它们适用于任何 Debian 衍生版本。
添加 64 位支持:
使能够
amd64
:dpkg --add-architecture amd64
确保您的系统是最新的:
apt update && apt upgade
安装适当的内核(这会有所不同,具体取决于安装的发行版和当前有效的内核;运行
uname -r
以了解要使用的包名称):apt install linux-image-4.19.0-kali4-amd64
重启,然后在Grub菜单的高级选项中选择
amd64
内核由于 Microsoft 的 PowerShell 存储库基于 Debian 9,因此您可能需要添加相应的存储库(在 Kali 设置中通常不建议这样做,但Kali 自己记录了它, 所以...):
echo deb http://deb.debian.org/debian stretch main > /etc/apt/sources.list.d/stretch.list
(现在这在 Kali 上是必要的,因为该
libicu57
软件包在那里不再可用,所以即使您正在关注,您也必须执行此操作Kali PowerShell 安装指南)再次更新并安装 PowerShell:
apt update && apt install powershell
现在您仍将运行大部分 32 位安装,但能够在必要时安装 64 位软件包。