ubuntu 22.04 版本如何安装NCL

ubuntu 22.04 版本如何安装NCL

  • 最近,重新创建了一个linux子系统进行学习。在安装ncl的时候,出现了各种问题。特此记录一下解决的过程。

首先下载了NCL的Linux版本的安装包,进行解压以及环境配置。但是在测试是否安装成功时,出现以下报错:

ncl -version
ncl: /lib/x86_64-linux-gnu/libcrypto.so.10: version `libcrypto.so.10' not found (required by ncl)
ncl: /lib/x86_64-linux-gnu/libssl.so.10: version `libssl.so.10' not found (required by ncl)

对于这两个问题,其实是比较好理解的,就是NCL运行的时候需要这两个东西,但是你安装完运行NCL时,并没有找到这两个东西。

一般的解决办法就是先查找一下你的系统有没有这两个文件,如果有的话最好了,直接建立一个软连接(ln -s)将这两个东西链接上,告诉NCL你要找的东西我是有的,位置给你指定啦。

麻烦的点在于第二个,我这个电脑上没有这两个东西,,,纯属是第一次自己配置Linux 环境,很多依赖的库、环境啊都还没有提前装好。

在一番搜索后,发现了这两个东西主要是和一个叫做openssl的软件相关,是安装openssl这个软件时,自带的。

所以,也就是说:NCL 软件所需的 OpenSSL 库的版本没有安装在你的系统上。NCL 似乎正在寻找 OpenSSL 库的1.0版本,而您的系统可能安装了不同的版本,或者根本没有安装该库

我仔细验证了一下,ubuntu 22.04这个版本上是自带安装了OpenSSL的,但是不是1.0的版本,所以貌似看起来解决这个问题的关键就是要安装OpenSSL的1.0版本

例如,在 Ubuntu 上,可以运行命令 sudo apt-get install libssl1.0-dev 来安装库。如果已经安装了 OpenSSL 版本1.1或更高版本,则可以创建指向所需库的符号链接,以便 NCL 可以找到它们。例如,在 Ubuntu 上,你可以运行以下命令:

sudo ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 /usr/lib/x86_64-linux-gnu/libcrypto.so.10
sudo ln -s /usr/lib/x86_64-linux-gnu/libssl.so.1.1 /usr/lib/x86_64-linux-gnu/libssl.so.10

1、安装OpenSSL 1.0 版本

打开终端并执行以下命令安装 libssl1.0-dev

sudo apt-get update
sudo apt-get install libssl1.0-dev

2、创建软链接

sudo ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 /usr/lib/x86_64-linux-gnu/libcrypto.so.10
sudo ln -s /usr/lib/x86_64-linux-gnu/libssl.so.1.1 /usr/lib/x86_64-linux-gnu/libssl.so.10

这将创建 libcrypto.so.10 和 libssl.so.10 两个软链接,链接到当前系统中已经安装的 OpenSSL 1.1 版本库文件。

但是我这里还是出现报错了:

ln: failed to create symbolic link '/usr/lib/x86_64-linux-gnu/libcrypto.so.10': File exists

说明在执行创建软链接命令时,/usr/lib/x86_64-linux-gnu/ 目录下已经存在一个名为 libcrypto.so.10 的文件或软链接了。

这里可以先确认一下 /usr/lib/x86_64-linux-gnu/ 目录下是否已经有名为 libcrypto.so.10 的文件或软链接。如果是软链接,您可以考虑删除软链接,然后重新执行创建软链接的命令;如果是文件,您可以考虑备份或删除该文件,或者尝试在其他目录中创建软链接。

另外,您也可以尝试使用 -f 选项来强制创建软链接,即执行以下命令:

sudo ln -sf /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 /usr/lib/x86_64-linux-gnu/libcrypto.so.10
sudo ln -sf /usr/lib/x86_64-linux-gnu/libssl.so.1.1 /usr/lib/x86_64-linux-gnu/libssl.so.10

这将强制创建软链接并覆盖同名的文件或软链接。但是在使用 -f 选项时要小心,确保您不会覆盖重要的文件或软链接。

然后,又出现报错:

ncl: error while loading shared libraries: libssl.so.10: cannot open shared object file: No such file or directory

检查 OpenSSL 是否已经安装。

dpkg -l | grep openssl

我这里确实是显示安装成功了,感觉又回到了开始的问题。。。

删除OpenSSL

我在想是不是我的系统里又有ubuntu自带的,又有自己安装的,产生了冲突导致的。

所以,这里直接卸载了OpenSSL

sudo apt-get remove openssl

再重新安装一遍1.0版本:

sudo apt-get update
sudo apt-get install libssl1.0-dev

更新动态链接库缓存:

sudo ldconfig

确认 OpenSSL 已经安装成功:

openssl version

在这里插入图片描述
确实是成功了,然后这回通过代码命令重新安装NCL,这里注意到一点是NCL需要提前安装好一些依赖的软件包:

sudo apt-get install libnetcdf-dev libhdf5-dev libudunits2-dev libgeotiff-dev libproj-dev libfreetype6-dev libjpeg-dev libpng-dev libx11-dev libcairo2-dev

安装 NCL:

sudo apt-get install ncl-ncarg

确认安装成功:

ncl -V

在这里插入图片描述

终于看到了版本信息,这里就是成功安装NCL了。

mad,不容易

你可能感兴趣的:(如何解决系列,ubuntu,linux,服务器,安装NCL,OpenSSL)