Назад | Перейти на главную страницу

Невозможно установить марионетку из-за неудовлетворенных зависимостей

Я пытаюсь установить марионетку на новую машину с Ubuntu 14.04, но получаю следующую ошибку

Некоторые пакеты не могут быть установлены. Это может означать, что вы запросили невозможную ситуацию или, если вы используете нестабильный дистрибутив, некоторые необходимые пакеты еще не созданы или перемещены из Incoming. Следующая информация может помочь разрешить ситуацию:

The following packages have unmet dependencies:
puppet : Depends: puppet-common (= 3.7.0-1puppetlabs1) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Я выполнил инструкции Вот и сделал следующее

$ wget https://apt.puppetlabs.com/puppetlabs-release-trusty.deb   
$ sudo dpkg -i puppetlabs-release-trusty.deb   
$ sudo apt-get update

Я также пробовал

apt-get install ruby  
apt-get -f install  
uncommenting the 'devel' sources in puppetlabs.list

Любая помощь будет оценена по достоинству.

Редактировать 1
Если я попытаюсь установить отсутствующий пакет «puppet-common», я получаю аналогичное сообщение о том, что мне не хватает «facter».

puppet-common : Depends: facter (>= 1.7.0) but it is not going to be installed

Если я попытаюсь установить это, я получу

facter : Depends: virt-what but it is not installable

Редактировать 2 Так выглядят мои исходники

/etc/apt/sources.list

deb http://ports.ubuntu.com/ubuntu-ports/ trusty main restricted
deb-src http://ports.ubuntu.com/ubuntu-ports/ trusty main restricted
deb http://ports.ubuntu.com/ubuntu-ports/ trusty-updates main restricted
deb-src http://ports.ubuntu.com/ubuntu-ports/ trusty-updates main restricted
deb http://ports.ubuntu.com/ubuntu-ports/ trusty-security main restricted
deb-src http://ports.ubuntu.com/ubuntu-ports/ trusty-security main restricted

/etc/apt/sources.list.d/puppetlabs.list

deb http://apt.puppetlabs.com trusty main
deb-src http://apt.puppetlabs.com trusty main
deb http://apt.puppetlabs.com trusty dependencies
deb-src http://apt.puppetlabs.com trusty dependencies
deb http://apt.puppetlabs.com trusty devel
deb-src http://apt.puppetlabs.com trusty devel

Редактировать 3 Пожалуйста, найдите результат обновления apt-get ниже

Ign http://apt.puppetlabs.com trusty InRelease
Hit http://apt.puppetlabs.com trusty Release.gpg    
Hit http://apt.puppetlabs.com trusty Release        
Ign http://ports.ubuntu.com trusty InRelease    
Hit http://apt.puppetlabs.com trusty/main Sources
Ign http://ports.ubuntu.com trusty-updates InRelease
Hit http://apt.puppetlabs.com trusty/dependencies Sources
Ign http://ports.ubuntu.com trusty-security InRelease
Hit http://apt.puppetlabs.com trusty/devel Sources
Hit http://apt.puppetlabs.com trusty/main armhf Packages
Hit http://ports.ubuntu.com trusty Release.gpg 
Hit http://apt.puppetlabs.com trusty/dependencies armhf Packages
Hit http://apt.puppetlabs.com trusty/devel armhf Packages
Hit http://ports.ubuntu.com trusty-updates Release.gpg
Hit http://ports.ubuntu.com trusty-security Release.gpg
Hit http://ports.ubuntu.com trusty Release     
Hit http://ports.ubuntu.com trusty-updates Release                    
Hit http://ports.ubuntu.com trusty-security Release                   
Hit http://ports.ubuntu.com trusty/main Sources                       
Hit http://ports.ubuntu.com trusty/restricted Sources
Hit http://ports.ubuntu.com trusty/main armhf Packages
Hit http://ports.ubuntu.com trusty/restricted armhf Packages
Hit http://ports.ubuntu.com trusty/main Translation-en
Hit http://ports.ubuntu.com trusty/restricted Translation-en
Hit http://ports.ubuntu.com trusty-updates/main Sources
Hit http://ports.ubuntu.com trusty-updates/restricted Sources
Hit http://ports.ubuntu.com trusty-updates/main armhf Packages
Ign http://apt.puppetlabs.com trusty/dependencies Translation-en_US
Ign http://apt.puppetlabs.com trusty/dependencies Translation-en
Hit http://ports.ubuntu.com trusty-updates/restricted armhf Packages
Ign http://apt.puppetlabs.com trusty/devel Translation-en_US
Hit http://ports.ubuntu.com trusty-updates/main Translation-en
Ign http://apt.puppetlabs.com trusty/devel Translation-en
Ign http://apt.puppetlabs.com trusty/main Translation-en_US
Hit http://ports.ubuntu.com trusty-updates/restricted Translation-en
Ign http://apt.puppetlabs.com trusty/main Translation-en
Hit http://ports.ubuntu.com trusty-security/main Sources
Hit http://ports.ubuntu.com trusty-security/restricted Sources
Hit http://ports.ubuntu.com trusty-security/main armhf Packages
Hit http://ports.ubuntu.com trusty-security/restricted armhf Packages
Hit http://ports.ubuntu.com trusty-security/main Translation-en
Hit http://ports.ubuntu.com trusty-security/restricted Translation-en
Ign http://ports.ubuntu.com trusty/main Translation-en_US
Ign http://ports.ubuntu.com trusty/restricted Translation-en_US

