From 485a2e01ff0fbfbc5bb8daadc50e553fff9f71b7 Mon Sep 17 00:00:00 2001 From: jim800121chen Date: Thu, 16 Apr 2026 08:11:49 +0800 Subject: [PATCH] =?UTF-8?q?fix(local-tool):=20bootstrap-linux.sh=20?= =?UTF-8?q?=E8=87=AA=E5=8B=95=E5=AE=89=E8=A3=9D=20appimagetool?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 使用者在 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) --- local-tool/installer/linux/build-appimage.sh | 11 +++++++++-- local-tool/scripts/bootstrap-linux.sh | 18 ++++++++++++++++-- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/local-tool/installer/linux/build-appimage.sh b/local-tool/installer/linux/build-appimage.sh index b82a55a..566be86 100755 --- a/local-tool/installer/linux/build-appimage.sh +++ b/local-tool/installer/linux/build-appimage.sh @@ -140,8 +140,15 @@ chmod +x "$APPDIR/AppRun" echo "==> 檢查 appimagetool" if ! command -v appimagetool &> /dev/null; then echo "❌ appimagetool 未安裝。" - echo " 下載:https://github.com/AppImage/AppImageKit/releases/latest/download/appimagetool-x86_64.AppImage" - echo " 安裝:chmod +x appimagetool-x86_64.AppImage && sudo mv appimagetool-x86_64.AppImage /usr/local/bin/appimagetool" + echo "" + 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 fi diff --git a/local-tool/scripts/bootstrap-linux.sh b/local-tool/scripts/bootstrap-linux.sh index 582b94c..88cea07 100755 --- a/local-tool/scripts/bootstrap-linux.sh +++ b/local-tool/scripts/bootstrap-linux.sh @@ -60,13 +60,27 @@ if ! command -v node >/dev/null || [[ "$(node -v)" != v20.* ]]; then fi 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 go install github.com/wailsapp/wails/v2/cmd/wails@latest fi wails doctor || log "wails doctor 有警告,繼續" -log "[5/5] 開始 build(target=$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] 開始 build(target=$TARGET)" log "ffmpeg 使用 LGPL v3 build(v2 TDD §4:BtbN n7.1 LGPL)" make vendor-python-linux vendor-wheels-linux vendor-ffmpeg-linux