rubyonrails.org에서 더 보기:

GitHub에서 이 파일을 읽지 마세요. 가이드는 https://guides.rubyonrails.org 에서 제공됩니다.

Rails Core 개발 의존성 설치하기

이 가이드는 Ruby on Rails core 개발을 위한 환경 설정 방법을 다룹니다.

이 가이드를 읽고 나면 다음을 알 수 있습니다:

  • Rails 개발을 위한 머신 설정 방법

1 환경 설정을 위한 다른 방법들

로컬 머신에서 Rails 개발 환경을 설정하고 싶지 않다면, Codespaces, VS Code Remote Plugin, 또는 rails-dev-box를 사용할 수 있습니다. 이러한 옵션들에 대해 여기에서 자세히 알아보세요.

2 로컬 개발

머신에서 로컬로 Ruby on Rails를 개발하고 싶다면, 아래의 단계들을 참고하세요.

2.1 Git 설치하기

Ruby on Rails는 소스 코드 관리를 위해 Git을 사용합니다. Git 홈페이지에서 설치 방법을 확인할 수 있습니다. Git에 익숙해질 수 있도록 도와주는 다양한 온라인 리소스들이 있습니다.

2.2 Ruby on Rails Repository 복제하기

Ruby on Rails 소스 코드를 다운로드하고 싶은 폴더로 이동하고(rails 하위 디렉토리가 생성됩니다) 다음을 실행하세요:

$ git clone https://github.com/rails/rails.git
$ cd rails

2.3 추가 도구와 서비스 설치하기

일부 Rails 테스트는 해당 테스트를 실행하기 전에 설치해야 하는 추가 도구들이 필요합니다.

다음은 각 gem의 추가적인 의존성 목록입니다:

  • Action Cable은 Redis가 필요합니다
  • Active Record는 SQLite3, MySQL, PostgreSQL이 필요합니다
  • Active Storage는 Yarn(추가적으로 Yarn은 Node.js를 필요로 합니다), ImageMagick, libvips, FFmpeg, muPDF, Poppler가 필요하고, macOS에서는 XQuartz도 필요합니다.
  • Active Support는 memcached와 Redis가 필요합니다
  • Railties는 Node.js와 같은 JavaScript 런타임 환경이 필요합니다.

변경할 gem을 제대로 테스트하기 위해 필요한 모든 서비스를 설치하세요. macOS, Ubuntu, Fedora/CentOS, Arch Linux, FreeBSD에서 이러한 서비스를 설치하는 방법이 아래에 자세히 설명되어 있습니다.

Redis 문서에서는 패키지 관리자를 통한 설치를 권장하지 않습니다. 소스에서 설치하고 서버를 실행하는 것이 간단하며 Redis 문서에 잘 설명되어 있습니다.

Active Record 테스트는 MySQL, PostgreSQL, SQLite3에 대해 반드시 통과해야 합니다. 변경사항과 테스트가 특정 어댑터에 국한된 것이 아니라면, 단일 어댑터에 대해서만 테스트된 패치는 거부될 것입니다.

아래에서 각 운영체제별로 모든 추가 도구를 설치하는 방법을 확인할 수 있습니다.

2.3.1 macOS

macOS에서는 Homebrew를 사용하여 모든 추가 도구를 설치할 수 있습니다.

모두 설치하려면 다음을 실행하세요:

$ brew bundle

설치된 각 서비스들을 시작해야 합니다. 사용 가능한 모든 서비스를 나열하려면 다음을 실행하세요:

$ brew services list

그런 다음 다음과 같이 각 서비스를 하나씩 시작할 수 있습니다:

$ brew services start mysql

mysql을 시작하고 싶은 서비스의 이름으로 교체하세요.

2.3.2 Ubuntu

모두 설치하려면 다음을 실행하세요:

$ sudo apt-get update
$ sudo apt-get install sqlite3 libsqlite3-dev mysql-server libmysqlclient-dev postgresql postgresql-client postgresql-contrib libpq-dev redis-server memcached imagemagick ffmpeg mupdf mupdf-tools libxml2-dev libvips42 poppler-utils libyaml-dev libffi-dev

# Yarn 설치하기
# Node.js가 설치되어 있지 않은 경우 이 명령어를 사용하세요
# 참고: https://github.com/nodesource/distributions#installation-instructions
$ sudo mkdir -p /etc/apt/keyrings
$ curl --fail --silent --show-error --location https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
$ echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
$ sudo apt-get update
$ sudo apt-get install -y nodejs

# Node.js를 설치한 후에는 yarn npm 패키지를 설치하세요
$ sudo npm install --global yarn

2.3.3 Fedora 또는 CentOS

모두 설치하려면 다음을 실행하세요:

