Não é possível instalar o fantoche por causa de dependências não atendidas

2

Estou tentando instalar o fantoche em uma nova máquina 14.04 do Ubuntu, mas recebo o seguinte erro

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.

Eu segui as instruções aqui e fiz o seguinte

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

Eu também tentei

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

Qualquer ajuda seria realmente apreciada.

Editar 1
Se eu tentar instalar o pacote 'puppet-common' que está faltando, recebo uma mensagem semelhante dizendo que estou perdendo 'facter'.

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

Se eu tentar instalar isso, recebo

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

Editar 2 É assim que minhas fontes se parecem

/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

Editar 3 Por favor, encontre a saída do apt-get update abaixo

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
    
por yakka 15.09.2014 / 13:15

2 respostas

0

A resposta acabou sendo muito mais simples do que eu esperava:

Em um terminal eu digitei

software-properties-gtk

e sob 'Ubuntu Software' eu marquei todas as fontes. Depois disso eu fiz uma atualização e tentei instalar novamente e funcionou!

Obrigado pelas sugestões úteis Peter Horvath.

    
por 13.10.2014 / 08:11
0

A resposta curta é: faça um

apt-get -f install

comando e ele irá baixar & instale o que é necessário.

A instalação do pacote em um sistema operacional baseado em dpkg possui 3 etapas:

  1. Alguns scripts antes da cópia dos arquivos são chamados
  2. Os arquivos são extraídos do pacote de instalação e copiados em seu sistema de arquivos raiz
  3. Alguns scripts após serão chamados novamente.

Um pacote Debian é praticamente uma coleção padronizada de:  1. Os scripts de instalação  2. Informações sobre suas dependências  3. Um arquivo tar.xz contendo todos os arquivos.

Os arquivos do pacote já foram copiados para o seu sistema de arquivos, mas a configuração deles não. Então seu programa provavelmente não funcionará, mas (1) e (2) já aconteceram!

Isso você pode ver se você der um comando dpkg -l (você provavelmente terá uma lista muito longa, talvez um dpkg -l|more tenha sido uma idéia melhor). Seu pacote já está instalado, mas está no estado "corrompido". Isso pode ser corrigido com o comando apt-get -f install . Este comando coleta as informações de dependência disponíveis - tanto nos seus pacotes, como nos seus repositórios .dpkg instalados - e encontra uma maneira de corrigir tudo .

Seu principal objetivo é encontrar, baixar e instalar os pacotes que faltam em sua ordem necessária. Mas se não for possível, ele irá até desinstalar as coisas. Ele vai te mostrar o que ele quer fazer. Se ele pode rodar (e na maioria dos casos: pode), finalmente você terá um sistema em funcionamento, onde tudo está bem.

Extensão # 1: Sua mensagem de erro mostra que este pacote puppet depende de outro pacote, chamado puppet-common . Este pacote provavelmente não está em seu repositório padrão, mas provavelmente próximo ao seu URL de pacote de fantoches. Esta é a causa, porque o apt é incapaz de encontrar e instalar isso em seu sistema. Mas a correção também é muito simples: baixe também o pacote puppet-common e instale-o também.

Extensão # 2: Eu li as instruções encontradas lá, e estou quase certo, que você de alguma forma perdeu o primeiro passo. No seu arquivo /etc/apt/sources.list você deve encontrar o url do repositório puppetlabs, está lá? Se não, faça o step1 (importando o repositório puppetlabs para o seu apt) novamente. Se algo não estiver certo, copie seu sources.list para sua pergunta e eu irei mais longe.

    
por 15.09.2014 / 13:17