一地鸡毛: 升级物理机到Ubuntu 22.04 TLS

Words
321
Reading
2 min
Listen
Play
4y

之前的帖子中曾写到,编译最新版本的hived(v1.26.0rc3),需要Ubuntu 20.04 LTS及以上版本。于是把平时编译用的VPS升级到了Ubuntu 20.04 LTS。

20221006_210915.jpg

然后编译hived的最新版本,总算可以成功编译了,不过拿到我本地机器上(Ubuntu 18.04 LTS)执行,却被提示如下问题:

./hived_v1.26.0.rc3: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by ./hived_v1.26.0.rc3)

通过如下指令可以查看支持的GLIBC版本

strings /lib/x86_64-linux-gnu/libm.so.6 | grep GLIBC_

显示如下:

Capture1.PNG

也就是说使用高版本GLIBC编译的程序,无法在低版本GLIBC上设备上执行。

升级目标设备上的GLIBC版本应该可以解决这个问题。不过需要编译glibc,比较麻烦,也可能会引进新的问题。所以决定升级目标机器的Ubuntu版本。

升级本地机到Ubuntu 20.04 LTS

按着最稳妥的做法,升级之前应该沐浴更衣焚香祷告,以免出故障。不过为了节省时间,我就简单的把房间地面用洗地机洗一遍,自己洗了洗手。

然后就是关闭机器上当前正在运行的程序,包括hived(这次记得了备份/dev/shm中的shared_memory.bin到文件目录),更新系统以及软件包等等,重启系统。

原本打算连接键盘,显示器,鼠标等外设后,安全地升级物理机。不过因为之前为了省电,把主机的显卡拔掉了(也不知道是否真省电),所以如果连接外设升级,还要拆机接显卡,实在是太麻烦了。

于是决定直接在SSH里操作,万一出问题了再连显示器等外设去解决(虽然这样风险比较高,不过懒惰的我决定不管那些了)。

直接执行do-release-upgrade,一路确定,好在升级没出啥问题,很是顺畅。

10120a08ea226cbdaab175efa7be19d.png

升级过程中会遇到一些选择界面,如果这时候SSH卡了,就惨了:
20221006_211446.jpg

经过漫长的等待,总算升级完成,重启:

810b21acb3f74e30b9b01db8a7f8734.png

重启后测试了电脑上的老版本hived(v1.25.0)以及新版本hived(v1.26.0rc3)。发现老版本可以正常使用,新版本可以正常打印版本信息hived_v1.26.0.rc3 --version:

"version":{"blockchain_version":"1.26.0","hive_revision":"64f7389128f3c1a59f2c8107509d5f6de37aa2d9","fc_revision":"64f7389128f3c1a59f2c8107509d5f6de37aa2d9"}

电脑上其它程序(不包含虚拟环境下的内容),目测也正常执行。

升级本地机到Ubuntu 22.04 LTS

这时我有点上头了,既然Ubuntu 20.04 LTS升级如此顺利,程序执行起来也没啥问题,那么想必升级到Ubuntu 22.04 LTS也应该不会出啥问题。

重启电脑,SSH登录后,会看到如下提示信息:

New release '22.04.1 LTS' available.
Run 'do-release-upgrade' to upgrade to it.

升级过程和从Ubuntu 18.04 LTS升级到Ubuntu 20.04 LTS大同小异,过程就不再赘述了。升级完成,重启后登录:

7f21d1d2dc473759a92747ee1f919c1.png

不过我本地的EOS命令行钱包cleos无法使用了,提示如下信息:

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

哎,明明Ubuntu 20.04 LTS下,一切都好用,我为啥要折腾呢?呜呜呜呜呜呜。这个不急,以后慢慢折腾吧。

好消息是,hived(v1.25.0)以及新版本hived(v1.26.0rc3)都可以在Ubuntu 20.04 LTS正常运行,毕竟我主要就是要跑hived以及测试新版本hived,所以这个结果不算太坏吧。

虚拟环境virtualenv坏掉

升级到新版,带来的另外一个问题就是机器上在运行的虚拟环境virtualenv下的脚本都无法执行了。

执行python指令(或者随便运行一个脚本),都会出现诸如下边的提示:

image.png

这个是正常的,升级到Ubuntu 20.04 TLS 也会遇到,毕竟python的版本变了,所以需要更新一下。不过我机器上这样环境比较多,脚本也比较混乱,够我修一阵的啦。

20221006_214951.jpg

看来以后做事情要规范一些,就不至于如此混乱了。不过生命就是在于折腾嘛,制造一些麻烦,然后再去解决麻烦,这样才有趣,不是嘛?(呜呜呜呜呜呜呜😭)

PS: 补充个坏消息,貌似我写的Python库,有部分功能也没法用啦,正在DEBUG中。

相关链接