RHEL에서 Ruby를 업그레이드하는 방법

RHEL에서 Ruby를 업그레이드하는 방법

RHEL에서 Ruby를 새 버전으로 업그레이드하는 방법.

내가 시도하면 - sudo yum install ruby그것은 말한다

패키지 ruby-2.0.0.648-33.el7_4.x86_64가 설치되어 있으며 최신 상태입니다.

버전은 관련이 없습니다

내가 시도하면 - sudo yum install @ruby2.5그것은 말한다,

로드된 플러그인: fastmirror, langpacks 저장소 "UIM_install"은

구성에서 이름이 누락되었습니다. ID를 사용하는 저장소 "디버그"가 누락되었습니다.

구성의 이름, 더 많은 내용을 나열하려면 id Repository nodesource를 사용하세요.

구성 저장소에 나열된 노드 소스보다 한 번 더 소스를 추가합니다.

구성 저장소 "opencl"이 여러 번 누락되었습니다.

캐시에서 이미지 속도를 로드하기 위해 ID를 사용하여 구성의 이름

Ruby2.5의 호스트 파일 그룹이 존재하지 않습니다. 오류: 할 일이 없습니다.

내 시스템에는 최신 Ruby가 필요합니다. 해결책은 무엇입니까?

편집하다:

나는 sudo yum update ruby다음과 같은 답변을 시도하고 제공했습니다.

캐시된 호스트 파일의 이미지 로딩 속도

업데이트 대상으로 표시된 패키지가 없습니다.

답변1

다음을 통해 최신 버전의 Ruby를 얻을 수 있습니다.Red Hat 소프트웨어 컬렉션.

rhscl 저장소를 설치한 후 Ruby SCL 패키지를 설치할 수 있습니다. 이러한 패키지는 기본 저장소에서 설치된 Ruby 버전과 함께 존재하므로 /usr/bin/ruby를 사용하지 않습니다. "rh-ruby25" SCL에는 Ruby 2.5가 포함되어 있지만 최신 버전을 원하는 경우 Ruby 2.6(rh-ruby26)을 사용할 수도 있습니다.

SCL을 사용하면 Red Hat에서 지원되고, 다른 모든 것과 마찬가지로 yum으로 설치되며, 보안 업데이트를 받을 수 있다는 장점이 있습니다. 단점은 기본 Ruby와 함께 제공되기 때문에 SCL을 사용하기 전에 주의해서 로딩해야 합니다. 지침은 제공된 링크에 있습니다.

답변2

일반적으로 나는 Linux 배포판에 패키지된 Ruby(또는 Rails) 버전을 사용하려고 하지 않습니다. 그 버전은 내 필요에 비해 거의 항상 너무 오래되었습니다. 대신 필요한 버전을 다운로드합니다.우심실 VM. 이렇게 하려면 배포판에서 제공하는 Ruby가 아닌 다른 디렉터리에 최신 버전의 Ruby를 설치해야 하며, $PATH필요한 경우 배포판에서 제공하는 바이너리 앞에 해당 디렉터리를 배치할 수 있습니다.

답변3

게으른 사람들을 위한 RVM 지침(처음부터 이 쓰레기가 실제로 작동하기를 원하는 사람들을 삭감하십시오):

$ sudo dnf remove ruby

실제로 필요한 것이 제거되지 않는지 확인하십시오. 다행히 저는 Ruby에 의존하지 않았습니다.

RVM(Ruby 버전 관리자)을 설치합니다. 안전에 전혀 영향을 주지 않음에도 불구하고 무의미하고 비판적인 춤을 추게 만듭니다.

gpg2 --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
\curl -sSL https://get.rvm.io | bash -s stable

새 셸을 시작합니다.

확인하다https://www.ruby-lang.org/en/downloads/최신 Ruby 버전을 확인하세요. 아쉽게도 플래그가 없는 것 같습니다 --latest. 쉿.

rvm install 3.3.0

일부 종속성을 설치할 수 있도록 sudo 비밀번호를 묻는 메시지가 표시됩니다(예!)

그러면 그럴 것이다소스에서 Ruby 빌드. 예, Ruby는 Python과 마찬가지로 설치 사용자 경험이 뛰어납니다. Go나 Rust를 설치할 때 소스에서 빌드된 기억이 없습니다. 쉿.

오류가 발생합니다.

Error running 'run_gem_wrappers regenerate',
please read /home/you/.rvm/log/1706528997_ruby-3.3.0/gemset.wrappers.global.log

구글에서 확인해보세요. 첫 번째 제안(설치 libtool)을 시도해 보세요. 이미 설치되어 있습니다. 두 번째 제안을 시도해 보세요.

sudo dnf install libyaml-devel

다시 시도하십시오

$ rvm install 3.3.0
Already installed ruby-3.3.0.
To reinstall use:

    rvm reinstall ruby-3.3.0

거짓말하다. reinstall버전을 사용해 보세요 .

마침내 성공했습니다! 소프트웨어 업그레이드가 이렇게 쉬울 줄 누가 알았겠습니까?

편집: 말하기에는 너무 이르다:

$ rvm use 3.3.0

RVM is not a function, selecting rubies with 'rvm use ...' will not work.

You need to change your terminal emulator preferences to allow login shell.
Sometimes it is required to use `/bin/bash --login` as the command.
Please visit https://rvm.io/integration/gnome-terminal/ for an example.

표시된 대로 실행하지 말고 .bash_profile추가된 마지막 행을 이동하세요 .bashrc.

간단한 12단계 과정!

다른 명령을 찾는 것을 저장하려면 다음을 수행하십시오.

rvm --default use 3.3.0

답변4

Redhat과 centos는 다양한 소프트웨어의 최신 버전을 제공하지 않습니다. LTS(Long Term Support) 운영체제이기 때문입니다. 보안 및 마이너 업그레이드만 출시됩니다. 더 높은 버전의 소프트웨어를 설치하려면 기존 버전을 교체하지 않고 직접 컴파일하는 것이 가장 좋습니다. 이는 운영 체제가 이전 특정 버전으로 작성된 스크립트/도구에 의존하기 때문일 수 있습니다. 다른 것으로 변경하면 문제가 발생할 수 있습니다.

관련 정보