更新された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をインストールしなさい。

おすすめ記事