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