Проблемы при установке Discourse на WSL

Привет! Я пытаюсь запустить локальную копию Discourse на своей машине с Windows 11 для разработки в среде WSL.

Сначала хочу сказать, что я новичок и в Discourse, и в Ubuntu, и в WSL. Поэтому ошибки, очевидно, возникли по моей вине. Пожалуйста, помогите! :frowning_with_open_mouth:

Установка Discourse на Windows 10

Это руководство, которому я следовал.

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

Сначала я убедился, что у меня установлена Windows Subsystem for Linux 2. В руководстве рекомендуется Ubuntu 18.04, поэтому я попробовал её. После того как это не сработало, я попробовал 22.04, но результата всё равно не было. В этом описании я буду использовать 18.04, чтобы показать ошибки.

Первый шаг — установка пакетов с помощью этой команды:

bash <(wget -qO- https://raw.githubusercontent.com/discourse/install-rails/master/linux)

Это работает нормально. Единственное, что выглядит немного странно, это:

createuser: could not connect to database template1: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
failed

Перед настройкой базы данных нужно вручную запустить службу PostgreSQL и сервер Redis с помощью следующих команд:

sudo service postgresql start
redis-server --daemonize yes

Первая команда работает отлично, а вторая сразу вызывает проблему:

redis-server --daemonize yes

Команда ‘redis-server’ не найдена, но её можно установить с помощью:

sudo apt install redis-server

Это нормально. Я запускаю

sudo apt install redis-server

и пробую снова.
На этот раз всё работает отлично!

  1. Клонируем репозиторий Discourse
git clone https://github.com/discourse/discourse.git ~/discourse

Проблем нет.
Настройка базы данных с помощью:

sudo -u postgres createuser -s "$USER"

4. Вот самый важный этап

cd ~/discourse
source ~/.bashrc
bundle install

Ошибка:

Команда ‘bundle’ не найдена, но её можно установить с помощью:

sudo apt install ruby-bundler

Запустим это. После установки снова запускаем

bundle install

внутри каталога Discourse.

Ошибка: Для этого файла блокировки требуется Bundler версии 2 или выше.

После этого при попытке установить Bundler:

ОШИБКА: Ошибка установки bundler: Нет версий bundler (= 2.4.17), совместимых с вашим Ruby и RubyGems. bundler требует версию Ruby >= 2.6.0. Текущая версия Ruby — 2.5.0.

Хорошо, возможно, мне нужно обновить Ruby с помощью rbenv:

rbenv install 2.6.0
ruby-build: определение не найдено: 2.6.0

Посмотрите все доступные версии с помощью rbenv install --list.

Если нужной версии нет, попробуйте обновить ruby-build.

При проверке rbenv install --list список обрывается на версии 2.5.0, и я не могу обновить rbenv.

Может быть, кто-то подскажет, что я делаю не так? Я не могу продвинуться дальше шага 4.

Заранее большое спасибо!

У меня возникла точно такая же проблема. Вот что я сделал (возможно, это излишне, но я не эксперт ^^)

  1. Установите rbenv и ruby-build:
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
  1. Установите новую версию Ruby:
rbenv install 3.2.2
rbenv global 3.2.2
  1. Установите правильную версию Bundler
    gem install bundler:2.4.13

  2. Так как у меня возникли проблемы с правами доступа при использовании “bundle install”, мне пришлось временно исправить это командой:
    sudo chmod -R 777 /home/boris/.bundle

  3. bundle install

Надеюсь, это поможет.

Спасибо! Это очень помогло.

Теперь я столкнулся с другой ошибкой при выполнении

bundle exec rake db:create

Discourse требует Redis версии 6.2.0 или выше

Хм, давайте проверим с помощью

redis-server -v

Redis server v=7.0.12 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=b56540d7933227fd

Это должно сработать, верно? Извините за неудобства.

Ха-ха, похоже, мы столкнулись с теми же проблемами.

  1. Добавьте репозиторий, содержащий последние версии
sudo add-apt-repository ppa:redislabs/redis
sudo apt-get update
  1. Установите новую версию Redis
sudo apt-get install redis
  1. Перезапустите Redis
    sudo service redis-server restart