G.frege를 너무 사랑하는 holy가...

[rails7] install ruby on rails7

[ document summary ]
    Title: [rails7] install ruby on rails7
    date: 2023 10.10
    content: ruby on rails7 설치하기

gorails로 설치

GoRails 에 보면 설치 과정이 쉽게 나와 있다. 이대로 따르면 된다. 내 computer는 m1 mac이고, os는 ventura를 사용한다. kholdem에서 설치했던것도 여기에 있다. 참조해본다.

ruby 설치

ruby는 version 관리를 해야하는데, 예전에는 rbenv나 rvm을 사용했는데, 요즘은 asdf를 사용한다고 해서 사용했는데, 너무 불안정하다. asdf global로 system설정도 제대로 안되고 asdf install로 설치시 제대로 안되는 문제도 있다. 어떤것을 사용할 지 고민이 된다. asdf는 명령어를 실행한 후 매번 source .zshrc를 해줘야만, 적용이 그나마 제대로 된다.

asdf 설치

참고 , asdf는 node.js와 ruby의 version관리를 할 수 있다. rvm이나 rbenv 대신 asdf로 ruby버전을 관리하는 이유는, node도 관리할 수 있기 때문이다. asdf page에 나온방식으로 설치할 수도 있꼬, gorails에서 설치한 방법으로 설치할 수도 있다.

  • asdf 공식

    prerequisite이 있다.

    brew install coreutils curl git
    

    그리고 asdf를 설치한다.

    brew install asdf
    

    asdf를 shell path에 등록한다.

    echo -e "\n. $(brew --prefix asdf)/libexec/asdf.sh" >> ${ZDOTDIR:-~}/.zshrc
    

    이렇게 하고 반드시 terminal을 restart해야 한다. gorails는

  • gorails

    cd
    git clone https://github.com/excid3/asdf.git ~/.asdf
    echo '. "$HOME/.asdf/asdf.sh"' >> ~/.zshrc
    echo '. "$HOME/.asdf/completions/asdf.bash"' >> ~/.zshrc
    echo 'legacy_version_file = yes' >> ~/.asdfrc
    exec $SHELL
    

asdf에서 ruby, node 설치

plugin을 설치한다. 아래는 ruby와 nodejs를 version관리할 수 있는 plugin을 설치하는 것이다.

asdf plugin add ruby
asdf plugin add nodejs

현재 ruby의 추천은 3.2.2다. 그런데 project는 3.2.1이다. 3.2.1, 3.2.2 둘다 설치하자.

asdf install ruby 3.2.2
asdf install ruby 3.2.1
asdf global ruby 3.2.1

# Update to the latest Rubygems version
gem update --system

설치된 ruby version을 확인한다.

which ruby
#=> /Users/username/.asdf/shims/ruby
ruby -v
#=> 3.2.2

이제 node를 설치해보자. node는 project에 나와 있지 않아서 그대로 설치한다.

asdf install nodejs 18.16.1
asdf global nodejs 18.16.1
which node
#=> /Users/username/.asdf/shims/node
node -v
#=> 18.16.1

# Install yarn for Rails jsbundling/cssbundling or webpacker
npm install -g yarn

rails 설치

gorails는 7.0.6을 추천하지만, project는 7.0.8 이상을 설치하기 때문에 맞춰서 설치하자. 아래와 같이 설치하면 system level에서 rails를 설치하게 된다.

gem install rails -v 7.0.8

project level에서 rails를 사용하려면, Gemfile에 기술된 gem들을 설치하면 된다.

cd kholdem-server
bundle install
rails -v

database 설정

sqlite3

project에는 postgresql을 사용한다. 설치법만 설명한다.

sqlite3를 설치한다. mac에는 built-in database로 sqlite3가 이미 설치되어 있다. file기반의 단순한 db다. 이것이 특정 버전에선 문제가 있기 때문에 brew로 다시 설치하자.

brew install sqlite3

postgresql

  • postgresql 설치와 실행

    rails에서 db를 사용한다고 하면, sqlite3를 사용하진 않는다. 보통 mysql이나 postgresql을 사용한다. postgresql을 강추하기 때문에 postgresql을 설치하자.

    brew tap homebrew/core
    brew install postgresql
    

    postgresql이나 mysql은 데몬이다. local에서 computer가 시작하자마자 실행하려고 하면 brew service를 이용하면 된다. postgresql이 daemon으로 떠 있어야 rails를 local에서 실행할때도 사용할 수 있다.

    brew services start postgresql
    
  • postgresql database 생성

    database를

final

최종적으로 몇몇 gem들은 system의 C를 사용한다. C의 header파일을 참조하는데, 이것의 위치가 mojave좀 바뀌었다. 그래서 그것에 대한 처리를 해준다. 나는 ventura를 사용하기 때문에 처리하지 않아도 될듯하다. 처리할려면 path를 변경해야 한다.

sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

Test Program

새로운 project를 만든다. sqlite3를 사용하는 project는 다음과 같이 만든다.

rails new myapp

db와 연동하는 project일 경우, 다음과 같이 만든다.

rails new myapp -d mysql or
rails new myapp -d postgresql

그리고 project에 들어가서, server를 실행시키면 된다.

cd myapp
rails server

project local 실행

rails s로 바로 서버를 실행하기전, 해야 할 것이 있다.

bundle install로 gem을 모두 설치한다.

pg db를 사용하고 있기 때문에, postgresql을 start해야 한다.

port를 알아야 하는데, port는 database.yml에 기술되어 있다. port는 5432

ruby관련 emacs packages