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