kylin 2.0 SP1 2403 amd64 安装美图秀秀2.04后无法启动的解决方案

2025.02.26

  • kylin 2.0 SP1 2403 amd64
  • 美图秀秀 版本:2.04

安装命令
sudo apt install mtxx

安装完成后,终端运行 mtxx ,报错
libavro.so 文件缺失之类

解决:
手动安装相关的依赖库软件包

sudo apt install libavro-dev libavro23

安装完后,运行正常

另外,看了 mtxx 的 DEB 包里的几个 安装脚本,觉得有很大的优化余地。同时,也存在很大风险(安装、删除软件包时,可能连带破坏几个库文件)。

gedit /var/lib/dpkg/info/mtxx.p* &

文件1: postinst (安装后脚本)

#!/bin/bash
echo "Start to install"

cp -f /opt/mtxx/MTXX.png /usr/share/pixmaps/
cp -f /opt/mtxx/mtxx /usr/bin/
cp -f /opt/mtxx/libfreeimage.so /usr/lib/
cp -f /opt/mtxx/libfreeimage.so.3 /usr/lib/
cp -f /opt/mtxx/libMTImageCodecs.so /usr/lib/
cp -f /opt/mtxx/libcrypto.so.1.1 /usr/lib/
cp -f /opt/mtxx/libyuv.so /usr/lib/

echo "export MTXX_PATH=/opt/mtxx/mtxx" >> ~/.bashrc
echo "export PATH=/opt/mtxx/mtxx:$PATH" >> ~/.bashrc
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/mtxx" >> ~/.bashrc
echo "export QT_STYLE_OVERRIDE=gtk2" >> ~/.bashrc

echo "set QT_PLUGIN_PATH in file .profile"
echo "Install ok"

风险:前面几个 cp 复制命令,可能会替换系统原有的 *.so 库文件

另外,第1个 cp 的复制 图标,第2个 cp 的复制 程序命令 ,为什么不直接放到 DEB 软件包里?

文件2: postrm (卸载后脚本)

#!/bin/bash
if [ "$action" = "purge" ]
then
echo "Start to remove"
rm -rf /usr/share/applications/mtxx.desktop
rm -rf /usr/share/pixmaps/MTXX.png
rm -rf ~/桌面/mtxx.desktop
rm -rf /opt/mtxx
rm -rf /usr/lib/libMTImageCodecs.so
rm -rf /usr/lib/libfreeimage-3.18.0.so
rm -rf /usr/lib/libfreeimage.so.3
rm -rf /usr/lib/libfreeimage.so
rm -rf /usr/lib/libcrypto.so.1.1
rm -rf /usr/lib/libyuv.so
echo "Remove finished!"
fi

  • 风险:libcrypto.so 库文件,有不少程序都会依赖这个文件。美图秀秀 直接 强制删除了,有点过份吧?

  • 另外,
    rm -rf ~/桌面/mtxx.desktop

删除 的只是 root 超级用户桌面上的 美图秀秀 快捷方式。对 其他普通个人用户 无效。

果然踩坑了!

重新启动后,终端运行 sudo -i 报错.
sudo -i

pulseaudio: error while loading shared libraries: __vdso_time: invalid mode for dlopen(): Invalid argument

但是, 普通用户 暂时好像还算正常. 就是 root 用户被干扰了.

正在想办法补救…