如何修复 Raspbian 上的 “Encountered a section with no Package:
问题: 我在树莓派上安装新版的 Raspbian。但当我使用 sudo apt-get update 命令更新 APT 软件包索引的时候,它抛出下面的错误:
- E:Encountered a section withnoPackage: header
- E:ProblemwithMergeList/var/lib/dpkg/status
- E:Thepackage lists or status file could not be parsed or opened.
之后我不能在 Raspbian 上安装任何软件包。我怎样才能解决这个错误?
这个错误说 "Problem with MergeList /var/lib/dpkg/status" 表示由于某些原因状态文件损坏了,因此无法解析。这个状态文件包括了已经安装的 deb 软件包的信息,因此需要小心备份。
在这种情况下,由于这是新安装的 Raspbian,你可以安全地删除状态文件,然后用下面的命令重新生成。
- sudorm/var/lib/dpkg/status
- sudotouch/var/lib/dpkg/status
- sudoapt-get update
参考链接:https://linux.cn/article-5624-1-rss.html
安装软件显示:
dpkg:error:无法打开软件包的 info 文件 /var/lib/dpkg/available 进行读取...
解决方法:
1、你可以先到 /var/lib/dpgk目录下看看,有没有available_old这个文件,如果有,执行下面的命令即可解决:
sudo cp -p ./available_old ./available
2、如果没有这个文件,那么就执行下面两条命令即可:
sudo dpkg --clear-avail
sudo apt-get update
安装软件显示:
E: Sub-process /usr/bin/dpkg returned an error code (1)问题解决方案
今天在树莓派装docker,遇到这个问题:
输入sudo dpkg --configure -a查看问题详情:
sudo mv /var/lib/dpkg/info /var/lib/dpkg/info.bak //现将info文件夹更名
sudo mkdir /var/lib/dpkg/info //再新建一个新的info文件夹
sudo apt-get update
sudo apt-get upgrade
参考链接:https://blog.csdn.net/u011870280/article/details/80598801
安装opencv,进行make可能遇到这种问题:
问题1
这个时候很简单,将contrib/modules/中的相关hpp文件移动到/usr/local/include下即可(花了我1-2个小时才明白这个道理),如果没有opencv2 建立对应的文件夹,记得在/usr/local/include目录下所有的操作都需要加sudo 权限
如建立opencv2文件夹:
- sudo mkdir opencv2
如上述问题可采用
- sudo cp –r <source-directory> <goal-directory>
相信这样的操作大家一定可以摸索成功
问题2
linemod问题,下面github上的一个哥们即把这个问题提出来,放在了网上,记得不需要加cv::只需要把#include <opencv2/rgbd/linemod.hpp>加到报错的hpp中即可,如果出现如问题1的 no such file or directory,采取问题1的解决方式即可。所以说,认真分析bug信息,坚持google,我们会不断进步的(小N:师兄加油!!! )
https://github.com/opencv/opencv/issues/10844
问题3
如果出现关于build opencv_contribute fatal error boostdesc_bgm.i and vgg;
这个问题遇到的时候极为难受,因为根本毫无头绪,然而总是由大神给出答案,可参考opencv网站上的questions
我这里直接也给出解决方式:
图片中标蓝的网址为:
https://github.com/opencv/opencv_3rdparty/branches/stale