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에 기여하기
모든 것을 설정한 후에는, 기여를 시작하는 방법에 대해 읽어보세요.