Ghostを1.21から2.16へアップデートする

Mar 09, 2019

当ブログではブログシステムにGhostを使用しています。今回はghost1.21から2.16.4へアップデートしてみました。OSはUbuntuです。

アップデート前の準備として、記事のバックアップは取っておきましょう。

アップデート

初めに、Nodeをアップデートします。apt-getを使用します。

# パッケージ取得
$apt-get update

# アップデート適用
$apt-get upgrade

続いて、ghost-cliのバージョンが古いとアップデートできないので、ghost-cliをアップデートします。

$npm update -g ghost-cli@latest

ghost-cliがyarnを使うようになったので、yarnをインストールします。

$curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
$echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
$sudo apt-get update && sudo apt-get install yarn

回線が貧弱だとyarnがタイムアウトするので、yarnのタイムアウト設定を変更します。

$yarn config set network-timeout 180000

ghost-cliの最新バージョンでは、管理者ユーザ("root"ユーザ)と、ghost-cliがsystemdで使用するユーザ("ghost"ユーザ)がghost-cliの実行をすることができなくなりました。

ghost-cliのsystemdが使用するユーザは以下の方法で確認できます。catで出力された内容のUser=ユーザIDの行を見てください。

# systemdを確認する(4geekの部分はインストール時のものに書き換えてください)
$cat /etc/systemd/system/ghost_4geek.service

私の環境ではghost-cliを使用するために新しくアップデート用のユーザを作成する必要がありました。

アップデート用のユーザ(ghost-user)を追加します。

$adduser ghost-user

ghostのインストール時に作成した、ghostディレクトリを管理しているグループを確認します。

$ls -l /var/www

ghostディレクトリを管理しているグループ(ghostグループ)にghost-userユーザを追加します。

$gpasswd -a ghost-user ghost

アップデート用のユーザ(ghost-user)に切り替えます。

$su - ghost-user

ghostをインストールしたディレクトリに移動します。

$cd /var/www/ghost

ghostをアップデートします。

$ghost update

最後に

簡単なエラーであれば、ghost doctorでエラーの原因を調べましょう。それでも解決できないときは、エラーメッセージでググり、Githubのissueを読むのがおすすめです。

参考資料
Consider yarn network timeouts · Issue #641 · TryGhost/Ghost-CLI · GitHub
Debian/Ubuntuにnodejsとyarnをinstall - Qiita
Linuxでユーザーをグループに追加する - Qiita

SmokyDog

I love dog and web.

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.