ubuntu 16.04 LTS碰到同样问题,已解决。
libcryto是libssl1里边的,可以通过dpkg -S libcrypto.so
查看版本,我的机器返回的是:
libssl-dev:amd64: /usr/lib/x86_64-linux-gnu/libcrypto.so
libssl1.0.0:amd64: /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
系统版本是1.0.0,要解决这个问题需要安装1.1版本的openssl,但是1.1不在16.04的repository里,所以需要手动安装,不过最好不要通过deb安装,可能搞乱系统,所以我是本地编译安装然后指定路径运行utools的方法解决的,具体过程如下:
首先新建一个希望安装openssl的文件夹,例如mkdir $HOME/openssl
,
然后从https://launchpad.net/ubuntu/+source/openssl 下载1.1版本的源文件,选择1.1.0g-2ubuntu4 -> openssl_1.1.0g.orig.tar.gz
解压出来,
cd openssl-1.1.0g
./config --prefix=$HOME/openssl --openssldir=$HOME/openssl
make
make test
make install
如果报错应该是dependencies问题,我是直接成功了,可以在openssl/lib
里看到libcrypto.so.1.1。
安装好了之后下一步就是要指定路径运行了,首先把openssl的安装路径加入到环境变量里,我用的是zshrc,所以在$HOME/.zshrc
里加入一行:
export LD_LIBRARY_PATH="/home/your_user_name/openssl/lib:$LD_LIBRARY_PATH"
,bashrc同理,加完以后记得source刷新一下。
接下来需要更改utools的desktop文件,utools.desktop
文件可以在/usr/share/applications
找到,然后对其中EXEC一行进行如下修改:
EXEC=env LD_LIBRARY_PATH=/home/your-user-name/openssl/lib:$LD_LIBRARY_PATH /opt/uTools/utools %U
另外如果有Try Exec
的话记得注释掉。
然后应该问题就解决了。