macOS에서 개발용 Discourse 설치하기

M1 Mac에서 개발용 Discourse를 설정하는 데 문제가 있습니다.

fast_xs와 gc_tracer 게머가 거의 유사한 오류로 설치에 실패합니다. 아래에 fast_xs 오류 메시지를 첨부합니다. 도움을 주실 수 있을까요?

Building native extensions. This could take a while...
ERROR:  Error installing fast_xs:
	ERROR: Failed to build gem native extension.

    current directory: /Users/sisirkoppaka/.gem/ruby/3.2.0/gems/fast_xs-0.8.0/ext/fast_xs
/Users/sisirkoppaka/.rubies/ruby-3.2.0/bin/ruby -I /Users/sisirkoppaka/.rubies/ruby-3.2.0/lib/ruby/site_ruby/3.2.0 extconf.rb
checking for assert.h... yes
creating Makefile

current directory: /Users/sisirkoppaka/.gem/ruby/3.2.0/gems/fast_xs-0.8.0/ext/fast_xs
make DESTDIR\= sitearchdir\=./.gem.20240203-10621-j9d0j7 sitelibdir\=./.gem.20240203-10621-j9d0j7 clean

current directory: /Users/sisirkoppaka/.gem/ruby/3.2.0/gems/fast_xs-0.8.0/ext/fast_xs
make DESTDIR\= sitearchdir\=./.gem.20240203-10621-j9d0j7 sitelibdir\=./.gem.20240203-10621-j9d0j7
compiling fast_xs.c
fast_xs.c:144:39: error: incompatible function pointer types passing 'VALUE (VALUE)' (aka 'unsigned long (unsigned long)') to parameter of type 'VALUE (*)(VALUE, VALUE)' (aka 'unsigned long (*)(unsigned long, unsigned long)') [-Wincompatible-function-pointer-types]
  144 |         array = rb_rescue(unpack_utf8, self, unpack_uchar, self);
      |                                              ^~~~~~~~~~~~
/Users/sisirkoppaka/.rubies/ruby-3.2.0/include/ruby-3.2.0/ruby/internal/iterator.h:364:62: note: passing argument to parameter 'r_proc' here
  364 | VALUE rb_rescue(VALUE (*b_proc)(VALUE), VALUE data1, VALUE (*r_proc)(VALUE, VALUE), VALUE data2);
      |                                                              ^
