• Linux Mint(Ubuntu)上 安装 效率神器 utools


    我的 Windows 系统的笔记本只有 256G 固态,磁盘已经快用满了,最近想装个 Linux 玩玩,选择了 Linux Mint,然后就在闲置的移动硬盘上安装了 Linux Mint 21 cinnamon

    刚切换到 Linux 还是很不习惯的,还好想起了一直使用的 utools 效率神器,就准备安装一下。

    下面就把踩坑经验分享出来,希望其他小伙伴少踩坑。

    系统信息:

    $ cat /etc/linuxmint/info
    RELEASE=21
    CODENAME=vanessa
    EDITION="Cinnamon"
    DESCRIPTION="Linux Mint 21 Vanessa"
    DESKTOP=Gnome
    TOOLKIT=GTK
    NEW_FEATURES_URL=https://www.linuxmint.com/rel_vanessa_cinnamon_whatsnew.php
    RELEASE_NOTES_URL=https://www.linuxmint.com/rel_vanessa_cinnamon.php
    USER_GUIDE_URL=https://www.linuxmint.com/documentation.php
    GRUB_TITLE=Linux Mint 21 Cinnamon
    
    $ uname -a
    Linux ss-lm 5.15.0-41-generic #44-Ubuntu SMP Wed Jun 22 14:20:53 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    安装 utools

    下载 utools 安装包:

    wget https://res.u-tools.cn/version2/utools_3.1.0_amd64.deb
    
    • 1

    下载之后双击文件安装。

    但安装之后双击打开没有反应。

    在终端输出 utools 命令打开报错如下:

    A JavaScript error occurred in the main process
    Uncaught Exception:
    Error: libcrypto.so.1.1: æ æ³æ  å¼å
    ±äº«å¯¹è±¡æ件: æ²¡æ    é£ä¸ªæ件æç
        at process.func [as dlopen] (node:electron/js2c/asar_bundle:5:1812)
        at Module._extensions..node (node:internal/modules/cjs/loader:1205:18)
        at Object.func [as .node] (node:electron/js2c/asar_bundle:5:2039)
        at Module.load (node:internal/modules/cjs/loader:988:32)
        at Module._load (node:internal/modules/cjs/loader:829:12)
        at c._load (node:electron/js2c/asar_bundle:5:13343)
        at Module.require (node:internal/modules/cjs/loader:1012:19)
        at require (node:internal/modules/cjs/helpers:102:18)
        at Object.<anonymous> (/opt/uTools/resources/app.asar/node_modules/addon/index.js:18:62)
        at Module._compile (node:internal/modules/cjs/loader:1120:14)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    意思是缺少 libcrypto.so.1.1 库文件。

    遇到这种问题一般就是谷歌一下,检索到以下解决方法:
    ubuntu 22.04 无法打开 utools

    方法有两种:

    • 编译 openssl-1.1.0,获取 libcrypto.so.1.1,复制到 /opt/uTools/ 目录下;
    • 安装 wps 后,用 sudo cp /opt/kingsoft/wps-office/office6/libcrypto.so.1.1 /opt/uTools/命令;

    本来 utools 应该自带这个文件的,现在还得手动去搞,就有点儿 😒。。

    第一种还是可以尝试,第二种直接安装个 wps 好几百 M 大小的东西,未免有点儿脱裤子放气的感觉了。

    不过下面我先给出第三种解决方案。

    最终解决方式 👍

    尝试系统中哪些目录有 libcrypto.so.1.1

    $ sudo find / -name "libcrypto.so.1.1"
    /data/software/WindTerm_2.5.0/lib/libcrypto.so.1.1
    
    • 1
    • 2

    惊喜的发现,开源终端 WindTerm 2.5.0 安装包 中包含了这个文件。最近正好将终端切换到 WindTerm,真的香。

    需要说明的是,有些同名的libcrypto.so.1.1文件,可能用不了,就像下面的踩坑章节所说的:k3s 集群中镜像 layer 中的这个文件,拷贝到 utools 目录下就用不了。

    将 WindTerm 安装包中 WindTerm_2.5.0/lib/libcrypto.so.1.1 的文件拷贝到 /opt/uTools 目录下:

    $ sudo cp /data/software/WindTerm_2.5.0/lib/libcrypto.so.1.1 /opt/uTools/
    
    • 1

    拷贝完成之后,utools 即可以打开了。

    对于终端方案 WindTerm,关键时刻还能帮我解决 utools 安装的棘手问题,真是越用越香了!!😋

    配置开机自启动

    现代的 linux 桌面,用户登录自启动程序,基本都是通过在 $HOME/.config/autostart 建立一个 .desktop 文件实现的。

    • 软件自己有设置的话,软件会自动在 autostart 下生成一个 .desktop 文件
    • 软件没有设置的话,自己建一个
    • 或者把 utools.desktop 文件(在 /usr/share/applications下)复制或者软链到 autostart 下即可

    看到 /usr/share/applications 下是有 utools.desktop 文件的:

    $ ll /usr/share/applications | grep utools
    -rw-rw-r--   1 root root   176 119 17:10 utools.desktop
    
    • 1
    • 2

    创建软连接:

    $ ln -s   /usr/share/applications/utools.desktop $HOME/.config/autostart/
    
    $ ll $HOME/.config/autostart/ | grep utools
    lrwxrwxrwx  1 ss ss   38 1119 22:42 utools.desktop -> /usr/share/applications/utools.desktop
    
    • 1
    • 2
    • 3
    • 4

    🙈 踩坑经验(可以不看 🙈)

    安装 Wps 太鸡肋了,我们安装低版本 openssl 的方式。

    系统自带的 openssl 版本如下:

    $ openssl  version
    OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)
    
    • 1
    • 2

    下面进行安装 openssl 1.1.0。

    openssl 1.1.0

    先下载安装包:

    $ wget https://www.openssl.org/source/openssl-1.1.0g.tar.gz
    
    • 1

    执行下面命令又报错了:

    $ ./config -Wl,--enable-new-dtags,-rpath,'$(LIBRPATH)'
    Operating system: x86_64-whatever-linux2
    "glob" is not exported by the File::Glob module
    Can't continue after import errors at ./Configure line 17.
    BEGIN failed--compilation aborted at ./Configure line 17.
    "glob" is not exported by the File::Glob module
    Can't continue after import errors at ./Configure line 17.
    BEGIN failed--compilation aborted at ./Configure line 17.
    This system (linux-x86_64) is not supported. See file INSTALL for details.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    解决方案参考:GmSSL Linux 编译, 环境搭建

    这是由于 Perl package 导致,修改 Configure 文件 参考链接

    修改后再次尝试,又出现另一个错误:

    $ ./config -Wl,--enable-new-dtags,-rpath,'$(LIBRPATH)'
    Operating system: x86_64-whatever-linux2
    Configuring for linux-x86_64
    Configuring OpenSSL version 1.1.0g (0x1010007fL)
        no-asan         [default]  OPENSSL_NO_ASAN
        no-crypto-mdebug [default]  OPENSSL_NO_CRYPTO_MDEBUG
        no-crypto-mdebug-backtrace [default]  OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE
        no-ec_nistp_64_gcc_128 [default]  OPENSSL_NO_EC_NISTP_64_GCC_128
        no-egd          [default]  OPENSSL_NO_EGD
        no-fuzz-afl     [default]  OPENSSL_NO_FUZZ_AFL
        no-fuzz-libfuzzer [default]  OPENSSL_NO_FUZZ_LIBFUZZER
        no-heartbeats   [default]  OPENSSL_NO_HEARTBEATS
        no-md2          [default]  OPENSSL_NO_MD2 (skip dir)
        no-msan         [default]  OPENSSL_NO_MSAN
        no-rc5          [default]  OPENSSL_NO_RC5 (skip dir)
        no-sctp         [default]  OPENSSL_NO_SCTP
        no-ssl-trace    [default]  OPENSSL_NO_SSL_TRACE
        no-ssl3         [default]  OPENSSL_NO_SSL3
        no-ssl3-method  [default]  OPENSSL_NO_SSL3_METHOD
        no-ubsan        [default]  OPENSSL_NO_UBSAN
        no-unit-test    [default]  OPENSSL_NO_UNIT_TEST
        no-weak-ssl-ciphers [default]  OPENSSL_NO_WEAK_SSL_CIPHERS
        no-zlib         [default]
        no-zlib-dynamic [default]
    Configuring for linux-x86_64
    Something wrong with this line:
    Program fragment delivered error ``"glob" is not exported by the File::Glob module
    at /home/ss/openssl-1.1.0/openssl-1.1.0g/test/build.info at ./Configure line 1613.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    原因同上,修改 test/build.info 中, 查找 File::Glob

    修改后再次尝试,又报其他错误:

    crypto/aes/aes_ecb.c:10:10: fatal error: assert.h: No such file or directory
    
    • 1

    到这里心态已经炸,还好 WindTerm 拯救了我。。😄

    其他尝试(可以不看 🙈🙈)

    find 查找系统中的 libcrypto.so.1.1 库文件,发现有些镜像层中包含这个文件:

    $ sudo find / -name libcrypto.so.1.1*
    /run/k3s/containerd/io.containerd.runtime.v2.task/k8s.io/d98e0f596532d8c123db79487daed96db4f9f97416ca7c9df59c1259717fb07a/rootfs/lib/libcrypto.so.1.1
    
    $ sudo cp /run/k3s/containerd/io.containerd.runtime.v2.task/k8s.io/d98e0f596532d8c123db79487daed96db4f9f97416ca7c9df59c1259717fb07a/rootfs/lib/libcrypto.so.1.1 /opt/uTools/
    
    • 1
    • 2
    • 3
    • 4

    然后满心欢喜 😋 将她 拷贝到 utools 目录下,结果还是不行,又缺少了其他库文件 😱:

    
    $ utools
    A JavaScript error occurred in the main process
    Uncaught Exception:
    Error: libc.musl-x86_64.so.1: æ æ³æ     å¼å
    ±äº«å¯¹è±¡æ件: æ²¡æ    é£ä¸ªæ件æç
        at process.func [as dlopen] (node:electron/js2c/asar_bundle:5:1812)
        at Module._extensions..node (node:internal/modules/cjs/loader:1205:18)
        at Object.func [as .node] (node:electron/js2c/asar_bundle:5:2039)
        at Module.load (node:internal/modules/cjs/loader:988:32)
        at Module._load (node:internal/modules/cjs/loader:829:12)
        at c._load (node:electron/js2c/asar_bundle:5:13343)
        at Module.require (node:internal/modules/cjs/loader:1012:19)
        at require (node:internal/modules/cjs/helpers:102:18)
        at Object.<anonymous> (/opt/uTools/resources/app.asar/node_modules/addon/index.js:18:62)
        at Module._compile (node:internal/modules/cjs/loader:1120:14)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    😘 到这里有了 WindTerm 拯救了我。。😄

  • 相关阅读:
    大数据调优与传统数据调优之间有哪些异同点?
    列表以及字典的练习
    【机器学习】机器学习知识点全面总结(监督学习+无监督学习)
    2-2线性表-链表
    微服务架构演进
    Python爬取代理IP
    IDEA中JDBC连接MYSQL数据库步骤超详细总结
    oracle数据库常见巡检脚本-系列一
    Linux学习笔记4 - 基础命令
    ElasticSearch容器化从0到1实践(问题汇总)
  • 原文地址:https://blog.csdn.net/ll837448792/article/details/127929704