linux上添加下载源的时候报错:无法添加 PPA:“此 PPA 不支持 bionic”,以及关于linuxPPA的介绍,如何查找软件包的PPA源,并添加PPA

508 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第16天,点击查看活动详情

1 介绍LInux PPA

在介绍问题之前,首先来说明一下什么是PPA,清楚问题的本质,追根溯源,这样才能更明确问题,然后针对性的去解决这个问题!

1.1 为什么需要PPA

PPAPersonal Package Archive(个人软件包存档)

具体,请阅读下面的这篇文章,写的很好:

关于PPA的介绍 # 强烈建议先看一下!

1.2 如何查找我们要添加的PPA

1、查找添加的PPA

如下图,查找的时候,你可以输入:

  • 要查找软件包的名
  • 或 软件包的创建者名 在这里插入图片描述

2、关于PPA的一些其他连接

2 yolov5编译tensorrt的时候报错

2.1 编译错误原因

1、在编译yolov5的tensorrt模型的时候报错:fatal error: opencv2/dnn/dnn.hpp: No such file or directory

在这里插入图片描述

2、然后在issues中查看到,这是由于缺少opencv dnn库包错误,可以用如下命令查看自己有没有安装dnn模块:

dpkg -l |grep dnn

如果有安装则返回类似如下(参考):

$ dpkg -l | grep dnn
ii  libcudnn7                                                    7.6.5.32-1+cuda10.0                                 amd64        cuDNN runtime libraries
ii  libcudnn7-dev                                                7.6.5.32-1+cuda10.0                                 amd64        cuDNN development libraries and headers
ii  libopencv-dnn-dev:amd64                                      3.3.1-xenial1.4                                     amd64        development files for libopencv-dnn3.3
ii  libopencv-dnn3.3:amd64                                       3.3.1-xenial1.4                                     amd64        computer vision Machine Learning library

我自己是什么也没有返回,因此我想去安装这个模块!

2.2 解决错误方法

1、那我们就安装opencv的dnn模块(参考):

sudo add-apt-repository ppa:timsc/opencv-3.3
sudo apt-get update
sudo apt install libopencv-dev

2、结果在添加opencv的源的时候报错:无法添加 PPA:“'此 PPA 不支持 bionic'”。

说这个软件包,不支持bionic,也就是不支持Ubuntu18.04上安装!如果18.04以下版本应该没有问题!

3、我在ppa的官网也能够查找到这个源,而且添加源的命令也是一样的!

在这里插入图片描述

在这里插入图片描述

然后,我就日了dog了,我的Ubuntu刚好是18.04版本的!果然是不支持的

3 最终解决方案:在Jetson nano上进行yolov5的tensorrt的模型转换

本来我也打算在自己的电脑上进行yolov5 tensorrt模型的推理检测的,而是要在Jetson naon上进行tensorrt的推理,因此我直接在Tesnorrt上进行模型的转换!

1、在Jetson nano上默认是安装了opencv dnn库包的!

dpkg -l|grep dnn

zhihui@zhihui-desktop:~/shl_proj/yolov5_to_trt/yolov5$ dpkg -l|grep dnn
ii  libcudnn8                                     8.0.0.180-1+cuda10.2                             arm64        cuDNN runtime libraries
ii  libcudnn8-dev                                 8.0.0.180-1+cuda10.2                             arm64        cuDNN development libraries and headers
ii  libcudnn8-doc                                 8.0.0.180-1+cuda10.2                             arm64        cuDNN documents and samples
ii  nvidia-container-csv-cudnn                    8.0.0.180-1+cuda10.2                             arm64        Jetpack CUDNN CSV file
zhihui@zhihui-desktop:~/shl_proj/yolov5_to_trt/yolov5$ 

2、下面是yolov5模型转换tensorrt模型的过程!

python3 gen_wts.py weights/yolov5s.pt

这个错误,是由于下载的yolov5s模型破损导致的(参考),重新下载即可:

zhihui@zhihui-desktop:~/shl_proj/yolov5_to_trt/yolov5$ python3 gen_wts.py weights/yolov5s.pt
Traceback (most recent call last):
  File "gen_wts.py", line 10, in <module>
    model = torch.load(pt_file, map_location=device)['model'].float()  # load to FP32
  File "/home/zhihui/.local/lib/python3.6/site-packages/torch/serialization.py", line 585, in load
    with _open_zipfile_reader(opened_file) as opened_zipfile:
  File "/home/zhihui/.local/lib/python3.6/site-packages/torch/serialization.py", line 242, in __init__
    super(_open_zipfile_reader, self).__init__(torch._C.PyTorchFileReader(name_or_buffer))
RuntimeError: [enforce fail at inline_container.cc:145] . PytorchStreamReader failed reading zip archive: failed finding central directory
zhihui@zhihui-desktop:~/shl_proj/yolov5_to_trt/yolov5$ ls

在这里插入图片描述