awtk
awtk copied to clipboard
Linux版AWStudio安装包在安装时执行危险操作
发现github上不少仓库都转到AWStudio了,那么只能安装AWStudio了。我使用的是ArchLinux系的发行版,于是转换deb包到pacman包格式,然而在转换时发现安装脚本里有些比较危险的操作:
# Soft link libsndio.so to /usr/lib, remove first.
if [ -f "$LIB_PATH/libsndio.so.6.1" ]; then
rm "$LIB_PATH/libsndio.so.6.1"
fi
ln -sf "$AW_STUDIO_INSTALL_PATH/node_modules/awtk/libsndio.so.6.1" "$LIB_PATH/libsndio.so.6.1"
直接替换系统库!会影响系统库的兼容性和系统的依赖关系。
if [ ! -f "/usr/lib/libgit2.so.1.3" ]; then
sudo cp $lg2_path/libgit2.so.1.3 /usr/lib
echo "copy libgit2.so.1.3 to /usr/lib"
fi
if [ ! -f "/usr/lib/libcrypto.so.1.0.0" ]; then
sudo cp $lg2_path/libcrypto.so.1.0.0 /usr/lib
echo "copy libcrypto.so.1.0.0 to /usr/lib"
fi
if [ ! -f "/usr/lib/libssl.so.1.0.0" ]; then
sudo cp $lg2_path/libssl.so.1.0.0 /usr/lib
echo "copy libssl.so.1.0.0 to /usr/lib"
fi
直接安装存在于软件仓库里的包的库!会影响这些库对应的软件包的正常安装使用。
理想的处理方法应该是由安装包的依赖关系来管理依赖库。如果不想利用依赖关系而直接安装使用第三方库,那么应该按如下方式进行:
- 将第三方库安装到
/usr/lib目录之外以防止跟软件仓库里的冲突 - 编译AWStudio软件时使用
-Wl,-rpath选项指定库的链接路径 - 如果不想用
-Wl,-rpath来固定链接路径,可以在运行AWStudio软件时将第三方库路径写入LD_LIBRARY_PATH环境变量的开头
AWStudio第一次运行时为何要超级用户权限?这是要做什么动作?

目前来说,Linux版的AWStudio的可信度非常低,我不太敢在我的开发系统上运行这个软件,就怕它搞坏我的系统导致我干不了活!