루비젬스

RubyGems
루비젬스
안정된 릴리스
3.2.20[1] / 2021년 6월 11일; 13개월 전 (6월 11일)
저장소
기입처루비
운영 체제크로스 플랫폼
유형패키지 매니저
면허증.루비 라이선스
웹 사이트rubygems.org
보석의 합계133,000+
총 다운로드 수14억 이상

RubyGems는 Ruby 프로그램 및 라이브러리를 배포하기 위한 표준 형식("gem"이라고 하는 자급자족 형식), 보석 설치를 쉽게 관리할 수 있도록 설계된 도구 및 배포 서버를 제공하는 Ruby 프로그래밍 언어의 패키지 관리자입니다.2004년 RubyConf에서 Chad Fowler, Jim Weerich, David Alan Black, Paul BrannanRichard Kilmer에 의해 만들어졌다.[2]

RubyGems의 인터페이스는 gem이라고 불리는 명령줄 도구이며 라이브러리(gem)[3]를 설치하고 관리할 수 있습니다.RubyGems는 Ruby 런타임 로더와 통합되어 표준화된 라이브러리 폴더에서 설치된 보석을 찾아 로드할 수 있습니다.개인 RubyGems 저장소를 사용하는 것은 가능하지만 공용 저장소는 보석 관리에 가장 일반적으로 사용됩니다.

공용 저장소는 사용자가 보석을 찾고 종속성을 해결하며 설치할 수 있도록 도와줍니다.RubyGems는 Ruby 1.[4]9에서 표준 Ruby 패키지에 번들되어 있습니다.

역사

RubyGems의 개발은 2003년 11월에 시작되어 2004년 3월 14일, Pi Day [5]2004에 일반에 공개되었습니다.2010년에 보석의 기본 공개 저장소가 gems.rubyforge.org에서 rubygems.org로 이전되어 현재도 사용되고 있습니다.또한, RubyGems 개발은 2010년에 GitHub로 이전되었습니다.Ruby Gems는 Ruby 1.8부터 존재했지만 Ruby 1.9까지는 표준 Ruby 배포판의 일부가 아니었다.

이전에는 RubyGems와 Ruby와의 호환성이 다양했습니다.많은 버전의 RubyGems는 많은 버전의 Ruby와 거의 완전히 호환되지 않으며 일부 버전은 주요 기능을 사용할 수 없습니다.예를 들어, Ruby 1.9는 표준 디스트리뷰션에서 RubyGems 1.3.7과 함께 제공되었지만 RubyGems 1.4.x는 Ruby 1.9와 호환되지 않습니다.즉, Ruby [6]1.9의 첫 번째 안정적인 릴리스로부터 2년 후인 2011년에 RubyGems 1.5.0이 출시되기 전까지는 Ruby 1.9에서 RubyGems를 업데이트할 수 없었습니다.이러한 호환성 문제로 인해 RubyGems는 4~6주 출시 일정으로 전환하여 빠르게 개발되었습니다.2004년부터 2010년까지 38개, 2011년부터 2016년까지 117개, 2013년에 45개 버전이 출시되어 RubyGems의 [5]1년 중 가장 많은 출시 수를 기록하고 있습니다.

보석의 구조

모든 보석에는 이름, 버전 및 플랫폼이 포함되어 있습니다.젬은 CPU 아키텍처, 운영체제 유형 및 [7]버전에 따라 특정 플랫폼용으로 설계된 루비에서만 작동합니다.

각 보석은 다음과 같이 구성됩니다.

  1. 코드
  2. 문서
  3. 보석 사양(Gemspec)

코드 구성은 gem_name이라는 이름의 주석에 대해 다음 구조를 따릅니다.

gem_name/ "--- bin/ "--- gem_name "-- lib/ "-- gem_name.rb "-- test/ "-- test_gem_name.rb "-- README "--- Rakefile "--gem_name.gemspec
  • lib 디렉토리에는 gem 코드가 포함되어 있습니다.
  • 테스트(또는 사양) 디렉토리는 테스트에 사용됩니다.
  • 레이크 파일은 테스트를 자동화하고 코드를 생성하는 데 사용됩니다.
  • README에는 대부분의 보석용 문서인 RDOC가 포함되어 있습니다.
  • 보석 사양(gemspec)에는 보석의 작성자, 생성 시기 및 보석이 제공하는 목적에 대한 정보가 포함되어 있습니다.

보안에 관한 우려

젬은 응용 프로그램에서 자체 코드를 실행하므로 악성 젬 설치로 인해 다양한 보안 문제가 발생할 수 있습니다.악의적인 보석을 만든 사람은 사용자의 시스템 또는 [8]서버를 손상시킬 수 있습니다.

보안 위협에 대응하기 위해 다음과 같은 다양한 방법이 개발되었습니다.

  • RubyGems 버전 0.8.11 이후 보석의 암호화 서명.이를 위해 gem cert 명령어와 gem install 명령어가 사용됩니다.
  • X509OpenPGP와 같은 새로운 서명 모델이 제안되어 루비 전문가들 사이에서 활발하게 논의되고 있다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Release 3.2.20". 11 June 2021. Retrieved 21 June 2021.
  2. ^ "174 Rubygems with Eric Hodel".
  3. ^ "RubyGems Command Reference". guides.rubygems.org. Retrieved 2016-09-18.
  4. ^ "Ruby 1.9.1 changelog".
  5. ^ a b "Version history of RubyGems". GitHub. Retrieved 2016-09-18.
  6. ^ "Ruby 1.9.1 released". www.ruby-lang.org. Retrieved 2016-09-18.
  7. ^ "What is a gem? - RubyGems.org". guides.rubygems.org. Retrieved 2016-09-18.
  8. ^ "Security - RubyGems Guides". guides.rubygems.org. Retrieved 2016-09-23.

외부 링크