Ghost 0.7.5 => Ghost 0.7.6 на OpenShift

В прошлом материале посвященном блоговскому движку Ghost на платформе облачных вычислений OpenShift я упомянул что обновил движок сайта до актуальной на текущий момент версии 0.7.6. Теперь я расскажу как я это сделал.

Дело в том, что OpenShift предлагает свой картридж с преднастроенным Ghost движком, но старой версии 0.7.5. В принципе в этом ничего страшного нет - версия стабильна, найденные ошибки в ней некритичны - можно пользоваться. Но всегда хочется свеженького :) последней версии со всем самым-самым новым, даже если этого нового - кот наплакал. Ну, раз хочется - приступим. Сразу замечу, что воспользоваться документацией с сайта Ghost "в лоб" не получиться, т.к. OpenShift выделила свою версию Ghost в отдельный node.js модуль и пути размещения исходников теперь другие, поэтому - начнем по порядку:

  • Если у вас еще не установлен git для Windows - устанавливаем его.
  • Сделаем клон git-ого репорзитария вашего блога на свою локальную машину (как я писал ранее, работать с исходниками на OpenShift проще именно через git), для этого выполняем команду: git clone ssh://..путь к вашему приложению../~/git/teacher.git/. Путь к репозитарию вашего приложения можно посмотреть в web-консоли на OpenShift .
  • Теперь заходим в папку в которую мы клонировали репозитарий и видим две подпапки: content и node_modules. Папка node_modules содержит единственную подпапку ghost и именно в ней находятся исходники Ghost которые мы будем обновлять. В папке content находится используемая вашим блогом тема оформления и другой контент и это важное отличие от схемы расположения файлов в Ghost, в которой папка контента сайта находится там же где и исходники блога. Зачем OpenShift вынесли контент из модульной папки node_modules\ghost\content\ в корневую папку сайта я не знаю, видимо им так нужно.
  • Удаляем в папку content\themes\casper - там хранится тема оформления, остальное не трогаем.
  • Заходим в папку node_modules\ghost и удаляем файлы index.js, package.json, npm-shrinkwrap.json и папки core, content\themes\casper.
  • Скачиваем с раздела Download сайта Ghost.org последнюю актуальную версию, сейчас - это 0.7.6.
  • Скачанную версию распаковываем куда угодно.
  • Из распакованной версии копируем файлы файлы index.js, package.json, npm-shrinkwrap.json и папки core, content\themes\casper в папку node_modules\ghost клона репозитария. Так же копируем папку content\themes\casper в аналогичную папку content\themes\casper клона репозитария (туда где хранится используемая тема).
  • В принципе все, осталось залить изменения назад на сервер OpenShift. Выполняем последовательно стандартные действия: git add --all, git commit -am "update to ghost v0.7.6", git push origin master.
  • Сервер OpenShift должен сам перезапустить ваше приложение и в панели администрации блога вы должны увидеть, что пользуетесь теперь обновленной версией.

ДОПОЛНЕНИЕ (3.03.2016):

Описанный алгоритм обновления имеет существенный недостаток который я обнаружил совсем недавно - он не обновляет пакеты node.js от которых зависимости работа ядра Ghost! К счастью версии Ghost 0.7.Х отлично работают с пакетами которые предустановлены в картридже для версии Ghost 0.7.5, поэтому аварии не будет. Но, как только появится нормальный способ обновить зависимости - я дополню статью.

P.S.: Все эти действия были проведены мной на основе совета BiscuitEdi на StackOverflow.

profile for 23W on Stack Exchange, a network of free, community-driven Q&A sites Google+