Install Discourse on macOS for development

При разработке здесь не выполняются обновления.

Привет, Роберт, спасибо за ответ. Достаточно ли команды ‘git pull’ для обновления? (в разработке)

1 лайк

Да, но не забудьте про gem-ы и миграции:

git pull
bundle install
rake db:migrate
2 лайка

Похоже, в скрипте что-то пошло не так — он не может установить Brew.
(это на новом Mac Air M2)

Всё прошло гладко после того, как я установил Brew самостоятельно :slight_smile:

Обратите внимание: скрипт устанавливает Ruby версии 3.1.3, а затем bundle exec ругается, что вы не используете версию 3.2.1 :smiley:

[Warning] Discourse рекомендует использовать для разработки Ruby версии 3.2.1 и выше. Вы используете версию 3.1.3.

2 лайка

Больше не актуально! :partying_face:

3 лайка

По какой-то причине Ruby не устанавливается. Я постоянно получаю следующее:

BUILD FAILED (macOS 12.5.1 using ruby-build 20230309)

Inspect or clean up the working tree at /var/folders/f6/95l6wylj4d11_jyvyp7r9yd40000gn/T/ruby-build.20230320012216.80048.RdOmWC
Results logged to /var/folders/f6/95l6wylj4d11_jyvyp7r9yd40000gn/T/ruby-build.20230320012216.80048.log

Last 10 log lines:
	Check ext/psych/mkmf.log for more details.
*** Fix the problems, then remove these directories and try again if you want.
Generating RDoc documentation
/private/var/folders/f6/95l6wylj4d11_jyvyp7r9yd40000gn/T/ruby-build.20230320012216.80048.RdOmWC/ruby-3.2.1/lib/yaml.rb:3: warning: It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
uh-oh! RDoc had a problem:
cannot load such file -- psych

run with --debug for full backtrace
make: *** [rdoc] Error 1
failed

Может, кто-нибудь поможет мне с этим?

1 лайк

У меня та же проблема на MacOS 13.2.1.

Эта страница — единственный результат в Google при поиске (частей) этого сообщения об ошибке, так что на случай, если кто-то ещё столкнётся с этой ошибкой:

Сегодня я столкнулся с этим при запуске rails s после обновления до текущей версии Ruby (3.2.1), Rails (7.0.4.3) и всех зависимостей из Gemfile, включая mini_racer (0.6.3).

Проблема была решена после выполнения рекомендации из этого комментария на GitHub: запуска make внутри
.../3.2.0/gems/mini_racer-0.6.3/ext/mini_racer_extension
и копирования полученного файла mini_racer_extension.bundle в .../3.2.0/extensions/x86_64-darwin-22/3.2.0/mini_racer-0.6.3.

Мне каким-то образом наконец удалось успешно обойти ошибку сборки (я даже не запомнил, что именно делал…), но теперь я застрял на:

An error occurred while installing pg (1.4.6), and Bundler cannot continue

Во время выполнения bundle install. :thinking:

edit:
Проблема решилась после выполнения инструкций, указанных выше над ошибкой:

If you need to have postgresql@13 first in your PATH, run:
  echo 'export PATH="/opt/homebrew/opt/postgresql@13/bin:$PATH"' >> ~/.zshrc

For compilers to find postgresql@13 you may need to set:
  export LDFLAGS="-L/opt/homebrew/opt/postgresql@13/lib"
  export CPPFLAGS="-I/opt/homebrew/opt/postgresql@13/include"

For pkg-config to find postgresql@13 you may need to set:
  export PKG_CONFIG_PATH="/opt/homebrew/opt/postgresql@13/lib/pkgconfig"

Но я не уверен, какую именно из них нужно использовать! :sweat_smile:

1 лайк

Из-за проблем с правами доступа на корпоративном ноутбуке мне приходится вручную выполнять скрипт установки, обрабатывая каждый элемент по отдельности. При попытке запустить gem update --system возникает следующая ошибка:

sh-3.2# gem update --system
Обновление rubygems-update
Получение rubygems-update-3.4.12.gem
Успешная установка rubygems-update-3.4.12
Парсинг документации для rubygems-update-3.4.12
Установка ri-документации для rubygems-update-3.4.12
Установка документации darkfish для rubygems-update-3.4.12
Завершена установка документации для rubygems-update за 158 секунд
Парсинг документации для rubygems-update-3.4.12
Завершена установка документации для rubygems-update за 0 секунд
Установка RubyGems 3.4.12
ОШИБКА: При выполнении gem ... (Errno::EPERM)
    Операция не разрешена @ rb_sysopen - /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/gem
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:1387:in `initialize'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:1387:in `open'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:1387:in `block in copy_file'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:1386:in `open'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:1386:in `copy_file'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:492:in `copy_file'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:860:in `block in install'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:1558:in `block in fu_each_src_dest'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:1574:in `fu_each_src_dest0'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:1556:in `fu_each_src_dest'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:856:in `install'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/commands/setup_command.rb:267:in `block (2 levels) in install_executables'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/commands/setup_command.rb:251:in `chdir'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/commands/setup_command.rb:251:in `block in install_executables'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/commands/setup_command.rb:248:in `each'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/commands/setup_command.rb:248:in `install_executables'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/commands/setup_command.rb:165:in `execute'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/command.rb:327:in `invoke_with_build_args'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/command_manager.rb:252:in `invoke_command'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/command_manager.rb:192:in `process_args'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/command_manager.rb:150:in `run'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/gem_runner.rb:51:in `run'
	setup.rb:33:in `<main>'

