NextCloud 의 업데이트 중에 에러가 났다.

NextCloud 를 꽤 오랬동안 업데이트를 하지 않았었다. 최신 버젼이 31 인데, 설치되어 있던 버젼은 28 이었다. 그냥 아무 생각 없이 계속 업데이트 버튼을 눌렀는데, 업데이트를 잘 하던 도중에 문제가 생겼다. 일났다 싶어 터미널에 접속해서 확인해보니, 웹 업데이터가 백업을 하고 새로운 버젼을 받아서 푸는 도중에 에러가 난 것 같았다. 폴더에 뭔가 파일이 많이 없다…

웹 업데이터에서는 updater.secret 이 맞지 않다면서, 새로 생성해서 config.php 에 해당 항목을 채워 넣으라며 php 명령어를 제시해 주었는데, 해 봐도 안된다. 검색해보니 Nextcloud 커뮤니티에 나와 같은 문제를 겪었던 사람들이 삽질한 흔적이 있었다.

https://help.nextcloud.com/t/cant-access-nextcloud-need-updater-secret/62348

근데 저 포스팅에 있는 updater.secret 에 키를 채워 넣는 방법으로는 무슨 수를 써도 안 되었다. 키를 따로 생성해서 갖다 붙이거나, 저 포스트에서 잘 된다는 걸 복사해다 붙여도 되지를 않았다.

그래서 위에서 두번째에 있었지만, 키를 생성하는 것이 아니라서 무시하고 있던 – 바보같이… 이걸 먼저 할걸 – 터미널에서 업데이터를 직접 실행하는 방법으로 했다.

updater.phar 를 터미널에서 직접 실행시키면 된다고 한다. 그래서…

% su www
% cd ../nextcloud/updater
% php ./updater.phar

Nextcloud Updater - Version xxxxxxxx

Current Version is xx.xx.xx.

....
....

오… 키 따위는 신경도 쓰지 않는다. 이렇게 진행이 되는 듯 하다가 이번에는 Extract 과정에서 version.php 가 없다고 에러가 난다. 커뮤니티엔 역시나, 과거에 나와 같은 문제를 겪은 사람이 기꺼이 자신의 값진 경험을 남겨 주었다. 그에게 신의 축복이 함께하길.

https://help.nextcloud.com/t/update-stuck-on-step-6-extracting/106321

해결책은 간단했다. 같은 버젼의 설치 패키지를 받아 누락된 파일을 채워 주라는 것이다. 주의해야 할 점은 지금 설치되어 있는 버젼의 것을 사용해야 한다는 거다. 업데이터를 실행시키면 버젼이 두 개 출력되는데, 두번째 나오는 Current Version 의 것을 사용하면 된다.

https://download.nextcloud.com/server/releases

여기서 해당하는 버젼의 패키지를 찾아 다운받는다.

% wget https://download.nextcloud.com/server/releases/nextcloud-29.0.16.zip

Downloading.....

% mkdir temp
% mv ./nextcloud-29.0.16.zip ./temp
% cd temp
% unzip ./nextcloud-29.0.16.zip

....
....

압축을 풀면 무조건 nextcloud 라는 자식 폴더를 생성하니까, 기존에 있는 것과 겹치지 않게 적당히 잘 풀어준다. 나는 temp 폴더를 만들어 그 안에 풀었다. 그런 다음, 새로운 version.php 파일을 찾아서 복사한다. 이대로 실행하면 core/shipped.json 이라는 파일이 없다고 난리칠 테니까 미리 같이 복사해준다.

www:/usr/local/www/temp/nextcloud # cp ./version.php ../../nextcloud
www:/usr/local/www/temp/nextcloud # mkdir ../../nextcloud/core
www:/usr/local/www/temp/nextcloud # cp ./core/shipped.json ../../nextcloud/core

버젼 29 까지는 shipped.json 만 있고, 버젼 30 에는 shipped.json 과 shipped.json.license 이렇게 두 파일이 있다. 나는 버젼 29 에서 버젼 30 으로 올릴 때 문제가 생긴 거여서 json 파일만 있었다. 버젼 30 에서 버젼 31 로 올릴 때는 웹 업데이터로도 별 문제가 없었으니, 아마 license 파일은 신경쓰지 않아도 될 듯 싶다.

다시 updater.phar 를 수동으로 실행했다. 이제서야 다음 과정으로 넘어갔다.

하… 데이터 날리나 싶어 식겁했다. 실컷 업데이트 하고 나니, MariaDB 버젼이 너무 낮다고 경고가 뜬다. 지금 사용하는 버젼은 10 인데, 11 로 올리는 것을 추천한다나…

에휴.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다