我试图在新鲜的Ubuntu 14.04机器上安装木偶,但我得到以下错误
有些软件包无法安装。 这可能意味着您已经请求了一个不可能的情况,或者如果您使用的是不稳定的分发版本,那么一些所需的软件包尚未创build或已从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
如果我尝试安装缺失的“傀儡普通”套餐,我会得到一个类似的信息,即我错过了“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请在下面findapt-get update的输出
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
简短的回答是:做一个
apt-get -f install
命令,它会下载并安装需要的东西。
在基于dpkg的操作系统中安装软件包有三个步骤:
一个debian包实际上是一个标准化的集合:1.安装脚本2.关于它的依赖关系的信息3.一个包含所有文件的实际的tar.xz文件。
包的文件已经被复制到你的文件系统,但是它们的configuration却没有。 所以你的程序可能不会工作,但(1)和(2)已经发生了!
你可以看到你是否给了一个dpkg -l命令(你可能会得到一个很长的列表,也许dpkg -l|more是一个好主意)。 您的软件包已安装,但处于“损坏”状态。 这可以通过apt-get -f install命令修复。 这个命令收集可用的依赖信息 – 无论是在你的软件包,还是在你已经安装的.dpkg版本库中 – find一种解决所有问题的方法 。
其主要目标是按照需要的顺序查找,下载和安装缺失的软件包。 但是,如果这是不可能的,它甚至会卸载的东西。 它会告诉你,他想做什么。 如果可以运行(在大多数情况下可以),最后你会得到一个工作系统,一切都可以。
扩展#1:你的错误信息显示,这个puppet包依赖于另一个包,命名为puppet-common 。 这个包可能不在你的默认存储库中,但可能在你的木偶包url旁边。 这是原因,为什么apt无法find并安装到您的系统。 但是解决方法也很简单:下载所需的puppet-common软件包,并安装它。
扩展#2:我已经阅读了在那里find的指示,我几乎肯定,你不知何故错过了第一步。 在你的/etc/apt/sources.list文件中,你应该findpuppetlabs版本库url,是吗? 如果没有,再次执行step1(将puppetlabs回购import到你的apt)。 如果有什么不好的话,把你的sources.list复制到你的问题中,我会走得更远。
答案结果比我预想的要简单得多:
在我input的terminal中
软件 – 属性 – GTK
并在“Ubuntu软件”下勾选了所有资料。 之后,我做了更新,并尝试再次安装,它的工作!
感谢Peter Horvath的有用build议。