Не удается установить обновленный deb-пакет Ruby: ruby1.9.1 конфликтует с ruby

У меня есть пакет .deb (ruby-2.1.2_amd64.deb), содержащий определенную версию Ruby, которую я пытаюсь установить с помощью 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

Исходя из этого сообщения, похоже, что dpkg отказывается устанавливать пакет, потому что в системе уже установлена более старая версия Ruby. Справедливо, тогда я просто удалю старую версию...

$ 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. Я не могу установить нужный мне пакет, пока не удалю старую версию, а удалить старую версию я не могу, потому что новая версия еще не установлена.

Как мне обойти эту проблему?

Я использую Ubuntu 12.04 LTS, с dpkg 1.16.1.2.

0
11.02.2016, 22:54
1 ответ

Попробуйте следующее: sudo dpkg -r --force-depends ruby1.9.1. Затем обязательно установите ruby-2.1.2 перед установкой чего-либо через apt.

0
28.01.2020, 04:53

Теги

Похожие вопросы