ubuntu安装软件需要低版本依赖的一种解决方法--以在Jetson Nano中安装libssl-dev为例

问题起因

这几天在给 jetson nano 配环境, 在编译时弹出这个:

Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
  system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY
  OPENSSL_INCLUDE_DIR)

查了一下发现解决方法是:

编译时提示 Could NOT find OpenSSL 的解决方法

但当我安装时,命令行弹出这个,意思如标题所述,需要低版本的依赖:

libssl-dev : Depends: libssl1.0.0 (= 1.0.2g-1ubuntu4) but 1.0.2n-1ubuntu5.7 is to be installed

遂继续查找解决方法。

我的解决方法在解决方案3,可点击目录跳转。

mulu

    • 问题起因
    • 解决方案 1(于我而言行不通)
    • 解决方案 2(于我而言行不通)
    • 解决方案 3
    • 解决方案4(可能)

解决方案 1(于我而言行不通)

libssl-dev : 依赖: libssl1.0.0 (= 1.0.2g-1ubuntu4.13) 但是 1.0.2n-1ubuntu5.1 正要被安装

这里的解决方案是通过 apt-get 安装低版本libssl1.0.0
但是在评论区的网友反馈称把图形化界面给整没了,想到之前也出现类似的问题,所以放弃了。

解决方案 2(于我而言行不通)

[已解决]Ubuntu安装libssl-dev失败

这里给出的解决方案是通过 aptitude 自动调整版本安装,但是这个会卸载 apt !!!

问题来了啥方法都想尝试,我按照链接所述尝试了,直到出现:

E: The method driver /usr/lib/apt/methods/http could not be found.

再找解决方法:

Ubuntu18.04使用aptitude采坑小记

直到需要安装 apt-transport-https,发现链接所述是amd64架构,而 jetson nano 是 arm64 架构, amd64 不适用,所以在

【ubuntu】E: The method driver /usr/lib/apt/methods/http could not be found

里面提供了一个非常重要的网址(大佬应该早就知道的):

ubuntu 安装包

找到 arm64架构的 apt-transport-https,安装才发现需要 apt 。。。

这意味着出现了循环安装,如 采坑小记 那篇文章的评论区网友所述。

没办法,先在 ubuntu 安装包网址里面找到 aptapt-transport-https ,装回去吧。

从aptitude 换回 apt-get .

期间还弹出:

dpkg: dependency problems prevent configuration of apt:
 apt depends on libapt-pkg5.0 (>= 1.6.17); however:
  Version of libapt-pkg5.0:arm64 on system is 1.6.14.

在ubuntu安装包的链接下载并安装包的步骤是这样的:

  1. 点击链接进去后在右上角 search
  2. 根据 ubuntu 版本选择对应的 Release (如 18.04 就选择 bionic)
  3. 点击 version 中对应的超链接
  4. 点击 Links 下面的 Repository home page
  5. 进去后点击 Builds 下面的 arm64
    • 如果是 apt-transport-https ,在 Binary packages built by this source 里面找
  6. 找到 .deb 文件,然后下载,注意架构是arm64的,适用于Jetson Nano

于是我下载了 apt 1.6.14 版本的 apt ,这个可以在浏览器下载;apt-transport-https 不可以在浏览器下载,需要用到 wget

# For download
wget http://launchpadlibrarian.net/544246888/apt-transport-https_1.6.14_all.deb

在本地安装:

sudo dpkg -i apt_1.6.14_arm64.deb
sudo dpkg -i apt-transport-https_1.6.14_all.deb

(又回到最初的起点…)

解决方案 3

虽然走了不少弯路,但是我也找到了存放ubuntu安装包的网址,见解决方案2中提供的超链接。

解决方案1是降版本了,那我能不能装一个更高版本的 libssl-dev 呢?

我在上述网址中查找,找到 libssl-dev_1.1.1-1ubuntu2.1_18.04.20 ,下载并安装,发现:

dpkg: dependency problems prevent configuration of libssl-dev:arm64:
 libssl-dev:arm64 depends on libssl1.1 (= 1.1.1-1ubuntu2.1~18.04.20); however:
  Version of libssl1.1:arm64 on system is 1.1.1-1ubuntu2.1~18.04.14.

我在 ubuntu 安装包网址找不到 libssl-dev_1.1.1-1ubuntu2.1_18.04.14,但是找得到 libssl_1.1.1-1ubuntu2.1_18.04.20

本着高版本向下兼容的想法,我下载了上述版本,然后:

sudo dpkg -i libssl1.1_1.1.1-1ubuntu2.1_18.04.20_arm64.deb
sudo dpkg -i libssl-dev_1.1.1-1ubuntu2.1_18.04.20_arm64.deb

完事!!!

解决方案4(可能)

写文章复盘的时候,我意识到自己没有使用如下命令:

sudo apt-get upgrade

这是更新ubuntu软件版本的命令,我就不尝试了,尝试过的朋友可以在评论区留言,让我看看是否有效。

若能给予帮助,还望点一个小小的赞,不胜感激。

你可能感兴趣的:(#Jetson,Nano,ubuntu,linux,arm)