1 error generated.
make: *** [fast_xs.o] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/sisirkoppaka/.gem/ruby/3.2.0/gems/fast_xs-0.8.0 for inspection.
Results logged to /Users/sisirkoppaka/.gem/ruby/3.2.0/extensions/arm64-darwin-22/3.2.0-static/fast_xs-0.8.0/gem_make.out```

이 문제는 어떻게 해결되었나요?

Redis와 Postgres 서버를 모두 시작한 후 다음 명령을 실행하면

bundle exec rake db:create
bundle exec rake db:migrate
RAILS_ENV=test bundle exec rake db:create db:migrate

다음과 같은 오류가 발생합니다.

fe_sendauth: no password supplied
Couldn't create 'discourse_development' database. Please check your configuration.
rake aborted!

Redis와 Postgres 서버를 시작하지 않고 이 명령을 실행하면 다음과 같은 오류가 발생합니다.

bundle exec rake db:migrate
RAILS_ENV=test bundle exec rake db:create db:migrate
Couldn't connect to Redis
rake aborted!

어떻게 해야 하는지 알려주실 분 계신가요? 정말 막막합니다.

감사합니다.

지금까지 다음 명령어로 해결했습니다:

bundle config build.fast_xs --with-cflags=\"-Wno-incompatible-pointer-types\"
bundle config build.gc_tracer --with-cflags=\"-Wno-incompatible-pointer-types\"
bundle install

이 두 개의 비필수 gems를 제거하기로 결정했습니다.

그리고

3개의 좋아요

이 옵션을 실행한 후 서버를 어떻게 종료하나요?

이것이 작동하지 않는 것 같습니다(이제는 더 이상 작동하지 않음). 다음과 같은 오류가 발생합니다:

fatal: couldn't find remote ref master

로컬 변경 사항을 덮어쓰는 버전(2개 아래 게시글)도 작동하지 않습니다.

macOS Discourse 개발용 설치를 업그레이드하는 방법에 대해 아이디어가 있을까요?

master는 얼마 전에 main으로 이름이 변경되었습니다. 다음을 시도해 보세요.

cd ~/discourse
git pull origin main
4개의 좋아요

시몬, 도움 많이 됐어요.

git 명령은 실행할 수 있었지만, 그 과정에서 개발 환경이 깨져 버렸어요. 결국 개발 환경이 손상된 상태가 되어서, Discourse 개발용 홈페이지는 뜨지만 아무것도 정상적으로 작동하지 않아요 (새 주제 생성 시 계속 로딩 중 상태예요).

Discourse 개발용 설치 환경을 리셋하거나 깨끗하게 다시 설치하는 가장 쉬운 방법은 무엇일까요?

이 토픽 초반에 나온 설치 명령어를 다시 실행해 보았지만 (pnpm install 명령에서 오류가 발생함), 이 토픽에서 앞서 아피트가 제안한 rake db:drop db:create db:migrate 명령을 실행해 봐도 성공하지 못했어요.

npm install -g pnpm와 brew install node를 실행하여 pnpm과 node를 업데이트했고, 덕분에 설치 지침을 다시 실행할 수 있었습니다. 그러나 이제 다음과 같은 빌드 오류가 발생하고 있습니다:

Module not found: Error: Can't resolve '@ember/debug' in '/Users/pieces/discourse/app/assets/javascripts/node_modules/ember-tracked-storage-polyfill/addon/index.js'

npm install -g pnpm 실행 후 pnpm install도 실행하셨나요?

패키지 관리에 pnpm을 사용하도록 변경된 사항에 대한 자세한 내용은 여기에 있습니다: Discourse core is switching to pnpm for JS package management.

2개의 좋아요

네, 말씀하신 대로 진행했는데도 여전히 오류가 발생합니다.

다음과 같은 단계를 수행했습니다:

  1. Mac에서 패키지를 업데이트했습니다 (초기 스크립트를 다시 실행)
  2. bundle install 실행
  3. pnpm install 실행
  4. bundle exec rake db:create bundle exec rake db:migrate RAILS_ENV=test bundle exec rake db:create db:migrate 실행
  5. bundle exec rails server 실행
  6. 별도의 터미널 창에서 bin/ember-cli 실행

6단계를 실행할 때 오류가 발생합니다.

제공해 주신 링크의 세부 내용을 살펴보면, Yarn으로 관리되는 Node 모듈이 pnpm으로 제대로 변환되지 않은 것 같습니다. ‘node_modules’ 폴더를 수동으로 삭제하라고 언급되어 있더군요. 하지만 새로운 git pull을 통해 이 문제는 해결되어야 하지 않을까요?

아래는 6단계에서 발생한 오류입니다.

원인 파악에 도움이 된다면 해당 오류 로그를 공유할 수 있습니다.

macOS 시스템이 없어서 이를 테스트할 수 없다는 점은 참고할 가치가 있습니다. 다만 최근 Arch Linux 시스템에서 로컬 Discourse 인스턴스를 업데이트했습니다. JavaScript 의존성이 처리되는 방식은 두 시스템에서 유사할 것으로 예상됩니다.

그것은 정확하지 않다고 생각합니다. node_modules 디렉토리는 git에 의해 추적되지 않습니다. node 모듈은 pnpm install을 실행할 때 설치됩니다.

이것이 정확하다고 보장할 수는 없지만, 제가 해당 오류를 겪고 있다면 다음 명령어로 의존성을 삭제한 후 다시 설치하겠습니다:

rm -rf node_modules app/assets/javascripts/*/node_modules

pnpm install

ember-tracked-storage-polyfill은 discourse/node_modules 바로 안에 있는 것으로 보이지만, 위에서 게시한 전체 명령을 실행하는 것이 안전할 것입니다.

오류가 반환되면 상세 로깅과 함께 pnpm install을 실행해 볼 수도 있습니다:

pnpm install --reporter=silent --loglevel=verbose

의존성을 제거하고 다시 설치했는데, 제공된 명령어는 정상적으로 작동했습니다. pnpm이 오류 없이 제거되고 설치됩니다.

하지만 bin/ember-cli를 실행하면 여전히 동일한 오류가 발생합니다.

Discourse 개발용 설치를 완전히 제거하고, Git에서 클린 상태로 다시 가져와서 설치를 처음부터 새로 수행할 수 있는 방법이 있을까요?

개발 환경의 데이터를 잃는 것은 전혀 문제가 되지 않습니다.

rm -rf ~/discourse 명령을 실행하여 Discourse 소스 코드를 완전히 제거할 수 있습니다. 그런 다음 설치 가이드의 “Clone Discourse” 단계부터 따르세요: Install Discourse on macOS for development.

2개의 좋아요

그렇게 하니 됐어요!

시몬, 인내심을 갖고 포기하지 않아서 정말 감사합니다 :slight_smile:

2개의 좋아요

좋아요! 문제는 이전에 /discourse/tmp/cache/assets/sprockets/ 디렉터리에서 컴파일되어 캐시된 자산과 관련이 있었을 것 같습니다. 다음 명령을 실행하면 문제가 해결되었을 수도 있습니다:

rm -rf ~/discourse/tmp/cache/

다만 이는 추측일 뿐입니다.

3개의 좋아요

이 설명서를 따라가 보니 잘 되지 않습니다. 플러그인, 테마, 테마 컴포넌트 등 아무것도 설치하려고 하면 500 오류가 발생하여 정상적인 환경을 제공하지 못하고 있습니다. 마법사가 제대로 작동하지 않는 것 같습니다. 지금까지 약 10번 정도 설치하고, 의존성을 삭제했다가 다시 설치해 보았습니다. autospec을 실행하면 실패 항목이 많이 나오지만, 그에 대한 정보는 거의 제공되지 않습니다. 이 시스템을 정상적으로 작동하게 만드는 방법에 대해 아이디어가 있으시면 알려주시면 감사하겠습니다.

감사합니다!

Discourse 개발 README에서 시작해서 여기까지 오신 분들을 위해 말씀드립니다. 의존성을 처음 설정하시는 경우, README에는 PostgreSQL 13이라고 되어 있지만 PostgreSQL 14 이상을 권장합니다.

왜일까요? 데이터베이스를 설정하고 마이그레이션을 실행하면, 마이그레이션 중 하나에서 pgvector 확장 모듈에 액세스하려고 할 때 실패합니다. PostgreSQL 13용 pgvector 설치가 다소 번거롭습니다. 하지만 PostgreSQL 14를 설치한 뒤 pgvector를 설치하면 모든 것이 정상적으로 작동합니다.

둘 다에 대해 Homebrew 사용을 권장합니다:

brew install postgresql@14
brew install pgvector

또한! ImageMagick이 설치되어 있지 않으면 Rails 서버를 처음 실행할 때 오류가 발생합니다. (이 가이드 상단에 선택 사항이라고 나와 있는 것은 알고 있습니다)

이 정보가 도움이 되기를 바랍니다… 누군가에게!

3개의 좋아요

프로덕션은 이미 15입니다. 15나 16을 권장합니다.

2개의 좋아요