У меня не проходит обновление, и я пытаюсь выяснить, какое именно сообщение об ошибке является причиной. Все обновления, которые я выполнял за последний год или два, завершались неудачей и требовали значительных усилий для их завершения.
Я заметил эти сообщения о невыполненных зависимостях одноранговых узлов во время каждого неудачного обновления, но поскольку здесь об этом мало обсуждалось, и в итоге наше приложение всё же запустилось, я решил проигнорировать их до сих пор.
Вот пример:
warning " > @glint/environment-ember-loose@1.0.2" has unmet peer dependency "@glimmer/component@^1.1.2".
warning " > @glint/environment-ember-template-imports@1.0.2" has unmet peer dependency "ember-template-imports@^3.0.0".
warning " > @mixer/parallel-prettier@2.0.3" has unmet peer dependency "prettier@^2.0.0".
warning Resolution field "babel-plugin-ember-template-compilation@2.0.0" is incompatible with requested version "babel-plugin-ember-template-compilation@^2.0.1"
warning Resolution field "unset-value@2.0.1" is incompatible with requested version "unset-value@^1.0.0"
warning " > babel-plugin-debug-macros@0.4.0-pre1" has unmet peer dependency "@babel/core@^7.0.0".
warning "workspace-aggregator-a96edb02-ebd3-494c-9d78-028c6a7e5bb3 > discourse > @uppy/aws-s3@3.0.6" has incorrect peer dependency "@uppy/core@^3.1.2".
warning "workspace-aggregator-a96edb02-ebd3-494c-9d78-028c6a7e5bb3 > discourse > @uppy/aws-s3-multipart@3.1.3" has incorrect peer dependency "@uppy/core@^3.1.2".
warning "workspace-aggregator-a96edb02-ebd3-494c-9d78-028c6a7e5bb3 > discourse > @uppy/xhr-upload@3.1.1" has incorrect peer dependency "@uppy/core@^3.1.2".
warning "workspace-aggregator-a96edb02-ebd3-494c-9d78-028c6a7e5bb3 > discourse > @uppy/aws-s3 > @uppy/xhr-upload@3.3.0" has incorrect peer dependency "@uppy/core@^3.2.1".
Это происходит при отключении всех плагинов, кроме Docker Manager, в моём файле app.yml.
В наиболее похожем обсуждении, которое я нашёл, предполагалось, что проблема с пересборкой может быть связана с тем, что наш droplet был создан много лет назад, и именно поэтому мы отстали во всех этих версиях. Следовательно, лучшее решение — создать новый droplet и выполнить миграцию.
Является ли это причиной и правильным планом действий?
Я не знаю, почему ваши обновления не работают, и считаю, что сообщения, которые вы видите, не связаны с этим: это предупреждения, а не ошибки.
Что именно вы имеете в виду под «значительными усилиями»?
Переустановка Discourse на чистом сервере довольно проста и быстра (конечно, в зависимости от размера вашего форума), поэтому вы также можете попробовать это — возможно, это решит неопознанную проблему. Хотя, если бы я был на вашем месте, мне бы очень хотелось узнать, в чём именно заключается проблема.
Ну, у нас каким-то образом появился повторяющийся тег, из-за чего приложение не может пересобраться. Это можно исправить, следуя этой инструкции:
..но я не могу войти в приложение, чтобы исправить это, так как оно не запущено и не запускается, а также не может быть пересобрано.
Я подумал, что это может быть связано с этими ошибками, а также с тем, что наши Docker и Ubuntu немного устарели.
Думаю, я попробую запустить новый экземпляр Discourse на новом droplet, установить Discourse, а затем восстановить нашу последнюю резервную копию через командную строку, чтобы, надеюсь, исправить повторяющийся тег в базе данных и перезагрузить приложение.
Я также хотел бы узнать причину этих предупреждений. После того как я их увидел, у меня тоже завершилась сборка с ошибкой.
111:M 25 Sep 2023 23:13:54.237 # Redis is now ready to exit, bye bye...
/usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/exec_command.rb:110:in `readlines': Interrupt
from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/exec_command.rb:110:in `block in spawn'
from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/exec_command.rb:103:in `popen'
from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/exec_command.rb:103:in `spawn'
from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/exec_command.rb:80:in `block in run'
from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/exec_command.rb:78:in `each'
from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/exec_command.rb:78:in `run'
from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/command.rb:8:in `run'
from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/config.rb:152:in `block (2 levels) in run_commands'
from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/config.rb:142:in `each'
from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/config.rb:142:in `block in run_commands'
from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/config.rb:141:in `each'
from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/config.rb:141:in `run_commands'
from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/config.rb:124:in `run'
from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/cli.rb:65:in `run'
from /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/bin/pups:9:in `<top (required)>'
from /usr/local/bin/pups:25:in `load'
from /usr/local/bin/pups:25:in `<main>'
Я использовал стабильную сборку 3.1.1, отредактировал файл app.yml, чтобы добавить плагин Data Explorer, и теперь сборка завершается неудачей. Я давно не делал полную пересборку, обновлял Discourse только через веб-консоль администратора и до сих пор не сталкивался с проблемами. Система Ubuntu обновлена до последних версий всех пакетов.
ОБНОВЛЕНИЕ: Повторная сборка во второй раз, похоже, решила проблему сама собой — предупреждения всё ещё появляются, но сборка прошла успешно. Было бы интересно узнать, почему теперь появляются предупреждения и какое влияние они оказывают (если вообще оказывают).
Существует множество способов исправить это, пока ситуация не вышла из-под контроля. Обычно можно пересобрать систему или восстановить предыдущую резервную копию и устранить дубликат в панели администратора. В моём случае ситуация вышла из-под контроля. Вот сценарий наихудшего случая для ручного исправления базы данных, если такое когда-либо случится с вами: