Ghost 0.9.0 Upgrade

最近打開 Ghost 一直提醒我更新, 所以這篇文章就在一邊更新的過程中催生出來, 祝我好運吧!

How to upgrade (英文官方連結)

Preparation

  • 備份 Export & Import

    將資料先以 JSON 格式匯出, 以免悲劇性的錯誤發生 (但順利升級的話是不用特別再匯入的)。

  • 確認能夠停止、重新啟動 Ghost

    這部分可以參考 官方中文安裝文件, 其中列舉安裝方式是最終目標都是將 Ghost 部署到線上的機器, 所以會有幾種登出 SSH 仍不要停掉 Ghost 的做法, 這時候就會牽涉本章節標題的步驟 (確認能夠停止、重新啟動 Ghost), 但如果有閱讀過筆者 How to setup Ghost blog platform (下) , 會知道筆者平時是透過 npm start run 在本地端, 等文章完成後, 再透過 buster 的腳本將部落格轉成靜態網頁發佈至 github.io, 所以關於這種做法要停止、重新開始則僅需要停掉 npm start 這個 process, 等更新完之後再重新啟動即可。

  • 版本進版的挑選

    遵循 Semantic Versioning 的版本規範 Version : Major.Minor.Patch, 所以官網關於在進版上有一些建議 參考連結, 避免使用到帶有 Upgrade Bug 的版本。

Upgrading

  • 停止 Ghost 運行

    先根據目前帶起 Ghost 的執行方式, 使其停止運行。

  • 下載欲更新版本

    Ghost.org download page, or GitHub release page

  • 解壓縮下載包

    嗯, 就是解壓縮 you know ~

  • 刪除原始安裝路徑下的部分資料夾、檔案, 並進行替換

    不要刪掉 content 資料夾! 不要刪掉 content 資料夾! 不要刪掉 content 資料夾! 很重要所以說三遍, 這邊列出我有替換的部分: core folderindex.jsnpm-shrinkwrap.jsonnpm-shrinkwrap.jsonPRIVACY.mdREADME.md, 以及最麻煩的 content/themes/casper (要手動 merge 修改過的部分到新的版本, 筆者因為自身有引用一些語法高光、數學公式的 javascript 以及 修改過 Theme 的字體大小, 若皆無則可直接使用新版本覆蓋)。

  • 確認檔案的權限

    這邊因為 Ghost 可能部署在雲端由多人共筆, 所以要確認使用者皆有讀寫的權限。

  • 更新 Ghost 的相依套件

    在 Ghost 安裝目錄可以見到 contentcore, 在此路徑下執行 npm install --production (應無任何錯誤產生, 但警告可以容許)。

  • 重啟 Ghost

    先根據自身帶起 Ghost 的執行方式, 使其重新運行。

  • Troubleshooting

    官網參考資料

可喜可賀, 筆者總算升級完成, 但似乎覺得好像更新後也沒什麼不同。世界依舊美好 :)