当使用ubuntu20.04安装dify插件脚手架的时候,使用dify plugin init
会报以下错误
dify: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by dify)
dify: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by dify)
究其原因就是这里的 GLIBC_2.34 文件仅存在ubuntu22.04版本之上。
于是天然就有一个解决办法,就是将系统更新至22.04版本以上就行了。
但是有时候我们又不想更新系统,此时就可以借助docker了,具体解决步骤如下
- 通过docker拉取一个ubuntu22.04的系统镜像
docker pull ubuntu:22.04
- 将dify脚手架移动至该镜像中
- 将该镜像的dify脚手架的输出地址绑定至主机的地址上
以上步骤均可用一条指令来完成:
docker run -it -v [dify脚手架路径]:[docker镜像存放路径] -v [dify插件部署到主机的路径]:[docker镜像中的插件输出路径] ubuntu:22.04
例如在我机器上的指令为:
docker run -it -v /usr/local/bin/dify:/app/dify -v /home/xxx/Code/PythonCode/dify_plugins:/app/output ubuntu:22.04
当在镜像中使用dify plugin init
初始化了一个插件模板后,从镜像中退回到主机终端中,然后你会在上述指令的[dify插件部署到主机的路径]
部分看到该插件模板代码目录,但是这里会有一个问题,只有root用户才能编辑该目录下的文件。
此时可通过使用如下步骤来解决:
确保目录和文件归当前用户所有
运行以下命令,将目录及其内容的所有者改为当前用户:sudo chown -R $USER /path/to/your/directory
sudo
: 以超级用户权限执行。chown
: 更改所有者。-R
: 递归应用到目录下的所有文件和子目录。$USER
: 当前登录的用户名。/path/to/your/directory
: 替换为你的目标目录路径。
赋予当前用户读写权限
更改权限,确保当前用户对目录及其内容有读写权限:chmod -R u+rw /path/to/your/directory
chmod
: 修改权限。-R
: 递归应用。u+rw
: 为用户(user)添加读(read)和写(write)权限。
验证修改
检查权限是否正确应用:ls -l /path/to/your/directory
输出中,你应该看到目录和文件的所有者是你的用户名,且权限显示为
rw
(例如-rwxr-xr-x
中的前两个rw
表示用户可读写)。
示例
假设你的目录是 /home/user/myfolder
,完整命令如下:
sudo chown -R $USER /home/user/myfolder
chmod -R u+rw /home/user/myfolder
此时就可以愉快的在ubuntu20.04上开发dify插件啦。