Лично я бы сбросил ваш Pi (если вам нечего сохранять) и начал заново, либо просто запустил систему с чистой отдельной SD-карты.
Похоже, у вас было две установки Discourse — отсюда, возможно, и второй процесс Redis.
Лично я бы сбросил ваш Pi (если вам нечего сохранять) и начал заново, либо просто запустил систему с чистой отдельной SD-карты.
Похоже, у вас было две установки Discourse — отсюда, возможно, и второй процесс Redis.
rm -rf *? Или это слишком разрушительно?
Теперь это вроде бы работает. Страница загружается очень долго, из-за чего возникают тайм-ауты.
E, [2024-11-08T14:57:11.960623 #2213] ERROR -- : worker=0 PID:2323 running too long (65s), sending USR2 to dump thread backtraces
E, [2024-11-08T14:57:18.033374 #2213] ERROR -- : worker=0 PID:2323 timeout (65s > 60s), killing
E, [2024-11-08T14:57:20.607509 #2213] ERROR -- : reaped #<Process::Status: pid 2323 SIGKILL (signal 9)> worker=0
E, [2024-11-08T14:57:20.645299 #2213] ERROR -- : worker=1 PID:2324 running too long (63s), sending USR2 to dump thread backtraces
E, [2024-11-08T14:57:20.645461 #2213] ERROR -- : worker=1 PID:2324 timeout (63s > 60s), killing
E, [2024-11-08T14:57:20.681291 #2213] ERROR -- : reaped #<Process::Status: pid 2324 SIGKILL (signal 9)> worker=1
I, [2024-11-08T14:57:23.676422 #2555] INFO -- : worker=0 ready
I, [2024-11-08T14:57:23.681733 #2556] INFO -- : worker=1 ready
Какую модель Raspberry Pi вы используете? Я бы не стал пробовать это на модели ниже Pi 4.
Это определённо займёт некоторое время.
После сборки JavaScript выполните ещё один вызов через браузер. Тогда всё должно заработать.
Это уже было (я думаю, после embroider>webpack и discourse-plugins>apply-patches, что-то в этом роде). Я использую Pi 4.
Те работники — единороги (бэкенд). Они выглядят готовыми. Но не забудьте, что фронтенд тоже должен быть создан.
И не забудьте подключиться по адресу http://localhost:4200.
Как я узнаю, когда сборка завершится?
Вы увидите что-то вроде:
[ember-cli] Сборка успешна (41838 мс) – Сервер запущен на http://localhost:4200/
[ember-cli]
[ember-cli] Самые медленные узлы (время >= 5%) | Всего (средн.)
[ember-cli] -+-
[ember-cli] @embroider/webpack (1) | 23127 мс
[ember-cli] Babel: admin (1) | 4067 мс
[ember-cli] Funnel (422) | 2826 мс (6 мс)
(эти показатели получены на моём мощном ПК!)
Raspberry Pi 5 (8 ГБ):
[ember-cli] Сборка успешна (148604 мс) – Сервер запущен на http://localhost:4200/
[ember-cli]
[ember-cli] Самые медленные узлы (время >= 5%) | Всего (средн.)
[ember-cli] -+-
[ember-cli] @embroider/webpack (1) | 83461 мс
[ember-cli] @embroider/compat/app (1) | 13488 мс
[ember-cli] Babel: discourse-plugins (25) | 9313 мс (372 мс)
[ember-cli] Babel: admin (1) | 8695 мс
[ember-cli] Funnel (407) | 8557 мс (21 мс)
Однако, глядя на использование памяти на моём Pi 5, я вижу, что только при запущенном Discourse и одной открытой вкладке Chromium уже занято 4,27 ГБ!
Поэтому, если вы сталкиваетесь с интенсивным использованием подкачки (что само по себе плохая идея на SD-карте), процесс до этого этапа будет идти очень медленно. Проверьте это с помощью команды htop в другом терминале.
Запуск этого на Pi с менее чем 8 ГБ памяти может стать серьёзным вызовом!
Кажется, у меня тоже так.
Я запущу её и отвечу вам.
Когда это было написано:
Последняя зафиксированная сумма была такой:
Затем программа зависла (и всё ещё висит). Вероятно, был превышен лимит. Я закрыл вкладку браузера, но она всё ещё не отвечает. Даже CTRL+C не работает.
Да, боюсь, вашему маленькому Pi не хватает памяти. Когда она полностью исчерпана, устройство зависает.
Один из вариантов — добавить NVMe-накопитель и увеличить файл подкачки (swap).
После этого можно безопасно увеличить размер подкачки.
Другого решения, по-моему, нет: нужно найти 8-гигабайтную модель Pi 5 для этой задачи, а вашу 4-гигабайтную использовать для чего-то другого.
Добрый день
Когда я ввожу следующую команду, ничего не происходит:
bash <(wget -qO- https://raw.githubusercontent.com/discourse/install-rails/main/linux)
![]()
Не упустил ли я что-то?
Возможно, у вас не установлен wget?
Проверьте это командой
which wget
Если нет, вы, скорее всего, сможете установить его с помощью
sudo apt-get install wget -y
Кстати, на этой неделе я добавил NVMe-накопитель, и мой Pi 5 работает отлично. Я также увеличил файл подкачки (это немного отличается от обычного процесса в Linux).
И что особенно важно, это потребовало полной переустановки версии Discourse для разработки.
Я обнаружил, что следуя инструкциям из первого сообщения, всё прошло абсолютно гладко, без сбоев. Похоже, скрипт и совместимость с Pi сейчас находятся на очень хорошем уровне. Спасибо всем за вклад!
Всем привет,
я успешно настроил Discourse на локальном сервере Ubuntu 24.04 LTS для разработки. Руководство сработало, обе финальные команды выполняются без ошибок.
Но как мне получить к нему доступ через сеть? На сервере Ubuntu нет графического интерфейса, где работал бы localhost:4200.
А адрес ServerIP:4200 показывает, что он недоступен.
Есть ли какие-то предложения, как разрешить доступ с устройств в моей локальной сети?
Спасибо!
Если вы запускаете Rails с помощью команды bin/rails -b 0.0.0.0, это сделает его доступным для других хостов в вашей сети. Затем вам также нужно будет запустить Ember отдельно в новой вкладке с помощью команды bin/ember-cli.
После этого доступ к ServerIP:4200 должен заработать (если, конечно, у вас нет проблем с брандмауэром).
Я попробовал установить Ubuntu 24 в WSL2. [1]
Вот проблемы, с которыми я столкнулся:
E: Unable to locate package libltdl7-dev
libltdl7-dev → libltdl-devYour Ruby version is 3.2.1, but your Gemfile specified ~> 3.3
rbenv install 3.3.7rbenv global 3.3.7rbenv rehashERROR Unsupported engine for /home/arkshine/discourse: wanted: {"pnpm":"^9"} (current: {"node":"v18.20.6","pnpm":"10.5.2"})
sudo: sudo pnpm install [2]ERROR Failed to switch pnpm to v9.15.5. Looks like pnpm CLI is missing at "~/.local/share/pnpm/.tools/pnpm/9.15.5/bin" or is incorrect
pnpm install. Мне удалось исправить это с помощью:
npm install -g corepack@latestcorepack use pnpm@latest-9При работе от имени не root-пользователя отсутствие sudo в коде делает невозможным завершение установки. Я не знаю, существует ли умный способ обойти это, но я его не нашёл. С Ubuntu 22 у меня таких проблем не возникало.
При работе от root-пользователя мне удалось всё настроить.
Кстати, есть альтернатива: Developing Discourse using a Dev Container.
О Ubuntu 22: я снова заставил это работать. Я просто идиот. ![]()
Моя первоначальная проблема заключалась в том, что rbenv содержал только версию 3.3.0-dev.
Я получал ошибку такого рода:
(base) arkshine@HOME:~/discourse$ rake db:migrate
Sorry, you can't use byebug without Readline. To solve this, you need to
rebuild Ruby with Readline support. If using Ubuntu, try sudo apt-get install libreadline-dev and then reinstall your Ruby.
rake aborted!
LoadError: cannot load such file -- readline (LoadError)
/home/arkshine/discourse/config/application.rb:44:in '<top (required)>'
internal:/home/arkshine/.rbenv/versions/3.3.0-dev/lib/ruby/3.5.0+0/rubygems/core_ext/kernel_require.rb:136:in 'Kernel#require'
internal:/home/arkshine/.rbenv/versions/3.3.0-dev/lib/ruby/3.5.0+0/rubygems/core_ext/kernel_require.rb:136:in 'Kernel#require'
/home/arkshine/discourse/Rakefile:7:in '<top (required)>'
(See full trace by running task with --trace)
Решение — обновить rbenv:
git -C ~/.rbenv/plugins/ruby-build pull
Затем вы можете установить более новую и стабильную версию:
(base) arkshine@HOME:~/discourse$ rbenv install --list
3.1.6
3.2.7
3.3.7
3.4.2
rbenv install 3.3.7
rbenv global 3.3.7
rbenv rehash
И теперь всё снова работает! ![]()
Я только что попытался установить Discourse на Ubuntu 24 (ARM-версия, работающая внутри VMware на MacBook с macOS). Столкнулся с несколькими проблемами.
Изменение #1
Установка ImageMagick не удаётся. В скрипте установки самого ImageMagick есть зависимость от libltld7-dev. Это нужно заменить на libltld-dev.
Изменение #2
По умолчанию устанавливается Ruby 3.2.1. Это не работает с pnmp v9.x. Я установил версию 3.3.7, и это, похоже, сработало.
старое:
ruby_version="3.2.1"
новое:
ruby_version="3.3.7"
Изменение #3
Установка Node 18 вызвала некоторые ошибки. В скрипте установки я заменил это на Node 20, и это, похоже, сработало.
старое:
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
новое:
curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash -
Благодаря комментарию @Arkshine выше, это оказалось полезным.
С вашими обновлениями оно всё ещё работает с текущей версией. Спасибо!