6

我尝试在 Ubuntu 20.04 上安装 Xilinx Petalinux 时遇到此错误

dpkg-query:未安装包 'python' 并且没有可用信息使用 dpkg --info (= dpkg-deb --info) 检查存档文件 错误:您的工具不符合版本要求:-Detected python版本低于预期的 2.7.3

我重新安装了几次python,但没有成功。

4

4 回答 4

3

我在 Ubuntu 20.04 上安装了 petalinux

我遇到了和你描述的一样的问题。问题是 petalinux 安装程序如何使用 dpkg 检查 python 版本并将包 python 重命名为 python2.7

我通过确保我安装了 python2 来解决,例如 sudo apt-get install python2.7-minimal:i386 或 sudo apt-get install python2.7-minimal:amd64 (我都错了!)然后我欺骗 dpkg 认为“python”通过复制名为 Package: python2.7 的部分并重命名为:- Package: python in file /var/lib/dpkg/status

此“hack”使 dpkg 能够报告已安装 python2.7 的已安装 python 版本

petalinux 安装程序在查询 python 的版本时,现在成功并且安装正在进行。

然而,有一个关于脚本如何使用 sed 的报告问题,所以最后一个技巧是使用 sed shim,正如 xilinx 论坛“PetaLinux 2018.1 Install Fails on Debian Stretch”中所报告的那样

好的。说服安装程序不要过早地失败是一个小技巧。如果有更优雅的解决方案,我有兴趣学习它们。

于 2020-08-07T17:10:03.590 回答
2

这里的根本原因是Petalinux (至少从 2018.3 起)python使用. 没有名为. 修复非常简单,但并不美观:如果您还没有 python2 包,请先安装它:dpkg-querypython2python3python

sudo apt install python2

python然后手动为to添加一个条目/var/lib/dpkg/status在执行此操作之前备份文件。如果你弄乱了这个文件,你将度过糟糕的一天。此条目将起作用:

Package: python
Status: install ok installed
Maintainer: Fake Entry <fake@example.com>
Architecture: all
Version: 2.7.17
Description: fake package for petalinux

这是条目的副本,python2删除了不必要的字段,并更新了描述。该文件似乎是按字母顺序排序的,所以我在应该按字母顺序的地方添加了这个条目。


感谢Jon Oldroyd 的回答,其中基本上包含所有这些信息,但不太明确的说明。sed在 Ubuntu 20.04 和 Petalinux 2018.3 中,我不需要他提到的修复。

于 2020-11-05T19:46:03.450 回答
1

我的脚本适用于 Ubuntu 和 Windows 10 WSL2

sudo dpkg --add-architecture i386 && sudo apt update && sudo apt-get -y install tofrodos iproute2 gawk make net-tools libncurses5-dev tftpd zlib1g:i386 libssl-dev flex bison libselinux1 gnupg wget diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib build-essential screen pax gzip python2-minimal && \
export lin=`grep -n "Package: python2-minimal" /var/lib/dpkg/status | cut -f1 -d:` && \
sudo sed -i "${lin}i\Package: python\nStatus: install ok installed\nMaintainer: Fake Entry \nArchitecture: all\nVersion: 2.7.17\nDescription: fake package for petalinux\n" /var/lib/dpkg/status

然后你可以

bash petalinux-*.run ~/petalinux
于 2021-04-12T11:21:41.213 回答
0

我怀疑你需要安装python2,而ubuntu 20.04默认有python3。(并且没有安装 python2,因为它是自 2020 年 1 月以来生命的尽头)

您可以通过运行来确认它:

 python2 --version

如果它给你一个正常的版本信息,那么我的回答是完全错误的。

现在如果它给你一个错误,那么你可以尝试安装 python2 看看它是否修复它:

sudo apt install python2

关于在 ubuntu 中安装 python2 的信息

于 2020-07-19T18:42:08.113 回答