Обновление в браузере против терминала

Это тот же процесс обновления Discourse через браузер или через терминал с помощью команды ./launcher rebuild app?
Если да, то есть ли какие-либо преимущества у одного метода перед другим, кроме возможности обновлять плагины по отдельности?

Я не эксперт в этом, поэтому извините, если я говорю что-то бессмысленное.

Я задаю этот вопрос, потому что это уже вторая попытка обновить через браузер, и процесс зависает. В первый раз обновление началось, но застряло в середине процесса, а вчера вечером (второй раз) я нажал кнопку обновления, лег спать, и утром оно даже не началось. Мне пришлось отменить и перезапустить.

По возможности используйте интерфейс пользователя, чтобы минимизировать время простоя (несколько секунд).

Иногда некоторые виды обновлений (например, обновление версии PostgreSQL) требуют выполнения командной строки. Это необходимо в таких случаях, но приводит к некоторому времени простоя при стандартной установке. Обычно около 20 минут. Выберите время вне пиковой нагрузки.

Такие случаи должны быть очевидны из интерфейса пользователя.

Если вы хотите добавить или удалить плагин, вам потребуется использовать консоль для пересборки.

Пока я обновляюсь, я заметил, что форум всё ещё работает, хотя иногда и немного медленнее. Это гораздо лучше, чем использование Терминала, который, кажется, полностью отключает форум. Спасибо за разъяснение.

Даже для неспециалиста, такого как я? Имеете ли вы в виду, что появится какое-то сообщение, указывающее, что нужно использовать Терминал?

С технической точки зрения, считаете ли вы, что когда-нибудь это изменится и мы сможем делать всё прямо в браузере? Я не знаю технических деталей этого процесса, поэтому и спрашиваю.

Опять вылетело…
Запуск 1 остановленного изначально воркера Unicorn

ERR_PNPM_RECURSIVE_EXEC_FIRST_FAIL Команда была прервана сигналом SIGKILL (принудительное завершение): ember build -prod Docker Manager: СБОЙ ПРИ ОБНОВЛЕНИИ

Столкнусь ли я с этим часто? Что может быть причиной и как это исправить?

Я подозреваю, что в стандартной установке так и останется.

На этом ресурсе можно найти информацию о настройке экрана «Мы офлайн, вернитесь позже», чтобы сократить эти 20 минут, но это не стандартная установка. Я бы рекомендовал вам сохранять простоту и лёгкость поддержки.

Я видел это несколько дней назад, но для меня это действительно было очень сложно.

Я только что опубликовал ошибки, которые вижу при попытке обновления сейчас. Сбой произошёл снова. Это в моём предыдущем ответе.

Итак, после того как он сломался, я нажал кнопку для перезапуска обновления, и снова зависло на этом же, что и произошло昨晚:

Вот что я заметил, но не знаю, совпадение это или нет: когда он застревает в состоянии, где ничего не происходит, я нажимаю «Сбросить обновление». Пытаюсь перезапустить — ничего не происходит. Затем я возвращаюсь на страницу со всеми обновлениями и нажимаю кнопку «Обновить». На этот раз обновление запускается. Не знаю, есть ли какая-то ошибка в коде, из-за которой после сброса кнопка перезапуска на самом деле ничего не делает? Я не знаю, но просто делюсь своим опытом.

Сейчас обновление снова запущено, после того как я сделал то, что только что описал.

Я запутался… снова вылет, но после обновления страницы браузера оказалось, что Discourse уже на последней версии… Когда я перешёл на главную страницу обновлений с плагинами, там действительно показывалось, что Discourse обновлён :thinking:

Попробуйте создать файл подкачки:

Похоже, что эта ошибка в последнее время встречается очень часто, и её всегда удавалось исправить созданием файла подкачки. Не знаю почему, так как официальные требования Discourse не менялись.

Я видел это слово раньше, но не имею понятия, что это такое и для чего оно нужно.

Спасибо за ссылку. Я обязательно это сделаю, и если возникнут какие-либо проблемы, я сообщу об этом.

