Bitnami로 만든 Ghost 블로그 버전 업그레이드 하기

Bitnami로 만든 Ghost 블로그 버전 업그레이드 하기
Photo by Daniel Kuruvilla / Unsplash

간만에 블로그 글 작성도 할겸, 블로그를 둘러 보다가, 고스트 최신 버전을 업그레이드 하기로 했다. 그 과정에 겪었던 시행착오를 공유하고, 기록하는 글이다.

AWS Lightsail + bitnami 로 Ghost 블로그 뚝딱 만들기
블로그를 만들기로 다짐하고, 플랫폼은 Ghost를 사용하기로 결정했다. Ghost를 설치하기 위해서 다양한 옵션들이 존재하지만, 여러번의 시행착오를 통해 AWS Lightsail을 통한 호스팅과 bitnami에서 제공하는 ghost package를 사용해서 블로그를 구축했다.

위 링크 처럼, bitnami 서비스로 고스트 환경을 구축한 사람들이 고스트 버전 업데이트를 할 때 참조할 수 있을 것이다.

bitnami 웹 문서에서 적힌 대로 업데이트를 실행하면 된다!
간단하다!

cd /opt/bitnami/ghost # ghost 가 설치된 폴더로 이동
sudo su ghost -c "ghost update" # 업데이트 명령어 실행
Upgrade Ghost

문제의 시작

하지만...

업데이트가 호락호락 하지 않다.
아래와 같이 버전 문제로 업그레이드에 실패했다.

✖ Downloading and updating Ghost to v5.82.4
A SystemError occurred.

Message: Ghost v5.82.4 is not compatible with the current Node version. Your node version i
s 16.19.1, but Ghost v5.82.4 requires ^18.12.1 || ^20.11.1

Debug Information:
    OS: Debian GNU/Linux, v11
    Node Version: v16.19.1
    Ghost Version: 5.53.1
    Ghost-CLI Version: 1.24.0
    Environment: production
    Command: 'ghost update'

업데이트가 호락호락하지 않다. node 버전이 안맞다.

구글에 검색을 해보고 node 업데이트를 했다.

npm cache clean -f # cache 지우기
npm install -g n # Package manager 설치
sudo n 18.18.0 #18.18.0 version으로 설치


node 버전을 18로 선택한 이유는, ghost문서 보니깐 18 버전을 권장한다고 한다.
이 글을 읽을 시점에, ghost 에서 지원하는 node 버전을 확인하고 설치하도록 하자.

Ghost node version support - https://ghost.org/docs/faq/node-versions/

아 그리고, 18.18.0 버전을 선택한 이유는, stable version을 찾으려고 구글에서 검색을 해봤고, node 18의 경우 18.18.0, 18.12.0 두 버전이 LTS 인 것을 확인했다.
여기서 18.12.0 버전의 경우는 ghost 최신버전에서 지원을 하지 않기 때문에 18.18.0 버전으로 설치를 했다.

Node stable version으로 18.18.0 이랑 18.12.0 이 있다.
설치 완료! installed, active 모두 18.18.0 버전인 것을 확인했다.

새로운 문제의 시작

node 버전 업데이트를 마치고, 두근대는 마음으로 다시 업데이트를 시도했다.

sudo su ghost -c "ghost update" # 업데이트 명령어 실행
✖ Downloading and updating Ghost to v5.82.4
A SystemError occurred.

Message: Ghost v5.82.4 is not compatible with this version of the CLI. Your CLI version is 
1.24.0, but Ghost v5.82.4 requires ^1.26.0
Help: Run `npm install -g ghost-cli@latest` to upgrade the CLI, then try again.

Debug Information:
    OS: Debian GNU/Linux, v11
    Node Version: v18.18.0
    Ghost Version: 5.53.1
    Ghost-CLI Version: 1.24.0
    Environment: production
    Command: 'ghost update'

Try running ghost doctor to check your system for known issues.

두둥. 아까와는 조금 다른 문제가 생겼다.
ghost-cli 버전이 낮다고 한다. 친절하게 해결 방법도 적혀 있어서 ghost-cli를 업데이트 했다.

sudo npm install -g ghost-cli@latest

그리고, 다시 시도를 하는데 똑같은 오류가 반복된다!!

분명히 ghost-cli version을 1.26.0을 설치했는데도 불구하고, ghost update를 하면 1.24.0 이 설치되어 있다고 한다.

ghost가 설치된 폴더를 찾아봤다.

whereis ghost
ghost: /usr/local/bin/ghost /opt/bitnami/ghost/versions/4.48.9/node_modules/.bin/ghost

ghost가 설치된 폴더 두개가 나온다.
하나는 /usr/local/bin 에 설치된 최신 1.26.0 버전의 ghost-cli.
나머지는, 현재 블로그가 동작하는 4.48.9 버전 ghost에 설치된 1.24.0 버전의 ghost-cli가 있다.

즉, 새롭게 설치된 경로 (/usr/local/bin/ghost)와 기존 경로 (/opt/bitnami/ghost/versions/4.48.9/node_modules/.bin/ghost) 두개의 버전이 존재하고 있고, 기존 버전을 가리키고 있었기 때문이다.

이를 해결하기 위해 아래와 같이 명령을 치자.

cd /opt/bitnami/ghost/versions/4.48.9/node_modules/.bin/ # 기존 경로로 이동
sudo mv ghost ghost2 # 혹시 모르니 기존 파일 남겨두고
sudo ln -s /usr/local/bin/ghost ghost # 심볼릭 링크로 기존 경로의 고스트를 새로운 고스트로 연결

마지막으로 다시 고스트를 설치해보자.

cd /opt/bitnami/ghost # ghost 가 설치된 폴더로 이동
sudo su ghost -c "ghost update" # 업데이트 명령어 실행

드디어 성공했다.

마지막으로 권한 수정만 하면 마무리 된다.

sudo chown ghost:bitnami -R /opt/bitnami/ghost
sudo chmod 640 /opt/bitnami/ghost/config.production.json

끝!

블로그를 업데이트 하고 난 후에, 잔 버그가 사라졌다.
이제 새로 줄바꿈을 한 이후에 한글 자소 분리가 되던 불편한 버그가 사라졌다.