Ответ оказался намного проще, чем я ожидал:

В терминале я набрал

Свойства программного обеспечения-GTK

и в разделе «Программное обеспечение Ubuntu» я отметил все источники. После этого я сделал обновление и снова попытался установить, и это сработало!

Спасибо за полезные предложения Питер Хорват.

Короткий ответ: сделайте

apt-get -f install

команда, и она загрузит и установит то, что необходимо.

Установка пакета в ОС на базе dpkg состоит из 3 шагов:

  1. Некоторые скрипты перед копии файлов называются
  2. Файлы извлекаются из установочного пакета и копируются в корневую файловую систему.
  3. Некоторые скрипты после это будет вызвано снова.

Пакет debian представляет собой практически стандартизированный набор из: 1. сценариев установки 2. информации о его зависимостях 3. фактического архива tar.xz, содержащего все файлы.

Файлы пакета уже скопированы в вашу файловую систему, а их конфигурация - нет. Таким образом, ваша программа, вероятно, не будет работать, но (1) и (2) уже выполнены!

Это можно увидеть, если dpkg -l команда (вероятно, вы получите очень длинный список, возможно, dpkg -l|more были лучшей идеей). Ваш пакет является уже установлен, но находится в «поврежденном» состоянии. Это можно исправить с помощью apt-get -f install команда. Эта команда собирает доступную информацию о зависимостях - как в ваших пакетах, так и в установленных вами репозиториях .dpkg - и находит способ исправить все.

Его основная цель - найти, загрузить и установить недостающие пакеты в нужном порядке. Но если это невозможно, он даже удалит некоторые вещи. Он покажет вам, что он хочет делать. Если он может работать (а в большинстве случаев может), то, наконец, вы получите работающую систему, в которой все в порядке.

Расширение №1: Сообщение об ошибке показывает, что это кукольный пакет зависит от другого пакета с именем марионеточный. Этот пакет, вероятно, находится не в вашем репозитории по умолчанию, но, вероятно, рядом с URL-адресом вашего пакета марионеток. Это причина, по которой apt не может найти и установить это в вашу систему. Но исправить и это очень просто: также загрузите необходимый пакет puppet-common и установите его.

Расширение №2: Я прочитал найденные там инструкции и почти уверен, что вы как-то пропустили первый шаг. В твоем /etc/apt/sources.list если вы найдете URL-адрес репозитория puppetlabs, он там? Если нет, выполните шаг 1 (импорт репозитория puppetlabs в свой apt) еще раз. Если что-то не в порядке, скопируйте свой sources.list на ваш вопрос, и я пойду дальше.