You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu系统下Buildozer打包SDL2_image解压软链接权限错误如何解决?

报错根因

执行tar解压时触发Operation not permitted无法创建软链接的常见诱因有3类:

  1. 构建目录位于不支持软链接的文件系统(如NTFS、FAT32、Windows共享目录),或挂载时配置了nosymfollow参数禁止软链接创建
  2. Buildozer缓存目录/构建目录的权限不足,当前用户无创建软链接的权限
  3. 系统安全模块AppArmor拦截了tar的软链接创建操作
修复方案
  • 调整构建目录位置:将整个Kivy工程移动到当前用户主目录(默认ext4文件系统,支持软链接)下执行构建,同时修改buildozer.spec中build_dir参数指向主目录下的路径,示例:
    build_dir = /home/[你的系统用户名]/kivy_proj/.buildozer
    
    不要将工程放在外接U盘、移动硬盘、双系统共享的Windows分区下构建。
  • 手动提前解压依赖包:先手动执行带sudo的解压命令将报错的压缩包解压到Buildozer缓存目录,跳过自动解压步骤:
    sudo mkdir -p ~/.buildozer/cache/
    cd ~/.buildozer/cache/
    sudo /usr/bin/tar xf SDL2_image-2.0.4.tar.gz
    
    解压完成后重新执行buildozer android debug即可。
  • 临时提升构建权限:如果是目录权限问题,可直接用sudo执行构建命令:
    sudo buildozer android debug
    
  • 禁用webp模块(可选):如果你的应用不需要webp格式图片支持,可以直接在buildozer.spec中配置SDL2_image禁用webp模块,跳过对应软链接创建逻辑:
    p4a.local_recipes =
    p4a.source_archives = SDL2_image=SDL2_image-2.0.4.tar.gz,--disable-webp
    
  • 临时关闭AppArmor(仅当上述方案都无效时尝试):
    sudo systemctl stop apparmor
    
    构建完成后执行sudo systemctl start apparmor恢复安全策略即可。

内容的提问来源于stack exchange,提问作者users

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 10:48:03