fix(local-tool): bootstrap-linux.sh 自動安裝 appimagetool

使用者在 Linux build 時遇到「appimagetool 未安裝」錯誤(wails binary
已產出 9.3M,但打包 AppImage 失敗)。原本 bootstrap-linux.sh 只裝 Go /
Node / Wails CLI,沒裝 appimagetool,build-appimage.sh 到打包步驟才
fail。

修法:

1. bootstrap-linux.sh 新增 [5/6] 步驟自動下載 + 安裝 appimagetool
   - 從 AppImage/appimagetool 官方 continuous release 拉
     appimagetool-x86_64.AppImage
   - chmod +x + sudo mv 到 /usr/local/bin/appimagetool
   - 已安裝則跳過

2. build-appimage.sh 的 appimagetool not found 錯誤訊息更新
   - 提供一鍵安裝 curl 指令(不需重跑整個 bootstrap)
   - 提示可重跑 bootstrap-linux.sh 一併補所有依賴
   - 舊訊息裡的 URL 指向已 archived 的 AppImageKit repo,換成
     AppImage/appimagetool(新 repo 位置)

使用者立即可用(不想重跑 bootstrap):
  curl -fsSL https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage \\
    -o /tmp/appimagetool && chmod +x /tmp/appimagetool && sudo mv /tmp/appimagetool /usr/local/bin/appimagetool
  make appimage

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
jim800121chen 2026-04-16 08:11:49 +08:00
parent fbd585ab73
commit 485a2e01ff
2 changed files with 25 additions and 4 deletions

View File

@ -140,8 +140,15 @@ chmod +x "$APPDIR/AppRun"
echo "==> 檢查 appimagetool" echo "==> 檢查 appimagetool"
if ! command -v appimagetool &> /dev/null; then if ! command -v appimagetool &> /dev/null; then
echo "❌ appimagetool 未安裝。" echo "❌ appimagetool 未安裝。"
echo " 下載https://github.com/AppImage/AppImageKit/releases/latest/download/appimagetool-x86_64.AppImage" echo ""
echo " 安裝chmod +x appimagetool-x86_64.AppImage && sudo mv appimagetool-x86_64.AppImage /usr/local/bin/appimagetool" echo " 一鍵安裝(推薦):"
echo " curl -fsSL https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage -o /tmp/appimagetool \\"
echo " && chmod +x /tmp/appimagetool \\"
echo " && sudo mv /tmp/appimagetool /usr/local/bin/appimagetool"
echo ""
echo " 或重跑 bootstrap-linux.sh會自動安裝所有依賴"
echo " bash scripts/bootstrap-linux.sh"
echo ""
exit 1 exit 1
fi fi

View File

@ -60,13 +60,27 @@ if ! command -v node >/dev/null || [[ "$(node -v)" != v20.* ]]; then
fi fi
command -v pnpm >/dev/null || sudo npm i -g pnpm command -v pnpm >/dev/null || sudo npm i -g pnpm
log "[4/5] 安裝 Wails CLI" log "[4/6] 安裝 Wails CLI"
if ! command -v wails >/dev/null; then if ! command -v wails >/dev/null; then
go install github.com/wailsapp/wails/v2/cmd/wails@latest go install github.com/wailsapp/wails/v2/cmd/wails@latest
fi fi
wails doctor || log "wails doctor 有警告,繼續" wails doctor || log "wails doctor 有警告,繼續"
log "[5/5] 開始 buildtarget=$TARGET" log "[5/6] 安裝 appimagetool打包 AppImage 用)"
# appimagetool 只在 target=appimage 時才真的需要,但一併裝起來省事。
# 官方 release 就是一個 self-contained AppImage下載後 chmod +x 即可用。
if ! command -v appimagetool >/dev/null; then
APPIMAGETOOL_URL="https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage"
log " → 下載 appimagetool from $APPIMAGETOOL_URL"
curl -fsSL "$APPIMAGETOOL_URL" -o /tmp/appimagetool
chmod +x /tmp/appimagetool
sudo mv /tmp/appimagetool /usr/local/bin/appimagetool
log " → 已安裝到 /usr/local/bin/appimagetool"
else
log " → appimagetool 已安裝,跳過"
fi
log "[6/6] 開始 buildtarget=$TARGET"
log "ffmpeg 使用 LGPL v3 buildv2 TDD §4BtbN n7.1 LGPL" log "ffmpeg 使用 LGPL v3 buildv2 TDD §4BtbN n7.1 LGPL"
make vendor-python-linux vendor-wheels-linux vendor-ffmpeg-linux make vendor-python-linux vendor-wheels-linux vendor-ffmpeg-linux