I'm trying to install puppet on a fresh ubuntu 14.04 machine but I get the following error
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created or
been moved out of Incoming. The following information may help to
resolve the situation:
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.
I've followed the instructions here and did the following
$ wget https://apt.puppetlabs.com/puppetlabs-release-trusty.deb
$ sudo dpkg -i puppetlabs-release-trusty.deb
$ sudo apt-get update
I've also tried
apt-get install ruby
apt-get -f install
uncommenting the 'devel' sources in puppetlabs.list
Any help would really be appreciated.
Edit 1
If I try to install the missing 'puppet-common' package, I get a similar message that I'm missing 'facter'.
puppet-common : Depends: facter (>= 1.7.0) but it is not going to be installed
If I try installing that, I get
facter : Depends: virt-what but it is not installable
Edit 2
This is what my sources look like
/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
Edit 3 Please find the output of apt-get update below
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
Best Answer
The short answer is: do an
command and it will download & install what is needed.
Package installation in a dpkg-based OS has 3 steps:
A debian package is practically a standardized collection of: 1. The install scripts 2. Information about its dependencies 3. An actual tar.xz archive containing all of the files.
The files of the package are already copied to your filesystem, but their configuration don't. So your program probably won't work, but (1) and (2) is already happened!
This can you see if you give a
dpkg -l
command (you will get probably a very long list, maybe adpkg -l|more
were a better idea). Your package is already installed, but is in "corrupt" state. This can be fixed with theapt-get -f install
command. This command collects the available dependency informations - both in your packages, and in your installed .dpkg repositories - and finds a way to fix everything.Its primary goal is to find, download and install the missing packages in their needed order. But if it is not possible, it will even uninstall things. It will show you, what he want to do. If it can run (and in most cases: it can), finally you will got a working system, where everything is okay.
Extension #1: You error message shows, that this puppet package depends on another package, named puppet-common. This package is probably not in your default repository, but probably next to your puppet package url. This is the cause, why apt is unable to find and install that into your system. But the fix is also very simple for that: download the needed puppet-common package as well, and install that, too.
Extension #2: I've read the instructions found there, and I am nearly sure, that you somehow missed the first step. In your
/etc/apt/sources.list
file should you find the puppetlabs repository url, is it there? If not, do the step1 (importing the puppetlabs repo into your apt) again. If something isn't ok, copy yoursources.list
into your question, and I will go further.