업데이트된 Ruby deb 패키지를 설치할 수 없습니다: ruby1.9.1이 Ruby와 충돌합니다​​​

업데이트된 Ruby deb 패키지를 설치할 수 없습니다: ruby1.9.1이 Ruby와 충돌합니다​​​

특정 버전의 Ruby가 포함된 .deb패키지( )가 있고 ruby-2.1.2_amd64.deb이를 사용하여 설치하려고 dpkg하면 다음 오류가 발생합니다.

$ sudo dpkg -i /tmp/chef-solo/ruby-2.1.2_amd64.deb
dpkg: regarding .../chef-solo/ruby-2.1.2_amd64.deb containing ruby:
 ruby1.9.1 conflicts with ruby (<= 4.5)
  ruby (version 2.1.2) is to be installed.
dpkg: error processing /tmp/chef-solo/ruby-2.1.2_amd64.deb (--install):
 conflicting packages - not installing ruby
Errors were encountered while processing:
 /tmp/chef-solo/ruby-2.1.2_amd64.deb

메시지에 따르면 이전 버전의 Ruby가 시스템에 이미 존재하기 때문에 dpkg가 패키지 설치를 거부하는 것 같습니다. 알겠습니다. 이전 버전을 제거한 다음...

$ sudo dpkg -r ruby1.9.1
dpkg: dependency problems prevent removal of ruby1.9.1:
 libaugeas-ruby1.9.1 depends on ruby1.9.1.
 facter depends on ruby | ruby-interpreter; however:
  Package ruby is not installed.
  Package ruby1.8 which provides ruby is not installed.
  Package ruby-interpreter is not installed.
  Package ruby1.8 which provides ruby-interpreter is not installed.
  Package ruby1.9.1 which provides ruby-interpreter is to be removed.
 puppet-common depends on ruby | ruby-interpreter; however:
  Package ruby is not installed.
  Package ruby1.8 which provides ruby is not installed.
  Package ruby-interpreter is not installed.
  Package ruby1.8 which provides ruby-interpreter is not installed.
  Package ruby1.9.1 which provides ruby-interpreter is to be removed.
 ruby-json depends on ruby | ruby-interpreter; however:
  Package ruby is not installed.
  Package ruby1.8 which provides ruby is not installed.
  Package ruby-interpreter is not installed.
  Package ruby1.8 which provides ruby-interpreter is not installed.
  Package ruby1.9.1 which provides ruby-interpreter is to be removed.
 puppet depends on ruby | ruby-interpreter; however:
  Package ruby is not installed.
  Package ruby1.8 which provides ruby is not installed.
  Package ruby-interpreter is not installed.
  Package ruby1.8 which provides ruby-interpreter is not installed.
  Package ruby1.9.1 which provides ruby-interpreter is to be removed.
 hiera depends on ruby | ruby-interpreter; however:
  Package ruby is not installed.
  Package ruby1.8 which provides ruby is not installed.
  Package ruby-interpreter is not installed.
  Package ruby1.8 which provides ruby-interpreter is not installed.
  Package ruby1.9.1 which provides ruby-interpreter is to be removed.
dpkg: error processing ruby1.9.1 (--remove):
 dependency problems - not removing
Errors were encountered while processing:
 ruby1.9.1

와, 정말 엉망이네요. 하지만 완전히 해결 가능한 것 같습니다. 이 패키지는 모두 제공된 패키지에 만족할 것이라고 말하는 것 같습니다 ruby. 그리고 제가 설치하려는 패키지는 이를 제공합니다.

그러나 나는 캐치 22에 갇힌 것 같습니다. 이 이전 버전을 처음으로 제거할 때까지 원하는 패키지를 설치할 수 없고, 새 버전이 아직 설치되지 않았기 때문에 이전 버전을 제거할 수 없습니다.

이 문제를 어떻게 해결할 수 있나요?

저는 dpkg 1.16.1.2와 함께 Ubuntu 12.04 LTS를 실행하고 있습니다.

답변1

이것을 시도하십시오: sudo dpkg -r --force-depends ruby1.9.1 그런 다음 apt를 통해 무엇이든 설치하기 전에 ruby-2.1.2를 설치하십시오.

관련 정보