我尝试在 Ubuntu 20.04 上安装 Xilinx Petalinux 时遇到此错误
dpkg-query:未安装包 'python' 并且没有可用信息使用 dpkg --info (= dpkg-deb --info) 检查存档文件 错误:您的工具不符合版本要求:-Detected python版本低于预期的 2.7.3
我重新安装了几次python,但没有成功。
我在 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”中所报告的那样
好的。说服安装程序不要过早地失败是一个小技巧。如果有更优雅的解决方案,我有兴趣学习它们。
这里的根本原因是Petalinux (至少从 2018.3 起)python
使用. 没有名为. 修复非常简单,但并不美观:如果您还没有 python2 包,请先安装它:dpkg-query
python2
python3
python
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 中,我不需要他提到的修复。
我的脚本适用于 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
我怀疑你需要安装python2,而ubuntu 20.04默认有python3。(并且没有安装 python2,因为它是自 2020 年 1 月以来生命的尽头)
您可以通过运行来确认它:
python2 --version
如果它给你一个正常的版本信息,那么我的回答是完全错误的。
现在如果它给你一个错误,那么你可以尝试安装 python2 看看它是否修复它:
sudo apt install python2