导读:我的 24 小时“排雷”马拉松
期待 vs. 现实:这一切是怎么开始的?
这一切都始于一个简单的念头:“既然网上这么多文章和 YouTube 视频都成功在树莓派上运行了 Antigravity,那我手边这台 Pi 4 8GB 加上刚装好的 Ubuntu 24.04 没道理不行吧?”
没想到,这就是“踩雷”的开始。从满心期待地双击运行,到满屏幕弹出的错误代码,我才发现 Ubuntu 24.04 的系统变革与 Pi 4 的硬件限制,交织成了一张巨大的兼容性地狱网。这篇文章记录了我如何与 Gemini AI 彻夜奋战一天一夜,从底层指令集模拟到手动修复 SSL 库,最终让 Antigravity 在 Pi 4 上成功运行的完整全记录。
技术全记录:五大核心难关与代码实现
1. 核心依赖:Ubuntu 24.04 的 t64 转型
Ubuntu 24.04 为了应对 2038 年问题,将许多库重新命名(如 libasound2 变为 libasound2t64),导致旧版软件启动时找不到对应的 .so 文件。
Bash
# 補齊 Ubuntu 24.04 缺失的關鍵依賴sudo apt updatesudo apt install -y libnss3 libnspr4 libatk1.0-0t64 libatk-bridge2.0-0t64libcups2t64 libdrm2 libgtk-3-0t64 libgbm1 libasound2t64 libsecret-1-0
2. 手动提取:消失的 OpenSSL 1.1
Antigravity 的后端 Server 需要旧版 libssl1.1,但 Ubuntu 24.04 仅预装了 3.0 版本。我们必须手动从外部提取。
Bash
# 在家目錄處理提取,再搬移至系統路徑cd ~wget http://ports.ubuntu.com/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_arm64.debmkdir -p ~/libssl_tmpdpkg-deb -x libssl1.1_1.1.1f-1ubuntu2_arm64.deb ~/libssl_tmp/
# 將 .so 檔案搬移至程式路徑並建立軟連結sudo cp ~/libssl_tmp/usr/lib/aarch64-linux-gnu/libssl.so.1.1 /usr/share/antigravity/sudo cp ~/libssl_tmp/usr/lib/aarch64-linux-gnu/libcrypto.so.1.1 /usr/share/antigravity/sudo ln -sf /usr/share/antigravity/libssl.so.1.1 /usr/lib/aarch64-linux-gnu/libssl.so.1.1sudo ln -sf /usr/share/antigravity/libcrypto.so.1.1 /usr/lib/aarch64-linux-gnu/libcrypto.so.1.1sudo ldconfig
3. 解除 AppArmor 限制与沙盒权限
Ubuntu 24.04 对非特权命名空间的限制,会直接让 Electron 的沙盒机制崩溃。
Bash
# 解除核心限制sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0echo "kernel.apparmor_restrict_unprivileged_userns=0" | sudo tee /etc/sysctl.d/99-antigravity.conf
# 修正核心沙盒權限 (SetUID)sudo chown root:root /usr/share/antigravity/chrome-sandboxsudo chmod 4755 /usr/share/antigravity/chrome-sandbox
4. 终极解决:SIGILL 非法指令 (QEMU 模拟)
这是最难的一关:Antigravity 内建的 Language Server 使用了 Pi 4 (Cortex-A72) 不支持的指令集。我们通过 QEMU 用户模式进行指令集模拟。
Bash
# 安裝 QEMU 靜態模擬器sudo apt install -y qemu-user-static
# 建立 Wrapper 腳本包裝不相容的二進制檔sudo mv/usr/share/antigravity/resources/app/extensions/antigravity/bin/language_server_linux_arm/usr/share/antigravity/resources/app/extensions/antigravity/bin/language_server_linux_arm.origsudo tee/usr/share/antigravity/resources/app/extensions/antigravity/bin/language_server_linux_arm <<'EOF'#!/bin/bashexport LD_LIBRARY_PATH=".:/usr/share/antigravity:$LD_LIBRARY_PATH"exec qemu-aarch64-static/usr/share/antigravity/resources/app/extensions/antigravity/bin/language_server_linux_arm.orig "$@"EOFsudo chmod +x/usr/share/antigravity/resources/app/extensions/antigravity/bin/language_server_linux_arm
5. 整合:最终启动脚本
Bash
#!/bin/bashAPP_DIR="/usr/share/antigravity"cd "$APP_DIR" || exitexport LD_LIBRARY_PATH=".:/usr/lib/aarch64-linux-gnu:$LD_LIBRARY_PATH"exec ./antigravity --no-sandbox --disable-gpu --disable-dev-shm-usage--disable-renderer-backgrounding --disable-background-timer-throttling "$@"
结语:AI 时代的调试新范式
回顾这一天一夜,虽然踩雷踩到怀疑人生,但也见证了 AI 在复杂调试中的强大。这不只是一次成功的软件部署,更是一场关于 “人类经验 + AI 逻辑” 的完美实战。希望这份记录能让所有在 Pi4 上奋战的开发者们,少走 24 小时的弯路。
官方网站:https://edatec.cn/zh/cm0
淘宝店铺:https://edatec.taobao.com/
475