在macOS上安装Discourse以进行开发

在开发中,您不在此处执行升级。

罗伯特,您好,感谢您的回复。执行升级是否只需要“git pull”?(在开发中)

1 个赞

是的,但别忘了 gem 和 migration:

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:

[警告] Discourse 建议使用 Ruby v3.2.1 或更高版本进行开发。您正在使用 v3.1.3。

2 个赞

不再是这样了!:partying_face:

3 个赞

由于某种原因,它无法安装 Ruby。我一直收到这个:

构建失败(macOS 12.5.1 使用 ruby-build 20230309)

检查或清理工作目录 /var/folders/f6/95l6wylj4d11_jyvyp7r9yd40000gn/T/ruby-build.20230320012216.80048.RdOmWC
结果已记录到 /var/folders/f6/95l6wylj4d11_jyvyp7r9yd40000gn/T/ruby-build.20230320012216.80048.log

最后 10 行日志:
	检查 ext/psych/mkmf.log 以获取更多详细信息。
*** 修复问题,然后删除这些目录并重试(如果您愿意)。
正在生成 RDoc 文档
/private/var/folders/f6/95l6wylj4d11_jyvyp7r9yd40000gn/T/ruby-build.20230320012216.80048.RdOmWC/ruby-3.2.1/lib/yaml.rb:3: warning: 您的 Ruby 安装似乎缺少 psych(用于 YAML 输出)。
要消除此警告,请安装 libyaml 并重新安装您的 Ruby。
糟糕!RDoc 遇到问题:
无法加载文件 -- psych

使用 --debug 运行以获取完整回溯
make: *** [rdoc] Error 1
失败

有人能帮帮我吗?

1 个赞

我在 MacOS 13.2.1 上也遇到了同样的问题。

此页面是 Google 搜索此错误消息(或其部分内容)时唯一的结果,因此,如果其他人再次遇到此错误:

今天在升级到当前版本的 Ruby (3.2.1)、Rails (7.0.4.3) 和包括 mini_racer (0.6.3) 在内的所有 Gemfile 依赖项后,运行 rails s 时遇到了此问题。

在遵循 此 GitHub 评论 中的建议后,问题得以解决:在 .../3.2.0/gems/mini_racer-0.6.3/ext/mini_racer_extension 中运行 make,然后将生成的 mini_racer_extension.bundle 复制到 .../3.2.0/extensions/x86_64-darwin-22/3.2.0/mini_racer-0.6.3

我终于设法成功通过了构建错误(我不记得我做了什么……),但现在我卡在了:

安装 pg (1.4.6) 时出错,Bundler 无法继续

bundle install 期间。:thinking:

编辑:
按照错误上方的说明解决了:

如果您需要先在 PATH 中包含 postgresql@13,请运行:
  echo 'export PATH="/opt/homebrew/opt/postgresql@13/bin:$PATH"' >> ~/.zshrc

为了让编译器找到 postgresql@13,您可能需要设置:
  export LDFLAGS="-L/opt/homebrew/opt/postgresql@13/lib"
  export CPPFLAGS="-I/opt/homebrew/opt/postgresql@13/include"

为了让 pkg-config 找到 postgresql@13,您可能需要设置:
  export PKG_CONFIG_PATH="/opt/homebrew/opt/postgresql@13/lib/pkgconfig"

我不确定是哪一个!:sweat_smile:

1 个赞

由于公司笔记本电脑存在权限问题,我必须手动逐个处理安装脚本。在尝试运行 gem update --system 时,我遇到了以下错误:

sh-3.2# gem update --system
Updating rubygems-update
Fetching rubygems-update-3.4.12.gem
Successfully installed rubygems-update-3.4.12
Parsing documentation for rubygems-update-3.4.12
Installing ri documentation for rubygems-update-3.4.12
Installing darkfish documentation for rubygems-update-3.4.12
Done installing documentation for rubygems-update after 158 seconds
Parsing documentation for rubygems-update-3.4.12
Done installing documentation for rubygems-update after 0 seconds
Installing RubyGems 3.4.12
ERROR:  While executing gem ... (Errno::EPERM)
    Operation not permitted @ 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 安装它。然后,对于 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

因为 Mac OS X 自带的系统 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

我是否遗漏了什么?

卸载当前节点并安装 brew 上的 node@20 后,我能够运行 bin/ember-cli

1 个赞

在此步骤中看到此错误。

错误:无法符号链接 bin/c_rehash
目标 /opt/homebrew/bin/c_rehash
是属于 openssl@3 的符号链接。您可以取消链接它:
  brew unlink openssl@3

要强制链接并覆盖所有冲突的文件:
  brew link --overwrite openssl@1.1

要列出所有将被删除的文件:
  brew link --overwrite --dry-run openssl@1.1

失败

并在该步骤中出现此错误

/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:283:in `find_spec_for_exe': 找不到您的 /Users/Desktop/discourse/Gemfile.lock 所需的 'bundler' (2.4.13)。 (Gem::GemNotFoundException)
要更新到您系统上安装的最新版本,请运行 `bundle update --bundler`。
要安装缺少的版本,请运行 `gem install bundler:2.4.13`

	来自 /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:302:in `activate_bin_path'
	来自 /usr/bin/bundle:23:in `<main>'

有人能指导我如何进行吗?这是我第一次。@Arkshine

抱歉,我没有 macOS 电脑。我知道脚本在 Windows/Linux 上运行正常;但 macOS 我无法测试。

您尝试运行 brew link --overwrite openssl@1.1 然后再次执行脚本了吗?但是,它很可能会在此 处再次停止。

有人知道如何在此开发环境中设置环境变量吗?我正在尝试让 SSO 生效,但似乎需要启用 CORS。我读到必须在 app.yml 中进行设置,但此设置中没有该文件。能否将其放入 site_settings 数据库表中?抱歉,我是 discourse 开发新手。

您好 @Plabforum

我遇到了和您完全一样的两个错误。您解决它们了吗?

任何建议都将不胜感激。

抱歉,我没有好消息。我实际上在那之后就放弃了。

很遗憾听到您遇到了这个问题。我通过以下方式解决了这个问题:

brew unlink openssl@3

然后链接 openssl@1.1

brew link --overwrite openssl@1.1

我再次运行脚本,没有出现错误(第一次运行时安装的东西出现了一些警告)。

2 个赞

我似乎按照此主题中的说明在我的 Macbook 上为开发安装了 Discourse。我有 2 个后续问题。

  1. 在运行 bundle exec rake autospec 时,我收到了一些警告和失败,这是否是需要担心的问题?我的安装似乎按预期工作,并且在管理员部分没有显示错误。

  2. 如果我问了一个愚蠢的问题,我提前道歉(我对此类解决方案/服务器完全陌生)。每次我想使用服务器时,我都需要运行 bundle exec rails serverbin/ember-climailhog 吗?以及我想关闭服务器时如何关闭?

感谢您的支持!