讓 Filemote 保持最新
每一份安裝都會在啟動時檢查一次更新,之後每天一次。接下來會發生什麼取決於平台,因為兩者的限制 確實不同:Windows 有一個可以詢問你的視窗,而 Linux 伺服器沒有。
Windows:由設定程式詢問
在 Windows 上,更新由設定程式負責,代理刻意保持沉默,這樣你永遠不會收到兩個提示,也不會有 兩個安裝程式同時執行。
當有較新的版本時,你會看到一個提供兩個選項的對話方塊:
- 安裝會帶進度列下載該版本,然後關閉應用程式,好讓安裝程式能替換那些否則被鎖住的檔案。之後 的事由安裝程式接手。
- 略過會記住這個特定版本並不再就它詢問。更晚的版本仍會再次提示。
Linux 與 macOS:由代理自行處理
沒有可供詢問的視窗,因此代理會自行下載並套用更新。
它不會打斷你:當有檔案正在傳輸時,它會記錄 transfers in progress — deferring to the next check,把更新留到下一個週期。
在替換任何東西之前,代理會檢查磁碟剩餘空間是否足夠,並驗證下載檔案的 SHA-256。替換二進位檔之後
,它會用 --version 執行新檔並比對其輸出;若這項冒煙測試失敗,就還原先前的二進位檔並放棄本次
更新。
當安裝目錄屬於 root 時
代理以你的使用者身分執行,而 /opt/filemote 屬於 root,因此它無法安裝到那裡。它的判斷方式是
真的去嘗試寫入一個檔案——在唯讀掛載與容器中,權限位元說謊的情況屢見不鮮——當目錄無法寫入時,它會
下載並驗證更新,解壓縮到 /tmp/.filemote-update,並在記錄中給出收尾所需的那一行指令:
sudo /opt/filemote/apply-update.sh /tmp/.filemote-update
該指令碼會停止服務,在新的二進位檔通過冒煙測試之前保留舊的,未通過則回復,接著更新 AI 服務的 原始碼並重新啟動服務。
1.11.0 及更早版本的壓縮檔並未包含 apply-update.sh,因此在那些安裝上,上面這行指令指向的是
一個不存在的檔案。在你升級到較新的建置之前,請透過重新執行新壓縮檔中的安裝指令碼來更新:
tar xzf filemote-<新版本>-linux-x64.tar.gz
cd filemote-<新版本>-linux-x64
sudo ./install.sh
重新執行指令碼會保留你的設定與已下載的模型。
更新會替換什麼
只有兩樣:代理的二進位檔與 AI 服務的原始碼。這條規則採用允許清單而非排除清單,因此日後壓縮檔 結構如何變動,都不會悄悄開始覆寫別的東西。
更新永遠不會動到:
app_settings.json—— 你的登入資訊、已配對的權杖與分享的資料夾;models—— 已下載的 AI 模型,也就是最昂貴的部分;knowledge_base—— 你建立過索引的一切;- 記錄已安裝哪些 Python 相依套件的標記檔。
Windows 上同樣的保證來自另一個原因:就地升級從不執行解除安裝程式,因此私有 Python、模型與設定 都會保留。
若新版本變更了 Python 相依需求,AI 服務會察覺並在下次啟動 AI 時重新安裝它們。
可攜版與 ClickOnce
- 可攜版沒有更新機制。請下載新的壓縮檔並替換整個 資料夾。
- ClickOnce 版本會在每次啟動時自我更新——它存在的 全部理由就是這個。
如何關閉
在 app_settings.json 中把 UpdateCheckEnabled 設為 false 即可完全停止檢查,或在 stable
與 beta 之間切換 UpdateChannel。這兩個欄位都在
手動設定代理中有說明。
偶爾會有版本被標記為低於支援下限。這類版本會以「請盡快安裝」記入記錄——通常是安全性修正——即使 你平時習慣延後更新,它們也值得立即處理。
更新於 2026-07-31