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 超级用户桌面上的 美图秀秀 快捷方式。对 其他普通个人用户 无效。