Это тот же процесс обновления Discourse через браузер или через терминал с помощью команды ./launcher rebuild app?
Если да, то есть ли какие-либо преимущества у одного метода перед другим, кроме возможности обновлять плагины по отдельности?
Я не эксперт в этом, поэтому извините, если я говорю что-то бессмысленное.
Я задаю этот вопрос, потому что это уже вторая попытка обновить через браузер, и процесс зависает. В первый раз обновление началось, но застряло в середине процесса, а вчера вечером (второй раз) я нажал кнопку обновления, лег спать, и утром оно даже не началось. Мне пришлось отменить и перезапустить.
По возможности используйте интерфейс пользователя, чтобы минимизировать время простоя (несколько секунд).
Иногда некоторые виды обновлений (например, обновление версии PostgreSQL) требуют выполнения командной строки. Это необходимо в таких случаях, но приводит к некоторому времени простоя при стандартной установке. Обычно около 20 минут. Выберите время вне пиковой нагрузки.
Такие случаи должны быть очевидны из интерфейса пользователя.
Если вы хотите добавить или удалить плагин, вам потребуется использовать консоль для пересборки.
Пока я обновляюсь, я заметил, что форум всё ещё работает, хотя иногда и немного медленнее. Это гораздо лучше, чем использование Терминала, который, кажется, полностью отключает форум. Спасибо за разъяснение.
Даже для неспециалиста, такого как я? Имеете ли вы в виду, что появится какое-то сообщение, указывающее, что нужно использовать Терминал?
С технической точки зрения, считаете ли вы, что когда-нибудь это изменится и мы сможем делать всё прямо в браузере? Я не знаю технических деталей этого процесса, поэтому и спрашиваю.
Опять вылетело… Запуск 1 остановленного изначально воркера Unicorn
ERR_PNPM_RECURSIVE_EXEC_FIRST_FAIL Команда была прервана сигналом SIGKILL (принудительное завершение): ember build -prod Docker Manager: СБОЙ ПРИ ОБНОВЛЕНИИ
Столкнусь ли я с этим часто? Что может быть причиной и как это исправить?
Я подозреваю, что в стандартной установке так и останется.
На этом ресурсе можно найти информацию о настройке экрана «Мы офлайн, вернитесь позже», чтобы сократить эти 20 минут, но это не стандартная установка. Я бы рекомендовал вам сохранять простоту и лёгкость поддержки.
Вот что я заметил, но не знаю, совпадение это или нет: когда он застревает в состоянии, где ничего не происходит, я нажимаю «Сбросить обновление». Пытаюсь перезапустить — ничего не происходит. Затем я возвращаюсь на страницу со всеми обновлениями и нажимаю кнопку «Обновить». На этот раз обновление запускается. Не знаю, есть ли какая-то ошибка в коде, из-за которой после сброса кнопка перезапуска на самом деле ничего не делает? Я не знаю, но просто делюсь своим опытом.
Сейчас обновление снова запущено, после того как я сделал то, что только что описал.
Я запутался… снова вылет, но после обновления страницы браузера оказалось, что Discourse уже на последней версии… Когда я перешёл на главную страницу обновлений с плагинами, там действительно показывалось, что Discourse обновлён
Похоже, что эта ошибка в последнее время встречается очень часто, и её всегда удавалось исправить созданием файла подкачки. Не знаю почему, так как официальные требования Discourse не менялись.
Тогда команда ./discourse-setup должна была автоматически создать файл подкачки. Я не очень хорошо разбираюсь в тонкостях системного администрирования, поэтому оставлю это другим, чтобы они рассказали об этом подробнее.
Тем не менее, даже при наличии ресурсов, превышающих требования, пользователи сталкиваются с этой проблемой, так что здесь что-то неладно.
Что касается обновления через интерфейс, то за годы я заметил, что оно работает не слишком надежно. Не уверен, почему это происходит: иногда оно завершается ошибкой без видимых причин, в то время как пересборка проходит успешно.
Есть ли способ через Терминал проверить, есть ли он уже? (Возможно, это ответит на мой вопрос? Я не очень разбираюсь в тонкостях системного администрирования)
Хорошо, значит, я не одинок в этой ситуации.
Я немного запутался… в Терминале это две разные вещи? Обновление и пересборка? Потому что я всегда использовал только ./launcher rebuild app, и это всегда срабатывало.
О, теперь всё понятно
Да, у меня тоже такой опыт.
Минус в том, что при перестроении форум полностью отключается, что не очень удобно, но что поделать… приходится делать то, что нужно.
Не обладая необходимыми знаниями в этой области, я использовал Claude и ChatGPT, чтобы разобраться в ситуации. Поэтому, как и предлагалось, я пошёл по пути создания файла подкачки, но, как было отмечено, возможно, у меня уже был такой файл в зависимости от способа установки Discourse. Чтобы убедиться в этом, я выполнил
sudo swapon --show
в терминале и получил следующее:
Я посмотрел на столбец «USED» (ИСПОЛЬЗУЕТСЯ) и подумал: «ну, если файл подкачки используется для обеспечения плавной работы при нехватке оперативной памяти, но здесь указано, что он использует 1,9 ГБ из 2 ГБ, это не поможет».
Тогда я спросил ChatGPT, можно ли просто очистить/освободить файл подкачки, и получил эту команду:
sudo swapoff -a && sudo swapon -a
Я выполнил её, дал системе завершить процесс и снова запустил предыдущую команду:
sudo swapon --show
Теперь я вижу следующее:
Похоже, что имеет смысл периодически выполнять процедуру очистки/освобождения файла подкачки?
Пересборка из командной строки требует меньше оперативной памяти.
При установке с двумя контейнерами можно собрать новый контейнер, пока старый продолжает работать (если у вас достаточно оперативной памяти). Это обеспечивает минимальное время простоя.
Иногда необходимо выполнять пересборку из командной строки, так как требуется обновление базовых библиотек, которое нельзя выполнить через интерфейс пользователя.
Вы можете
cd /var/discourse
grep swap discourse-setup
чтобы увидеть команды, используемые для создания файла подкачки. Если вы выполните swapoff (чтобы файл перестал быть занятым), вы сможете затем запустить команды для создания файла (fsallocate), при желании увеличив его размер, отформатировать его как файл подкачки (mkswap), а затем выполнить swapon -a, чтобы снова включить его.
Если у вас установлено много плагинов, скорее всего, потребуется общий объем памяти 5–6 ГБ.