Есть ли идеи, как решить эту проблему?

1 лайк

Вы использовали M1/M2 от Apple? Я думаю, сначала убедитесь, что Ruby 3.2.x установлен как системный по умолчанию через brew install. Затем для Apple Silicon добавьте в свой файл .zshrc следующий код:

  if [ -d "/opt/homebrew/opt/ruby/bin" ]; then
     export PATH=/opt/homebrew/opt/ruby/bin:$PATH
     export PATH=`gem environment gemdir`/bin:$PATH
  fi

Это необходимо, потому что macOS поставляется с системным Ruby версии 2.x, который может нарушить работу скрипта установки окружения.

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

  brew services restart postgresql@13
  brew services restart redis

У меня это работает.

2 лайка

Всем привет! Я следовал инструкции по установке, размещённой здесь, и большинство советов, которые там были даны, очень помогли мне справиться с проблемами, с которыми я столкнулся при установке на MacOS M1.

Теперь я застрял на последнем этапе настройки Bootstrap:

bundle exec rails server

Команда выше сработала: я смог открыть что-то по адресу localhost:3000 и даже зарегистрировать пользователя администратора. Однако после запуска bin/ember-cli появилось следующее исключение:

$ bin/ember-cli
warning Resolution field "unset-value@2.0.1" is incompatible with requested version "unset-value@^1.0.0"
patch-package 8.0.0
Applying patches...
@ember/jquery@2.0.0 ✔
babel-plugin-debug-macros@0.3.4 ✔
content-tag@1.1.2 ✔
ember-source@3.28.12 ✔
ember-this-fallback@0.4.0 (1 deprecation-name) ✔
ember-this-fallback@0.4.0 (2 themes) ✔
virtual-dom@2.1.1 ✔
WARNING: Ember CLI v5.0.0 is not tested against Node v21.0.0. See "https://github.com/ember-cli/ember-cli/blob/master/docs/node-support.md" to find out which version of Node is best to use.
(node:22167) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
Could not `import('file:///Users/myuser/discourse/app/assets/javascripts/discourse/ember-cli-build.js')`: Cannot read properties of undefined (reading 'indexOf')

Стек вызовов и отчёт об ошибке: /var/folders/4l/ksznzcp17sg1wjyq7mmfzfkc0000gn/T/error.dump.b499a1d1d9b275ada33629ea1a84760d.log

Не упустил ли я что-то?

Мне удалось запустить bin/ember-cli после удаления текущей версии Node и установки node@20 через brew.

1 лайк

Получаю эту ошибку на этом этапе.

Error: Could not symlink bin/c_rehash
Target /opt/homebrew/bin/c_rehash
is a symlink belonging to openssl@3. You can unlink it:
  brew unlink openssl@3

To force the link and overwrite all conflicting files:
  brew link --overwrite openssl@1.1

To list all files that would be deleted:
  brew link --overwrite --dry-run openssl@1.1
failed

{

К сожалению, у меня нет компьютера с macOS. Я знаю, что скрипт работает нормально на Windows/Linux, но на macOS я не могу его протестировать.

Вы пробовали запустить brew link --overwrite openssl@1.1, а затем снова выполнить скрипт? Однако есть высокая вероятность, что он снова остановится на этой строке.

Кто-нибудь знает, как установить переменные окружения в этой среде разработки? Я пытаюсь настроить SSO, но, похоже, нужно включить CORS. Я читал, что это делается в app.yml, но в этой конфигурации его нет. Можно ли добавить это в таблицу site_settings базы данных? Извините, я новичок в разработке для Discourse.

Привет, @Plabforum,

У меня возникли точно такие же две ошибки, как и у вас. Удалось ли вам их решить?

Буду признателен за любые советы.

Мне жаль, у меня нет никаких хороших новостей. На самом деле я после этого сдался.

Жаль это слышать. Мне на самом деле удалось обойти эту проблему, отключив openssl@3 через:

brew unlink openssl@3

а затем подключив openssl@1.1

brew link --overwrite openssl@1.1

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

2 лайка

Похоже, мне удалось установить Discourse на MacBook для разработки, следуя инструкциям в этой теме. У меня есть два дополнительных вопроса.

  1. При запуске bundle exec rake autospec я получил предупреждения и ошибки. Стоит ли беспокоиться? Моя установка, похоже, работает как ожидалось, и в разделе администратора ошибок не отображается.

  2. Заранее извиняюсь, если задам глупый вопрос (я совершенно новичок в таких решениях/серверах). Нужно ли мне запускать bundle exec rails server, bin/ember-cli и mailhog каждый раз, когда я хочу использовать сервер? И как его выключить, если я захочу?

Спасибо за поддержку!