rbenv와 bundler로 Ruby 버전 및 gem 관리 방법
한 환경에서 루비 개발,gem 설치를 진행하면 애플리케이션별 종속성 차이로 오류가 발생할 수 있습니다.
그럼 이번에는 rbenv와 bundler로 루비 버전과 젬을 관리하는 방법을 소개해 드리겠습니다.
개발 환경의 전제 조건
rbenv 설치됨
신중하게 보기 위해서 제가 참고 가치가 있는 보도를 소개하겠습니다.
버전 관리
rbenv를 사용하여 특정 버전의 Ruby를 설치하고 관리합니다.
이번에는 2.7 시스템을 설치하고 싶습니다.
이른바 rbenv
rbenv는 여러 버전 간에 사용할 수 있는 루비 버전을 관리하는 도구입니다.
전체 환경(global)의 버전을 설정할 수 있을 뿐만 아니라 디렉터리(local)의 버전도 설정할 수 있습니다.
특정 버전의 Ruby 설치
먼저 rbenv에 설치할 수 있는 Rubby 버전을 확인합니다.
rbenv install 명령에 -1 옵션을 추가하면 안정적인 버전과 최신 버전이 표시됩니다.
$ rbenv install -l
2.6.7
2.7.3
3.0.1
...
2.7계 중 2.7.3이 최신이어서 이걸 설치합니다.$ rbenv install 2.7.3
시간이 오래 걸리니까 잠시 기다려.완료되면 rbenv versions 명령을 사용하여 설치된 목록을 확인합니다.
※ 아래 예시와 같이 설치된 버전이 있으면 변경
$ rbenv versions
system
2.6.6
* 2.7.0 (set by /Users/masuyama/.rbenv/version)
2.7.3
"*"플래그는 현재 적용된 Ruby 버전입니다.이번 버전은 2.70이 적용된 상태이며, 방금 설치한 버전 2.7.3은 아직 적용되지 않았다.
특정 버전의 Ruby 적용
그러면 작업 디렉터리를 지정하고 그 중에서 사용하는 Rubby 버전을 설정하고 2.7.3을 적용합니다.
rbenv local 명령을 사용하여 특정 디렉토리에만 적용합니다.
$ mkdir ruby_pj
$ cd ruby_pj
$ rbenv local 2.7.3
$ rbenv versions
system
2.6.6
2.7.0
* 2.7.3 (set by /Users/masuyama/ruby_pj/.ruby-version)
루비 명령을 실제 두드려 버전을 확인한 후 2.7.3을 적용한 것을 알 수 있다.$ ruby -v
ruby 2.7.3p183 (2021-04-05 revision 6847ee089d) [x86_64-darwin20]
gem 라이브러리 관리
그럼 이 디렉터리에 사용되는gem와 프로그램 라이브러리를 개별적으로 관리하세요.
이를 위해 버블러라는 gm를 사용합니다.
이른바 bundler
bundler는 "gem의 의존 관계와 버전을 관리하는 도구입니다."
많은 개발 환경에서 여러 개의gem를 사용하지만 개별적인gem는 다른 gm를 사용하기 때문에 이런 의존 관계를 스스로 해결하는 것은 상당히 어렵다.
따라서 버블러를 사용하면 gm의 의존 관계를 해결하는 동시에 gm를 통일적으로 설치할 수 있다.
bundler 설치
먼저 Bundler를 설치합니다.
$ rbenv exec gem install bundler
$ rbenv rehash
여기서 요점은gem install 명령을 실행할 때 접두사로 rbenv exec를 붙이는 것입니다.이것은 rbenv에 적용된 Rubby에서 실행되므로 local에 설정된 Ruby 2.7.3을 사용합니다.
bundle 설정
먼저 bundle 설정 파일(Gemfile)의 초기 형태를 생성합니다.
Gemfile을 생성할 때 bundle의 하위 명령인 init를 사용하지만, rbenv exec 명령을 사용해야 합니다.
$ rbenv exec bundle init
이 동작을 실행하면 디렉터리(/ruby pj)에 Gemfile이라는 설정 파일을 생성합니다.이 Gemufile에 설치하고 싶은gem 프로그램 라이브러리를 기록합니다.
# frozen_string_literal: true
source "https://rubygems.org"
git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
# gem "rails"
기본 rails 기술은 논평을 할 것입니다.gem "rails"
또한Gemfile 내의gem 정보의 쓰기 방법에 따라gem의 버전을 지정할 수 있습니다.다음은 쓰기의 예를 소개한다.
기법
설치된 버전
gem 'rails'
최신 버전
gem 'rails', '6.0.0'
고유 버전(6.0.0 필요)
gem 'rails', '>= 6.0.0'
6.0.0 이상의 최신
gem 'rails', '~> 6.0'
6.0 이상, 7.0 이하의 최신 버전(주요 버전 유지)
또한 이번 Gemfile처럼 지정된 버전이 없는 경우 최신 버전이 설치되는 경우가 많습니다.
bundler로gem 설치하기
bundle install 명령을 사용하여 Gemfile에 기록된 대로 gem을 설치합니다.
rbenv exec bundle install --path=vendor/bundle
이 때 요점은. path 옵션을 사용하여 작업 디렉터리 아래에gem 파일을 설치하는 것입니다.이 옵션을 설치하지 않으면 rbenv에서 지정한 버전의 Ruby 자체에 gem을 설치하면 같은 버전의 Ruby를 사용하는 다른 항목에 영향을 줄 수 있습니다.
그러면 Gemfile에서 유일하게 지정한 rails의gem의 최신 버전을 설치해야 합니다
rails-v를 통해 설치된 버전을 확인합니다.
$ rbenv exec bundle exec rails -v
Rails 6.1.4.1
이때 Gemfile.lock이라는 파일도 생성됐을 겁니다.bundler에서는 의존 관계를 해결하는 동시에gem를 설치할 수 있지만 Gemfile에 기재된gem버전과 의존 관계의 해결 결과는Gemfile입니다.lock으로 저장합니다.
이 Gemufilelock은 bundler가 자동으로 편집하기 때문에 특별한 이유가 없으면 수동으로 다시 쓰지 않도록 주의하십시오.
자주 사용하는 bundle 명령
또 다른 자주 사용하는 버블 지령이 몇 개 있기 때문에 물건을 포함하는 정리를 소개했다.
명령하다
실행 결과
bundle init
Gemfile 생성
bundle install
Gemfile(.lock)에서 gem 패키지를 설치합니다.
bundle 업데이트 [라이브러리 이름]
설치된gem 버전 업데이트
bundle list
설치된gem 목록 보이기
bundle exec[명령 이름]
bundler에 설치된gem 규격으로 명령 실행하기
이상은 지적할 점이 있으면 댓글로 남겨주세요.
Reference
이 문제에 관하여(rbenv와 bundler로 Ruby 버전 및 gem 관리 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/tmasuyama1114/articles/8c6bfa59a0806e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)