ruby-build는 Unix 계열 시스템의 소스에서 Ruby 버전 설치를 단순화하는 명령줄 도구입니다.
rbenv install
명령으로 rbenv용 플러그인으로 사용하거나 ruby-build
명령으로 독립 실행형 프로그램으로 사용할 수 있습니다.
brew install ruby-build
다음으로 업그레이드하세요:
brew upgrade ruby-build
git clone https://github.com/rbenv/ruby-build.git " $( rbenv root ) " /plugins/ruby-build
다음으로 업그레이드하세요:
git -C " $( rbenv root ) " /plugins/ruby-build pull
먼저 https://github.com/rbenv/ruby-build/releases/latest에서 타르볼을 다운로드하세요. 그 다음에:
tar -xzf ruby-build- * .tar.gz
PREFIX=/usr/local ./ruby-build- * /install.sh
# As a standalone program
$ ruby-build --list # lists latest stable releases for each Ruby
$ ruby-build --definitions # lists all definitions, including outdated ones
$ ruby-build 3.2.2 ~ /.rubies/ruby-3.2.2 # installs Ruby 3.2.2
$ ruby-build -d ruby-3.2.2 ~ /.rubies # alternate form for the previous example
# As an rbenv plugin
$ rbenv install 3.2.2 # installs Ruby 3.2.2 to ~/.rbenv/versions/3.2.2
경고
Ruby-build는 소스에서 Ruby를 다운로드하고 컴파일하기 전에 시스템 종속성이 존재하는지 대부분 확인하지 않습니다. 빌드 도구 및 개발 헤더와 같은 모든 필수 라이브러리가 시스템에 이미 있는지 확인하십시오.
기본적으로 Ruby 버전을 설치할 때 Ruby-build가 수행하는 작업은 다음과 같습니다.
./configure --prefix=/path/to/destination
실행합니다.make install
실행하여 Ruby를 컴파일합니다.상황에 따라 ruby-build는 위의 것보다 약간 더 많은 작업을 수행합니다. 예를 들어 OpenSSL 자체를 다운로드하고 컴파일하는 경우에도 Ruby를 적절한 OpenSSL 버전에 연결하려고 시도합니다. libyaml 및 readline 등과 같은 일부 라이브러리의 Homebrew 설치 인스턴스를 검색하고 연결합니다.
ruby-build에서 인식되지 않는 Ruby 버전을 설치하려면 Ruby 버전 번호 대신 사용자 정의 빌드 정의 파일의 경로를 지정할 수 있습니다.
정의 파일을 작성하는 방법에 대한 예로 기본 빌드 정의를 확인하세요.
빌드 프로세스는 다음 환경 변수를 통해 구성될 수 있습니다.
변하기 쉬운 | 기능 |
---|---|
TMPDIR | 임시 파일이 저장되는 곳. |
RUBY_BUILD_BUILD_PATH | 소스를 다운로드하고 빌드하는 곳입니다. (기본값: TMPDIR 의 타임스탬프 하위 디렉터리) |
RUBY_BUILD_CACHE_PATH | 다운로드한 패키지 파일을 캐시하는 위치입니다. (기본값: ~/.rbenv/cache rbenv 플러그인으로 호출된 경우) |
RUBY_BUILD_HTTP_CLIENT | 다운로드에 사용할 aria2c , curl 또는 wget 중 하나입니다. (기본값: PATH에서 첫 번째로 발견됨) |
RUBY_BUILD_ARIA2_OPTS | 다운로드를 위해 aria2c 에 전달할 추가 옵션입니다. |
RUBY_BUILD_CURL_OPTS | 다운로드를 위해 curl 에 전달할 추가 옵션입니다. |
RUBY_BUILD_WGET_OPTS | 다운로드를 위해 wget 에 전달할 추가 옵션입니다. |
RUBY_BUILD_MIRROR_URL | 사용자 정의 미러 URL 루트. |
RUBY_BUILD_MIRROR_PACKAGE_URL | 사용자 정의 완전한 미러 URL(예: http://mirror.example.com/package-1.0.0.tar.gz). |
RUBY_BUILD_SKIP_MIRROR | 다운로드 미러를 우회하고 원래 URL에서 모든 패키지 파일을 가져옵니다. |
RUBY_BUILD_TARBALL_OVERRIDE | Ruby tarball을 가져오려면 URL을 재정의하고 선택적으로 #checksum 추가합니다. |
RUBY_BUILD_DEFINITIONS | 빌드 정의 파일을 검색하기 위한 콜론으로 구분된 경로 목록입니다. |
RUBY_BUILD_ROOT | 빌드 정의 파일을 검색하기 위한 경로 접두사입니다. 더 이상 사용되지 않음: RUBY_BUILD_DEFINITIONS 사용 |
RUBY_BUILD_VENDOR_OPENSSL | 시스템 openssl이 호환되는 경우에도 openssl 빌드 및 공급업체 |
CC | C 컴파일러의 경로입니다. |
RUBY_CFLAGS | 추가 CFLAGS 옵션( 예: -O3 재정의) |
CONFIGURE_OPTS | 추가 ./configure 옵션. |
MAKE | 사용자 정의 make 명령( 예: gmake ) |
MAKE_OPTS / MAKEOPTS | 추가 make 옵션. |
MAKE_INSTALL_OPTS | 추가 make install 옵션. |
RUBY_CONFIGURE_OPTS | 추가 ./configure 옵션(Ruby 소스에만 적용됨) |
RUBY_MAKE_OPTS | 추가 make 옵션(Ruby 소스에만 적용됨) |
RUBY_MAKE_INSTALL_OPTS | 추가 make install 옵션(Ruby 소스에만 적용됨) |
NO_COLOR | 출력에서 ANSI 색상을 비활성화합니다. 기본값은 터미널에 연결된 출력에 색상을 사용하는 것입니다. |
CLICOLOR_FORCE | 터미널에 연결되지 않은 경우에도 출력에 ANSI 색상을 사용합니다. |
rbenv install
및 ruby-build
명령은 모두 -p/--patch
플래그를 지원하여 빌드하기 전에 Ruby 소스 코드에 패치를 적용합니다. 패치는 표준 입력에서 읽습니다.
# applying a single patch
$ rbenv install --patch 1.9.3-p429 < /path/to/ruby.patch
# applying a patch from HTTP
$ rbenv install --patch 1.9.3-p429 < <( curl -sSL http://git.io/ruby.patch )
# applying multiple patches
$ cat fix1.patch fix2.patch | rbenv install --patch 1.9.3-p429
ruby-build와 함께 번들로 제공되는 모든 Ruby 정의 파일에는 패키지에 대한 체크섬이 포함되어 있습니다. 즉, 외부에서 다운로드한 모든 패키지는 가져온 후 자동으로 무결성을 확인합니다.
체크섬 작성 방법에 대한 자세한 내용은 다음 섹션을 참조하세요.
다운로드 속도를 높이기 위해 ruby-build는 Amazon CloudFront에 호스팅된 미러에서 패키지 파일을 가져옵니다. 이를 활용하려면 패키지에서 체크섬을 지정해야 합니다.
# example:
install_package " ruby-2.6.5 " " https://ruby-lang.org/ruby-2.6.5.tgz# "
ruby-build는 먼저 $RUBY_BUILD_MIRROR_URL/
(참고: 전체 URL)에서 이 패키지를 가져오려고 시도합니다. 여기서
는 파일의 체크섬입니다. 다음과 같은 경우 원래 위치에서 패키지를 다운로드하게 됩니다.
RUBY_BUILD_SKIP_MIRROR
활성화되었습니다. RUBY_BUILD_MIRROR_URL
설정하여 커스텀 미러를 지정할 수 있습니다.
미러 사이트가 위의 URL 형식을 따르지 않는 경우 RUBY_BUILD_MIRROR_PACKAGE_URL
설정하여 전체 URL을 지정할 수 있습니다. 완전한 URL이라는 점을 제외하면 RUBY_BUILD_MIRROR_URL
과 동일하게 작동합니다.
기본 Ruby-build 다운로드 미러는 Basecamp에서 후원합니다.
ruby-build
와 rbenv install
모두 -k
또는 --keep
플래그를 허용합니다. 이는 Ruby-build가 설치 후 다운로드한 소스를 유지하도록 지시합니다. 이는 Ruby에서 gdb
및 memprof
사용해야 하는 경우 유용할 수 있습니다.
rbenv install
명령과 함께 --keep
사용할 때 소스 코드는 병렬 디렉터리 트리 ~/.rbenv/sources
에 보관됩니다. ruby-build
와 함께 --keep
사용할 때 RUBY_BUILD_BUILD_PATH
환경 변수를 사용하여 소스 코드의 위치를 지정해야 합니다.
일반적인 문제에 대한 해결 방법은 Ruby-build 위키를 참조하세요.
Wiki에서 답변을 찾을 수 없다면 이슈 트래커에서 이슈를 열어보세요. 빌드 실패에 대한 전체 빌드 로그를 포함해야 합니다.