Когда я захожу в DigitalOcean, я вижу следующее для своего дроплета:
image

Так что я “подхожу” для процесса создания файла подкачки, который вы分享了, верно? Потому что мой сервер имеет <= 2 ГБ оперативной памяти.

Если у вас менее 2 ГБ, я бы рекомендовал создать файл подкачки. У меня он занимает 1 ГБ, поэтому он мне точно понадобился.

Насколько я понимаю, подкачка по сути использует часть хранилища в качестве дополнительной памяти.

Тогда команда ./discourse-setup должна была автоматически создать файл подкачки. Я не очень хорошо разбираюсь в тонкостях системного администрирования, поэтому оставлю это другим, чтобы они рассказали об этом подробнее.

Тем не менее, даже при наличии ресурсов, превышающих требования, пользователи сталкиваются с этой проблемой, так что здесь что-то неладно.

Что касается обновления через интерфейс, то за годы я заметил, что оно работает не слишком надежно. Не уверен, почему это происходит: иногда оно завершается ошибкой без видимых причин, в то время как пересборка проходит успешно.

Есть ли способ через Терминал проверить, есть ли он уже? (Возможно, это ответит на мой вопрос? Я не очень разбираюсь в тонкостях системного администрирования)

Хорошо, значит, я не одинок в этой ситуации.

Я немного запутался… в Терминале это две разные вещи? Обновление и пересборка? Потому что я всегда использовал только ./launcher rebuild app, и это всегда срабатывало.

Окей, спасибо! Это помогло!

Извините, я имел в виду из интерфейса, я исправил свой пост. :slight_smile:

О, теперь всё понятно :slight_smile:
Да, у меня тоже такой опыт.
Минус в том, что при перестроении форум полностью отключается, что не очень удобно, но что поделать… приходится делать то, что нужно.

Я спросил у Claude о своём вопросе: есть ли способ проверить наличие файла подкачки, и вот что я получил:

ОБНОВЛЕНИЕ

Не обладая необходимыми знаниями в этой области, я использовал Claude и ChatGPT, чтобы разобраться в ситуации. Поэтому, как и предлагалось, я пошёл по пути создания файла подкачки, но, как было отмечено, возможно, у меня уже был такой файл в зависимости от способа установки Discourse. Чтобы убедиться в этом, я выполнил

sudo swapon --show

в терминале и получил следующее:

image

Я посмотрел на столбец «USED» (ИСПОЛЬЗУЕТСЯ) и подумал: «ну, если файл подкачки используется для обеспечения плавной работы при нехватке оперативной памяти, но здесь указано, что он использует 1,9 ГБ из 2 ГБ, это не поможет».

Тогда я спросил ChatGPT, можно ли просто очистить/освободить файл подкачки, и получил эту команду:

sudo swapoff -a && sudo swapon -a

Я выполнил её, дал системе завершить процесс и снова запустил предыдущую команду:

sudo swapon --show

Теперь я вижу следующее:
image

Похоже, что имеет смысл периодически выполнять процедуру очистки/освобождения файла подкачки?

Стоит попробовать увеличить ваш лимит swap:

Пересборка из командной строки требует меньше оперативной памяти.

При установке с двумя контейнерами можно собрать новый контейнер, пока старый продолжает работать (если у вас достаточно оперативной памяти). Это обеспечивает минимальное время простоя.

Иногда необходимо выполнять пересборку из командной строки, так как требуется обновление базовых библиотек, которое нельзя выполнить через интерфейс пользователя.

Вы можете

cd /var/discourse
grep swap discourse-setup

чтобы увидеть команды, используемые для создания файла подкачки. Если вы выполните swapoff (чтобы файл перестал быть занятым), вы сможете затем запустить команды для создания файла (fsallocate), при желании увеличив его размер, отформатировать его как файл подкачки (mkswap), а затем выполнить swapon -a, чтобы снова включить его.

Если у вас установлено много плагинов, скорее всего, потребуется общий объем памяти 5–6 ГБ.