$ sudo dnf install sqlite-devel sqlite-libs mysql-server mysql-devel postgresql-server postgresql-devel redis memcached ImageMagick ffmpeg mupdf libxml2-devel vips poppler-utils

# Yarn 설치하기 
# Node.js가 설치되어 있지 않다면 이 명령어를 사용하세요
# 참고: https://github.com/nodesource/distributions#installation-instructions-1
$ sudo dnf install https://rpm.nodesource.com/pub_20/nodistro/repo/nodesource-release-nodistro-1.noarch.rpm -y
$ sudo dnf install nodejs -y --setopt=nodesource-nodejs.module_hotfixes=1

# Node.js가 설치되어 있다면 yarn npm package를 설치하세요
$ sudo npm install --global yarn

2.3.4 Arch Linux

모두 설치하려면 다음을 실행하세요:

$ sudo pacman -S sqlite mariadb libmariadbclient mariadb-clients postgresql postgresql-libs redis memcached imagemagick ffmpeg mupdf mupdf-tools poppler yarn libxml2 libvips poppler
$ sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
$ sudo systemctl start redis mariadb memcached

Arch Linux를 실행 중이라면, MySQL이 더 이상 지원되지 않으므로 대신 MariaDB를 사용해야 합니다 (자세한 내용은 이 공지사항 참조).

2.3.5 FreeBSD

모두 설치하려면 다음을 실행하세요:

$ sudo pkg install sqlite3 mysql80-client mysql80-server postgresql11-client postgresql11-server memcached imagemagick6 ffmpeg mupdf yarn libxml2 vips poppler-utils  
# portmaster databases/redis

또는 ports를 통해 모든 것을 설치하세요 (이러한 package들은 databases 폴더 아래에 있습니다).

MySQL 설치 중에 문제가 발생하면 MySQL 문서를 참조하세요.

2.3.6 Debian

모든 의존성을 설치하려면 다음을 실행하세요:

$ sudo apt-get install sqlite3 libsqlite3-dev default-mysql-server default-libmysqlclient-dev postgresql postgresql-client postgresql-contrib libpq-dev redis-server memcached imagemagick ffmpeg mupdf mupdf-tools libxml2-dev libvips42 poppler-utils

Debian을 실행하고 있다면, MariaDB가 기본 MySQL 서버이므로 차이가 있을 수 있다는 점을 유의하세요.

2.4 Database 설정

Active Record 테스트를 실행하기 위해 필요한 database 엔진을 설정하려면 몇 가지 추가 단계가 필요합니다.

PostgreSQL의 인증은 다르게 작동합니다. Linux나 BSD에서 개발 계정으로 개발 환경을 설정하려면 다음만 실행하면 됩니다:

$ sudo -u postgres createuser --superuser $USER

그리고 macOS의 경우:

$ createuser --superuser $USER

MySQL은 데이터베이스가 생성될 때 사용자를 생성합니다. 이 태스크는 사용자가 비밀번호가 없는 root라고 가정합니다.

그런 다음 MySQL과 PostgreSQL 모두에 대해 테스트 데이터베이스를 다음과 같이 생성해야 합니다:

$ cd activerecord  
$ bundle exec rake db:create

각각의 database engine에 대해 개별적으로 test database를 생성할 수도 있습니다:

$ cd activerecord
$ bundle exec rake db:mysql:build  
$ bundle exec rake db:postgresql:build

그리고 다음과 같이 데이터베이스를 삭제할 수 있습니다:

$ cd activerecord
$ bundle exec rake db:drop

Rake task를 사용해서 test database를 생성하면 올바른 character set과 collation으로 생성됨을 보장할 수 있습니다.

다른 database를 사용하고 있다면, 기본 connection 정보를 위해 activerecord/test/config.yml 또는 activerecord/test/config.example.yml 파일을 확인하세요. 자신의 컴퓨터에서 다른 인증 정보를 제공하기 위해 activerecord/test/config.yml을 수정할 수 있지만, 이러한 변경사항을 Rails에 다시 push하면 안 됩니다.

2.5 JavaScript 의존성 설치하기

Yarn을 설치했다면, JavaScript 의존성을 설치해야 합니다:

$ yarn install

2.6 Gem 의존성 설치하기

Gem은 Ruby에 기본적으로 포함되어 있는 Bundler를 사용하여 설치됩니다.

Rails를 위한 Gemfile을 설치하려면 다음을 실행하세요:

$ bundle install

Active Record 테스트를 실행할 필요가 없다면 다음과 같이 실행할 수 있습니다:

$ bundle config set without db
$ bundle install

2.7 Rails에 기여하기

모든 것을 설정한 후에는, 기여를 시작하는 방법에 대해 읽어보세요.



맨 위로