[product suggestions] 关于玲珑依赖问题
Tofloor
poster avatar
ipaddr
deepin
2024-12-01 01:12
Author

求大佬赐教,

转玲珑时依赖问题怎么解决,我现在都直接跑系统库里搬依赖了。

  1. 理论上换runtime和base就能解决,但是base和runtime可用的值在那里查询,

怎么知道哪个base和runtime的系统库包含我需要的库。可以完善这部分文档嘛?​

  1. 目前已经尝试ll-pica adep 未能解决问题,为什么pica在linglong.yaml中增加了依赖配置,但结果还是提示缺少依赖。

    剩下一定能解决的笨办法就是把需要的系统库文件都搬到项目里,虽然可以写各shell脚本完成这个工作,但系统库不就是提供给 公共使用的嘛。

Reply Favorite View the author
All Replies
神末shenmo
deepin
Spark-App
2024-12-01 08:07
#1

把需要的系统库文件都搬到项目里,虽然可以写各shell脚本完成这个工作

这样是对的

瞅瞅脚本?

Reply View the author
ipaddr
deepin
2024-12-02 01:29
#2
It has been deleted!
ipaddr
deepin
2024-12-02 01:29
#3
神末shenmo

把需要的系统库文件都搬到项目里,虽然可以写各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 "依赖库已复制并设置可执行权限。"
Reply View the author
神末shenmo
deepin
Spark-App
2024-12-02 01:46
#4
ipaddr

参考这个脚本,做到项目配置脚本中就可以

#!/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 可以直接筛选出来缺失的依赖

你这么弄挺好的啊,可以用来批量上架了

Reply View the author
小小怪冲啊!
deepin
2024-12-02 06:57
#5

applaud

Reply View the author
ipaddr
deepin
2024-12-02 15:26
#6
神末shenmo

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)
Reply View the author
ipaddr
deepin
2024-12-02 17:46
#7

现在卡在: 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

Reply View the author