神末shenmo
2024-12-01 08:07 deepin
Spark-App
把需要的系统库文件都搬到项目里,虽然可以写各shell脚本完成这个工作
这样是对的
瞅瞅脚本?
Reply Like 0 View the author
把需要的系统库文件都搬到项目里,虽然可以写各shell脚本完成这个工作
这样是对的
瞅瞅脚本?
把需要的系统库文件都搬到项目里,虽然可以写各shell脚本完成这个工作
这样是对的
瞅瞅脚本?
参考这个脚本,做到项目配置脚本中就可以
#!/bin/bash
# 指定目标目录
TARGET_DIR="/项目libs的目录"
# 创建目标目录(如果不存在)
mkdir -p "$TARGET_DIR"
# 指定要处理的文件,需要先执行一次编译,提取出appimage中的可执行文件,也可以手动提取
EXE_FILE="/path/可执行文件"
# 检查文件是否为可执行文件
if [[ -x "$EXE_FILE" && -f "$EXE_FILE" ]]; then
echo "正在处理文件: $EXE_FILE"
# 使用ldd获取依赖库
ldd "$EXE_FILE" | grep "=>" | awk '{print $3}' | while read -r lib; do
if [[ -n "$lib" ]]; then
echo "正在复制依赖库: $lib"
# 复制依赖库到目标目录
cp -L "$lib" "$TARGET_DIR/"
fi
done
else
echo "文件 $EXE_FILE 不是可执行文件或不存在。"
exit 1
fi
# 对目标目录中的所有库文件设置可执行权限
echo "正在设置可执行权限..."
chmod +x "$TARGET_DIR"/*
echo "依赖库已复制并设置可执行权限。"
参考这个脚本,做到项目配置脚本中就可以
#!/bin/bash
# 指定目标目录
TARGET_DIR="/项目libs的目录"
# 创建目标目录(如果不存在)
mkdir -p "$TARGET_DIR"
# 指定要处理的文件,需要先执行一次编译,提取出appimage中的可执行文件,也可以手动提取
EXE_FILE="/path/可执行文件"
# 检查文件是否为可执行文件
if [[ -x "$EXE_FILE" && -f "$EXE_FILE" ]]; then
echo "正在处理文件: $EXE_FILE"
# 使用ldd获取依赖库
ldd "$EXE_FILE" | grep "=>" | awk '{print $3}' | while read -r lib; do
if [[ -n "$lib" ]]; then
echo "正在复制依赖库: $lib"
# 复制依赖库到目标目录
cp -L "$lib" "$TARGET_DIR/"
fi
done
else
echo "文件 $EXE_FILE 不是可执行文件或不存在。"
exit 1
fi
# 对目标目录中的所有库文件设置可执行权限
echo "正在设置可执行权限..."
chmod +x "$TARGET_DIR"/*
echo "依赖库已复制并设置可执行权限。"
ldd -u 可以直接筛选出来缺失的依赖
你这么弄挺好的啊,可以用来批量上架了
ldd -u 可以直接筛选出来缺失的依赖
你这么弄挺好的啊,可以用来批量上架了
实测会有点小问题,里面复制依赖部分直接copy到终端执行没问题,但是写道sh文件里执行会丢一部分,筛选看了以下,软连接的会变成not,但是直接终端复制没问题。
/lib/x86_64-linux-gnu/libEGL.so.1
正在复制依赖库: /lib/x86_64-linux-gnu/libEGL.so.1
not
正在复制依赖库: not
cp: 对 'not' 调用 stat 失败: 没有那个文件或目录
not
正在复制依赖库: not
cp: 对 'not' 调用 stat 失败: 没有那个文件或目录
not
正在复制依赖库: not
cp: 对 'not' 调用 stat 失败: 没有那个文件或目录
然后再有就是还会有一些其他依赖问题,比如昨晚自动跑打包测试时出现这个情况, 这个webkit2gtk还是缺东西,这次缺的不是依赖库而是具体的可执行文件,不知道能不能一样复制过来安装进去
ERROR **: 15:20:34.661: Unable to spawn a new child process: Failed to spawn child process “/usr/lib/x86_64-linux-gnu/webkit2gtk-4.0/WebKitNetworkProcess” (No such file or directory)
现在卡在: ERROR **: 17:44:45.837: Unable to spawn a new child process: Failed to spawn child process “/usr/lib/x86_64-linux-gnu/webkit2gtk-4.0/WebKitNetworkProcess” (No such file or directory)
/opt/apps/io.github.bambulab.BambuStudio/files/bin/io.github.bambulab.BambuStudio: line 4: 19 Trace/breakpoint trap ./AppRun
Error: CODE=-1
Popular Events
More
求大佬赐教,
转玲珑时依赖问题怎么解决,我现在都直接跑系统库里搬依赖了。
怎么知道哪个base和runtime的系统库包含我需要的库。可以完善这部分文档嘛?
目前已经尝试ll-pica adep 未能解决问题,为什么pica在linglong.yaml中增加了依赖配置,但结果还是提示缺少依赖。
剩下一定能解决的笨办法就是把需要的系统库文件都搬到项目里,虽然可以写各shell脚本完成这个工作,但系统库不就是提供给 公共使用的嘛。