

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# AL2023에서 Ruby 사용
<a name="ruby"></a>

 [https://www.ruby-lang.org/en/](https://www.ruby-lang.org/en/) AL2023의는 버전 3.2 및 3.4로 표시됩니다. Amazon Linux는 업스트림 지원 일정을 따르며 [Ruby 웹 사이트에서](https://www.ruby-lang.org/en/) 항상 모든 Ruby 버전의 지원 상태를 확인할 수 있습니다. 지원되는 모든 Ruby 버전은 네임스페이스가 지정되며 동일한 시스템에 동시에 설치할 수 있습니다. 네임스페이스 지정 시에는 각 Ruby 설치가 파일 시스템 내에서 고유하도록 합니다. 이는 런타임 버전을 기반으로 키 디렉터리와 파일의 이름을 변경하여 달성할 수 있습니다. 실제 실행 파일 이름은 *ruby{MAJOR.MINOR}*(예: `ruby3.2` 또는 `ruby3.4`)와 같습니다. Ruby 또한 3.4는의 표준 C 기반 참조 구현을 참조`ruby3.4-mri`하는 MRI(Matz의 Ruby 해석기) 네임스페이스 바이너리를 제공합니다Ruby. 한 번에 Ruby 버전 하나만 활성화할 수 있습니다. 이 활성 버전은 *ruby*, *gem* 또는 *번들*과 같은 기본 디렉터리와 파일 이름을 제공하여 현재 활성 런타임을 가리킵니다.

 이는 *대체* 도구의 기능을 사용하여 이루어집니다. 기본 실행 파일 이름은 가상이며 설치된 다른 Ruby 버전을 가리킬 때 언제든지 변경될 수 있다는 점을 기억해야 합니다. 이러한 유연성을 통해 Shebang에서 *ruby*를 사용하는 소프트웨어는 호출 시 원하는 버전을 선택할 수 있습니다. 그러나 특정 버전의 Ruby가 필요한 경우 항상 지정된 버전의 런타임을 사용하는 네임스페이스 실행 파일(예: `ruby3.2` 또는 `ruby3.4`)을 호출하여 버전의 지속성을 달성할 수 있습니다. 또한 , , `ruby3.2-gem` `ruby3.4-gem` `ruby3.2-bundler`또는와 같은 *젬* 및 *번들러* 도구의 네임스페이스 실행 `ruby3.4-bundler`파일은 현재 활성 런타임에 관계없이 항상 해당 Ruby 버전과 연결됩니다.

 Ruby는 "`ruby{MAJOR.MINOR}`"로 시작하는 여러 네임스페이스 패키지로 배포됩니다. 이러한 패키지는 *젬* 및 *번들러* 도구, 설명서, 라이브러리 등의 *ruby* 호환 버전을 제공합니다. 예를 들어 코어 Ruby 3.2 런타임은 (*젬* `ruby3.2-rubygems` 제공) 및 `ruby3.2-rubygem-bundler` (*번들* 및 *번들러* 제공)를 종속성으로 가져오는 `ruby3.2` 패키지에서 제공됩니다.

 Ruby 버전을 설치한 후 대체 구성에서 컴패니언 도구의 항목이 null로 표시될 수 *있습니다*. 이는를 실행하여 확인할 수 있습니다`alternatives --display ruby`. 항목이 null로 표시되면를 사용하여 수동으로 등록해야 합니다`alternatives --install`. 예를 들어 Ruby3.4에 대한 모든 컴패니언 도구를 등록하려면 

```
sudo alternatives --install /usr/bin/gem gem /usr/bin/ruby3.4-gem 34
sudo alternatives --install /usr/bin/bundle bundle /usr/bin/ruby3.4-bundle 34
sudo alternatives --install /usr/bin/bundler bundler /usr/bin/ruby3.4-bundler 34
sudo alternatives --install /usr/bin/erb erb /usr/bin/ruby3.4-erb 34
sudo alternatives --install /usr/bin/racc racc /usr/bin/ruby3.4-racc 34
sudo alternatives --install /usr/bin/rdoc rdoc /usr/bin/ruby3.4-rdoc 34
sudo alternatives --install /usr/bin/ri ri /usr/bin/ruby3.4-ri 34
```

 우선 순위 값(예: 3.4의 경우 Ruby 34, 3.2의 경우 Ruby 32)은 기본 *ruby* 대체 항목에 사용된 우선 순위와 일치해야 합니다. 등록되면 *ruby* 대안과 함께 컴패니언 도구가 자동으로 관리됩니다.

 *대체* 도구는 Ruby 버전 간 전환을 위한 단일 명령을 제공합니다. 기본적으로 *대체*는 우선순위를 사용하여 현재 활성 Ruby 버전을 결정하는 자동 모드로 구성됩니다. 그러나 설치된 버전은 언제든지 활성화할 수 있습니다. 현재 Ruby의 지원되는 모든 버전은 우선순위가 동일합니다. 즉, 처음 설치된 버전이 자동으로 활성화됩니다.

***대체*를 사용하는 몇 가지 유용한 예제**

1. 다음에 대해 구성된 *대체* 확인

   ```
   alternatives --list
   ```

1. *ruby*의 현재 구성 확인

   ```
   alternatives --display ruby
   ```

1. 대화형으로 Ruby 버전 변경

   ```
   alternatives --config ruby
   ```

1. 수동 모드로 전환하고 특정 버전 선택

   ```
   alternatives --set ruby /usr/bin/ruby{MAJOR.MINOR}
   ```

1. 자동 버전 선택 모드로 다시 전환

   ```
   alternatives --auto ruby
   ```