Ghostは月一回前後のスパンでアップデートをリリースしています。
新しい機能やBugfix、脆弱性対応を取り入れるためにはできる限り頻繁にアップデートを反映していきたいものです。
今回はその手順を簡単に。
https://ghost.org/download/ から最新のzipのURLを取得します。
ちなみに、 https://ghost.org/zip/ghost-latest.zip このURLで最新版がとれるみたいです。
URLがわかったら、適当な作業ディレクトリにダウンロードします。
今回は~/tmp/
にダウンロードします。
※ここでrootとかghost管理用ユーザとか、適切なアカウントに切り替えるのを忘れないように
$ curl -L https://ghost.org/zip/ghost-latest.zip -o ~/tmp/ghost.zip
ダウンロードしてきたzipファイルを解凍します。
zipと同じ~/tmp/
に展開します。
$ unzip -uo ~/tmp/ghost.zip -d ~/tmp/ghost
Ghostインストールディレクトリから、下記のファイル・ディレクトリを削除します
$ cd /your/ghost/dir
$ rm index.js
$ rm package.json
$ rm npm-shrinkwrap.json
$ rm -rf core/
~/tmp/ghost
から、先ほど削除したファイル・ディレクトリと同名のものをコピーしてきます。
$ cd /your/ghost/dir
$ cp ~/tmp/ghost/index.js index.js
$ cp ~/tmp/ghost/package.json package.json
$ cp ~/tmp/ghost/npm-shrinkwrap.json npm-shrinkwrap.json
$ cp -r ~/tmp/ghost/core/ core/
このタイミングで、必要であればテーマも更新しておきます。
標準のCasperを使ってるのであれば、上記の要領でcontent/themes/casper/
を削除&コピーしてきましょう。
$ cd /your/ghost/dir
$ npm install --production
ghost管理ユーザで作業してる場合は大丈夫ですが、違うユーザ使ってる場合はghostユーザに所有者変えときましょう
$ chown -R ghost:ghost /your/ghost/dir
再起動します。
daemon化の方法によっていろいろだと思うので各自いい感じにお願いします
initスクリプト使ってる場合は
$ /etc/init.d/ghost restart
とか
$ service ghost restart
とかそんな感じで。
以上です。
この作業もAnsibleで自動化しておくと捗りそうですね。