Должен ли гайд по установке сообщать пользователям о необходимости сначала выполнить apt update и apt upgrade?

Не могли бы вы предоставить полные логи этой ошибки? Я хочу найти причину проблемы, чтобы мы могли её исправить.

Desktop.zip (17,9 КБ)

Нет, не логи работы сайта, а логи перестройки, где происходит сбой.

Какие файлы вам нужны?

Это не файлы, а то, что выводится в стандартный поток вывода при пересборке. Всё, что печатается в терминале во время неудачной пересборки.

Мне придется заново пройти весь процесс, чтобы получить эти логи.

Один из первых вопросов, которые я здесь задал, касался этого: Installation text location. Теперь я привык копировать и вставлять его в OneNote.

Если вы выполните пересборку, будет выполнена операция pull, но при загрузке начального состояния — нет.

Спасибо. Не могли бы вы объяснить это подробнее?

Причина моего вопроса в том, что мы не используем команду “rebuild” при первоначальной установке (полагаю, именно это вы имеете в виду под bootstrap). Мы используем “rebuild” впоследствии, но в этом случае автоматически выполняется “git pull”. Я не могу работать, когда в наборе из трёх команд необходим “git pull”.

cd /var/discourse
git pull
./launcher rebuild app

./discourse-setup

Всё в порядке

Нужно ли когда-либо выполнять команду git pull при первоначальной установке или последующей пересборке?

Вам не нужно выполнять git pull при первоначальной установке, так как вы только что клонировали репозиторий. Команда git pull необходима для получения обновлённой версии Discourse.

Если это первоначальная установка и вы используете discourse-setup, то она автоматически выполняет пересборку (которая включает в себя git pull), но это, скорее всего, ничего не изменит, если только в ваш репозиторий не был отправлен новый коммит во время работы discourse-setup.

Итак, мы согласны, что в наборе из трех команд в инструкции команда git pull никогда не нужна? Я имею в виду именно этот момент:

В качестве альтернативы вы можете подключиться к своему серверу по SSH и выполнить пересборку, используя:

cd /var/discourse
git pull
./launcher rebuild app

Я ставлю на то, что дополнительный git pull не нужен из-за кода здесь:

который, по-видимому, проверяет локальную версию, обновляет и перезапускает launcher, если он устарел (а также выполняет ряд других действий).

Следовательно, при последующих пересборках должно быть достаточно только этого:

cd /var/discourse
./launcher rebuild app

без избыточного git pull.

(Примечание: всегда полезно заглянуть в исходный код, чтобы быть увереннее).
(Примечание #2: я удалил свой пост выше, который лишь добавлял путаницу).

Спасибо. Я был уверен, что каким-то образом убедил себя в том же самом (на форуме, а не в коде), поэтому поискал и нашел:

И, кстати, похоже, что это работало именно так практически «всегда»:

Мне нравится, как в интернете «с незапамятных времён» превратилось в «ок. н.э. 2015» :slight_smile:

Я бы добавил, что не сразу очевидно, что такой трюк вообще возможен:

По сути, скрипт проверяет, не устарел ли «он сам», обновляет себя (и все связанные файлы), а затем снова запускает себя. :tada: умно :nerd_face:

Это действительно полезный паттерн, который можно применять и в других местах… отличная работа!