참고
사이트 관리자가 지원되는 각 패키지 유형을 사용하거나 사용하지 않도록 설정할 수 있으므로 이 패키지 유형을 인스턴스에 사용할 수 없습니다. 자세한 내용은 엔터프라이즈에 대한 패키지 에코시스템 지원 구성을(를) 참조하세요.
필수 조건
-
RubyGems 2.4.1 이상이 있어야 합니다. RubyGems 버전을 찾으려면 다음을 수행합니다.
gem --version -
번들러 1.6.4 이상이 있어야 합니다. 번들러 버전을 찾으려면 다음을 수행합니다.
$ bundle --version Bundler version 1.13.7
GitHub Packages 인증
참고
GitHub Packages은(는) personal access token (classic)을(를) 사용하는 인증만 지원합니다. 자세한 내용은 개인용 액세스 토큰 관리을(를) 참조하세요.
프라이빗, 내부, 퍼블릭 패키지를 게시, 설치, 삭제하려면 액세스 토큰이 필요합니다.
personal access token (classic)을 사용하여 GitHub Packages 또는 GitHub API에 인증할 수 있습니다. personal access token (classic)을(를) 만들 때 필요에 따라 토큰의 범위를 다르게 할당할 수 있습니다. personal access token (classic)의 패키지 관련 범위에 대한 자세한 내용은 GitHub 패키지에 대한 사용 권한 정보를 참조하세요.
GitHub Actions 워크플로 내에서 GitHub Packages 레지스트리에 인증하려면 다음을 사용할 수 있습니다.
- 워크플로 리포지토리와 연결된 패키지를 게시하려면
GITHUB_TOKEN을 사용합니다. - 다른 프라이빗 리포지토리와 연결된 패키지를 설치하기 위한 최소한
read:packages범위가 있는 personal access token (classic)(리포지토리에 패키지에 대한 읽기 액세스 권한이 부여된 경우GITHUB_TOKEN을 사용할 수 있습니다. 패키지의 액세스 제어 및 표시 여부 구성을(를) 참조하세요).
personal access token을(를) 사용하여 인증
적절한 범위의personal access token (classic)으로 GitHub Packages에서 패키지를 게시하고 설치해야 합니다. 자세한 내용은 GitHub 패키지 소개을(를) 참조하세요.
Gems를 게시하고 설치하려는 경우 personal access token을(를) 사용하여 GitHub Packages에 인증하도록 RubyGems 또는 Bundler를 구성할 수 있습니다.
새 gem을 게시하려면 personal access token (classic)을(를) 포함하도록 ~/.gem/credentials 파일을 편집하여 RubyGems에서 GitHub Packages를 인증해야 합니다. 이 파일이 없는 경우 새 ~/.gem/credentials 파일을 만듭니다.
예를 들어 다음을 포함하도록 _~/.gem/credentials_를 만들거나 편집합니다. 이때 TOKEN을 personal access token(으)로 바꿉니다.
---
:github: Bearer TOKEN
gem을 설치하려면 https://USERNAME:TOKEN@REGISTRY_URL/NAMESPACE/를 포함하도록 gem 소스를 업데이트하여 GitHub Packages에 인증해야 합니다. 아래와 같이 바꿔야 합니다.
USERNAME을 GitHub 사용자 이름으로 바꾸기.TOKEN을 personal access token (classic)(으)로 바꿉니다.NAMESPACE를 gem이 포함된 리포지토리를 소유한 개인 계정 또는 조직의 이름으로 바꿉니다.REGISTRY_URL을 인스턴스의 Rubygems 레지스트리에 대한 URL로 바꾸기. 인스턴스에 하위 도메인 격리가 사용 설정된 경우rubygems.HOSTNAME을 사용합니다. 인스턴스에 하위 도메인 격리가 사용 설정된 경우HOSTNAME/_registry/rubygems을 사용합니다. 두 경우 모두 HOSTNAME을 GitHub Enterprise Server 인스턴스의 호스트 이름으로 바꿉니다.
패키지를 전역으로 사용할 수 있도록 하려는 경우 다음 명령을 실행하여 레지스트리를 원본으로 추가할 수 있습니다.
gem sources --add https://USERNAME:TOKEN@REGISTRY_URL/NAMESPACE/
Bundler를 사용하여 인증하려면 personal access token (classic)을(를) 사용하도록 Bundler를 구성합니다. 이때 USERNAME을 GitHub 사용자 이름으로, TOKEN을 personal access token(으)로, NAMESPACE를 gem이 포함된 리포지토리를 소유한 개인 계정 또는 조직의 이름으로 바꿉니다. REGISTRY_URL을 인스턴스의 RubyGems 레지스트리 URL로 바꿉니다. 인스턴스에 하위 도메인 격리가 사용 설정된 경우 rubygems.HOSTNAME을 사용합니다. 인스턴스에 하위 도메인 격리가 사용 설정된 경우 HOSTNAME/_registry/rubygems을 사용합니다. 두 경우 HOSTNAME을 GitHub Enterprise Server 인스턴스의 호스트 이름으로 바꿉니다.
bundle config https://REGISTRY_URL/NAMESPACE USERNAME:TOKEN
패키지 게시
기본적으로 GitHub는 패키지와 동일한 이름의 기존 리포지토리에 패키지를 게시합니다. 예를 들어 octo-org 조직에 GEM_NAME을 게시할 때 GitHub 패키지는 gem을 octo-org/GEM_NAME 리포지토리에 게시합니다. gem을 만드는 방법에 대한 자세한 내용은 RubyGems 설명서에서 직접 gem 만들기를 참조하세요.
-
GitHub Packages에 인증합니다. 자세한 내용은 GitHub Packages에 인증을 참조하세요.
-
_gemspec_에서 패키지를 빌드하여 .gem 패키지를 만듭니다.
GEM_NAME을 gem의 이름으로 바꿉니다.gem build GEM_NAME.gemspec -
GitHub Packages에 패키지를 게시합니다. 이때
NAMESPACE를 프로젝트가 포함된 리포지토리를 소유한 개인 계정 또는 조직의 이름으로,GEM_NAME을 gem 패키지의 이름으로 바꿉니다.REGISTRY_URL을 인스턴스의 Rubygems 레지스트리 URL로 바꿉니다. 인스턴스에 하위 도메인 격리가 사용 설정된 경우rubygems.HOSTNAME을 사용합니다. 인스턴스에 하위 도메인 격리가 사용 설정된 경우HOSTNAME/_registry/rubygems을 사용합니다. 두 경우HOSTNAME을 GitHub Enterprise Server 인스턴스의 호스트 이름으로 바꿉니다.참고
gem의
metadata.gz파일의 압축되지 않은 최대 크기는 2MB보다 작아야 합니다. 해당 제한을 초과하는 gem을 푸시하는 요청은 실패합니다.$ gem push --key github \ --host https://REGISTRY_URL/NAMESPACE \ GEM_NAME-0.0.1.gem
동일한 리포지토리에 여러 패키지 게시
여러 gem을 동일한 리포지토리에 게시하기 위해 gem.metadata의 github_repo 필드에 GitHub 리포지토리에 대한 URL을 포함할 수 있습니다. 이 필드를 포함하면 GitHub는 gem 이름을 사용하는 대신 이 값을 기반으로 리포지토리와 일치시킵니다. HOSTNAME을 GitHub Enterprise Server 인스턴스의 호스트 이름으로 바꿉니다.
gem.metadata = { "github_repo" => "ssh://HOSTNAME/OWNER/REPOSITORY" }
패키지 설치
_rubygems.org_에서 gem을 사용하는 것처럼 GitHub Packages에서 gem을 사용할 수 있습니다. ~/.gemrc 파일에서 GitHub 사용자 또는 조직을 소스로 추가하거나 번들러를 사용하여 Gemfile 파일을 편집하여 GitHub Packages를 인증할 수 있습니다.
-
GitHub Packages에 인증합니다. 자세한 내용은 GitHub Packages에 인증을 참조하세요.
-
번들러의 경우 _Gemfile_에서 GitHub 사용자 또는 조직을 소스로 추가하여 새 소스에서 gem을 가져옵니다. 예를 들어 지정한 패키지에만 GitHub Packages를 사용하는 _Gemfile_에 새
source블록을 추가하여GEM_NAME을 GitHub Packages에서 설치하려는 패키지로,NAMESPACE를 설치하려는 gem이 포함된 리포지토리를 소유한 개인 계정 또는 조직으로 바꿀 수 있습니다.REGISTRY_URL을 인스턴스의 Rubygems 레지스트리 URL로 바꿉니다. 인스턴스에 하위 도메인 격리가 사용 설정된 경우rubygems.HOSTNAME을 사용합니다. 인스턴스에 하위 도메인 격리가 사용 설정된 경우HOSTNAME/_registry/rubygems을 사용합니다. 두 경우HOSTNAME을 GitHub Enterprise Server 인스턴스의 호스트 이름으로 바꿉니다.source "https://rubygems.org" gem "rails" source "https://REGISTRY_URL/NAMESPACE" do gem "GEM_NAME" end -
버전이 1.7.0 이전인 번들러의 경우 새 전역
source를 추가해야 합니다. 번들러 사용에 대한 자세한 내용은 bundler.io documentation을 참조하세요.source "https://REGISTRY_URL/NAMESPACE" source "https://rubygems.org" gem "rails" gem "GEM_NAME" -
패키지를 설치합니다.
gem install GEM_NAME --version "0.1.1"