developer tip

번 들러 대 RVM 대 gems 대 RubyGems 대 gemsets 대 시스템 루비

copycodes 2020. 8. 30. 08:51
반응형

번 들러 대 RVM 대 gems 대 RubyGems 대 gemsets 대 시스템 루비


저는 Ruby를 처음 접했고 번 들러 대 RVM 대 gems 대 RubyGems 대 gemsets 대 시스템 문지름과 같은 개념에 대해 머리를 감싸려고 노력하고 있습니다.

누군가가 최신 버전의 Ubuntu를 새로 설치할 때이 모든 것을 관리하는 방법에 대한 '모범 사례'를 설명해 주시겠습니까? 무엇을 설치해야하며 모두 어떻게 사용해야합니까?

a를하는 sudo apt-get install ruby것이 권장되지 않는다고 생각하지만 확실하지 않습니다. 나는 '다른 모든 Ruby 항목'외에도 내 시스템에서 시도했습니다. 그것은 내 혼란을 더하고 있습니다. 저는 Rails에 대해 말하는 것이 아니라 일반적인 Ruby gem (예 : Vagrant, Chef, 스크립트)에 대해 이야기하고 있습니다.


이전 답변에 따르면 이것은 다루어야 할 내용이 많으므로 짧은 소개로 간주하십시오.

gem 은 Ruby 라이브러리가 패키징되는 방식입니다. Java에 대한 jar는 Ruby에게 있습니다. gem 파일 안에는 Ruby 코드 (.rb 파일)뿐만 아니라 테스트와 이름, 종속성 및 버전 ( gemspec )과 같은 gem 자체에 대한 정보를 제공하는 특수 파일도있습니다. 모든 Ruby 프로젝트는종속성을 선언하기 만하면 되는 Gemfile통해 필요한 gem을 정의 할 수 있습니다. Rubygems 는 패키지 관리자의 이름입니다. 패키지를 설치하는 데 사용되는 도구입니다 (Gem은 패키지 자체 임). Rubygems는 이제 Ruby의 일부입니다.

번 들러 는 보석 관리를 견딜 수있게 만드는 요소입니다. Gemfile을 기반으로 번들 설치사용하여 번 들러를 간단히 호출하면 필요한 모든 gem이 다운로드되고 설치됩니다. 표준 gem 명령을 사용하면gem install <gem_name>. Bundler는 Ruby의 일부가 아니지만 (그 자체 가 gem으로 패키지화되어 있습니다 ) 대부분의 응용 프로그램에서 "사실상 표준"입니다 (실제로 사용하지 않는 사람이 많지 않으며 실제로 사용하지 않을 이유도 없습니다).

RVM 은 시스템에 여러 버전의 Ruby를 설치하고 필요할 때 전환 할 수있는 도구입니다. 이것은 Ruby 1.8과 1.9 또는 심지어 "MRI"(Matz의 Ruby, 기본 구현)와 대안 (Jruby 또는 Rubinius와 같은)을 설치하는 데 사용할 수 있습니다. 이 필드에서 RVM은 단독이 아닙니다 .예를 들어 rbenv를 참조하십시오.

RVM gemset 은 주어진 컨텍스트, 일반적으로 프로젝트에 특정한 gem 세트입니다. 예를 들어 각각 고유 한 gem 세트가있는 서로 다른 애플리케이션을 개발하고 이들을 별도로 유지하려는 경우 유용합니다.

시스템 Ruby 는 RVM을 사용할 때 시스템에 설치된 Ruby 버전입니다 (즉, RVM을 통하지 않음).

막 시작했다면 보석과 번 들러에 관심이 있습니다. 지금은 RVM과 gemset을 따로 두어도됩니다.


Stack Overflow의 범위 내보다 한 가지 질문에 더 많은 정보를 요청하고 있습니다. 모든 것을 다루려면 책이 필요합니다.

Ubuntu에서는 Ruby의 "시스템"버전에 gem을 설치하고 제거하기가 쉽기 때문에을 통해 일반 gem을 설치하고 제거하는 데 익숙해집니다 sudo. (Mac OS에서는 Apple이 자체적으로 사용하기 위해 Ruby를 번들로 제공하기 때문에 다른 조언을 드리고 싶습니다.이를 엉망으로 만드는 것은 좋은 생각이 아닙니다.) 그런 다음 전체 gem 아이디어가 어떻게 작동하는지 아이디어가 있고 여러 시스템에 루비 버전이 있으면 " rbenv "또는 " RVM "을 사용 해보고 샌드 박스에 한두 버전을 설치합니다.

Linux는 배포판을 통해 Ruby를 쉽게 추가 / 제거 할 수 있지만 배포판 관리자가 패키지 한 버전으로 제한되어 있으므로 일반적으로 소스에서 설치합니다. 그러나 그것은 개발, 테스트 및 생산 시스템을 위해 여러 버전의 Ruby를 관리 할 때 고통 스럽습니다. 이것이 rbenvRVM 이 발명 된 이유입니다. 그들은 우리가 프로그래밍에 집중할 수 있도록 더러운 세부 사항을 처리합니다.

저는 rbenvRVM을 모두 사용했으며 지난 6 개월 동안 rbenv를 사용해 왔으며 좋은 결과를 얻었습니다. 내가 좋아하는 RVM보다 덜 복잡합니다. 두 경우 모두 별도의 Gems 세트로 다른 버전을 쉽게 설치할 수 있습니다. 원하는 경우 다른 터미널 창에서 다른 Ruby 버전을 열어 호환성을 쉽게 테스트 할 수 있습니다.

디버깅의 규칙 1은 한 번에 하나씩 변경하는 것이며, 이는 프로그래밍을 배우거나 새로운 언어를 배우는 경우에 해당됩니다. 산만하지 말고 단순하게 유지하십시오.

참고 URL : https://stackoverflow.com/questions/15586216/bundler-vs-rvm-vs-gems-vs-rubygems-vs-gemsets-vs-system-ruby

반응형