RHEL6에 puppet을 설치하면 다음과 같은 오류가 발생합니다. Ruby gem을 설치했지만 Ruby gem 종속성에 문제가 있습니다. 이 문제를 어떻게 해결할 수 있나요?
[root@INFINI-ONE ~]# yum install puppet
Loaded plugins: product-id, subscription-manager
Updating Red Hat repositories.
core-0 | 1.8 kB 00:00
core-1 | 1.8 kB 00:00
core-2 | 1.8 kB 00:00
core-3 | 1.8 kB 00:00
core-4 | 1.8 kB 00:00
core-5 | 1.8 kB 00:00
puppetlabs-deps | 1.9 kB 00:00
puppetlabs-products | 1.9 kB 00:00
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package puppet.noarch 0:3.2.1-1.el6 will be installed
--> Processing Dependency: facter >= 1.6.11 for package: puppet-3.2.1-1.el6.noarch
--> Processing Dependency: hiera >= 1.0.0 for package: puppet-3.2.1-1.el6.noarch
--> Processing Dependency: ruby(selinux) for package: puppet-3.2.1-1.el6.noarch
--> Processing Dependency: ruby-augeas for package: puppet-3.2.1-1.el6.noarch
--> Processing Dependency: ruby-rgen for package: puppet-3.2.1-1.el6.noarch
--> Processing Dependency: ruby-shadow for package: puppet-3.2.1-1.el6.noarch
--> Running transaction check
---> Package facter.x86_64 1:1.7.1-1.el6 will be installed
---> Package hiera.noarch 0:1.2.1-1.el6 will be installed
--> Processing Dependency: rubygem-json for package: hiera-1.2.1-1.el6.noarch
---> Package puppet.noarch 0:3.2.1-1.el6 will be installed
--> Processing Dependency: ruby(selinux) for package: puppet-3.2.1-1.el6.noarch
---> Package ruby-augeas.x86_64 0:0.4.1-1.el6 will be installed
---> Package ruby-rgen.noarch 0:0.6.2-1.el6 will be installed
---> Package ruby-shadow.x86_64 0:1.4.1-13.el6 will be installed
--> Running transaction check
---> Package puppet.noarch 0:3.2.1-1.el6 will be installed
--> Processing Dependency: ruby(selinux) for package: puppet-3.2.1-1.el6.noarch
---> Package rubygem-json.x86_64 0:1.5.5-1.el6 will be installed
--> Processing Dependency: rubygems for package: rubygem-json-1.5.5-1.el6.x86_64
--> Finished Dependency Resolution
Error: Package: rubygem-json-1.5.5-1.el6.x86_64 (puppetlabs-deps)
Requires: rubygems
Error: Package: puppet-3.2.1-1.el6.noarch (puppetlabs-products)
Requires: ruby(selinux)
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
[root@INFINI-ONE ~]# gem -v
2.0.3
답변1
당신이 언급한 Ruby gem은 gem 패키지 관리자를 사용하여 설치되었습니까, 아니면 이러한 gem의 실제 RPM을 사용하여 설치되었습니까?
나는 그들이 이미 gem을 설치했다고 생각합니다. 그렇다면 RPM은 이에 대해 아무것도 모르므로 이러한 패키지를 설치하기 위한 RPM 기록이 없기 때문에 이 오류가 발생합니다.
다음과 같이 설치된 gem을 나열할 수 있습니다:
$ gem list
*** LOCAL GEMS ***
abstract (1.0.0)
actionmailer (3.0.10, 3.0.5)
actionpack (3.0.10, 3.0.5)
activemodel (3.0.10, 3.0.5)
activerecord (3.0.10, 3.0.5)
...
잠재적인 솔루션
다음과 같은 제목의 게시물을 찾았습니다.Puppet 3.x, rubygem 패키지가 RHEL 6.4에서 찾을 수 없습니다.같은 문제에 대해 토론하십시오. 이 문제를 해결하려면 yum 설정에 추가 저장소를 추가해야 하는 것 같습니다. 이 작업을 수행하려면 다음 명령을 사용할 수 있습니다.
yum-config-manager --enable rhel-6-server-optional-rpms
rvm을 사용하여 프라이빗 Ruby 설치
누락된 패키지가 많이 있거나 다양한 gem을 위해 자체 패키지를 출시해야 한다면 RPM 사용을 포기하고 다음을 사용하여 Ruby + Gems 인스턴스를 직접 구축하는 것이 좋습니다.오른쪽 방. 다른 토론 중이에요유앤엘 Q&A.
또한 여기에서 rvm 설정 및 사용에 대한 블로그를 작성했습니다.쉘 및 CGI 스크립트와 함께 Ruby의 rvm 설치를 사용하는 방법.