cowbuilder --create --distribuição lúcido falha

5

Estou tentando criar um ambiente de criação para o Lucid e chamar cowbuilder --create --distribution lucid falhará com as mensagens abaixo:

Get:1 http://us-east-1.ec2.archive.ubuntu.com lucid Release.gpg [189B]
Hit http://us-east-1.ec2.archive.ubuntu.com lucid Release
Hit http://us-east-1.ec2.archive.ubuntu.com lucid/main Packages
Fetched 189B in 0s (2376B/s)
Reading package lists...
I: Obtaining the cached apt archive contents
Reading package lists...
Building dependency tree...
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists...
Building dependency tree...
apt is already the newest version.
Package cowdancer is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package cowdancer has no installation candidate
I: unmounting dev/pts filesystem
I: unmounting proc filesystem
pbuilder create failed
  forking: rm -rf /opt/cowbuilder 
    
por Daenyth 10.08.2012 / 21:09

2 respostas

9

Tente adicionar o seguinte ao seu ~/.pbuilderrc :

COMPONENTS="main universe multiverse restricted"

ou, como sugerido pelo SunSparc, digite o comando da seguinte forma:

COMPONENTS="main universe multiverse restricted" cowbuilder --create --distribution lucid

cowbuilder está no componente do universo para lucidez. Eu não vejo a operação de criação tentando acessar o universo na saída que você incluiu na sua pergunta.

O arquivo ~/.pbuilderrc pode ser configurado para definir muitas opções pbuilder que são usadas para cowbuilder .

    
por John S Gruber 21.08.2012 / 07:44
8

A mensagem de erro crítico (abaixo) me confundiu um pouco até que eu passei exatamente pelo que o cowbuilder (e a ferramenta pbuilder subjacente) está tentando fazer.

Package cowdancer is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

É uma mensagem confusa porque aparece apenas ao executar cowbuilder --create . Em outras palavras, quando invoco esse comando, ele reclama da falta de um pacote que eu já instalei . Estranho.

Aqui está o elo perdido: cowbuilder - e por extensão, pbuilder - estão tentando criar um ambiente chroot limpo e mínimo, dentro do qual não há pacotes extras instalados. Mesmo que o cowbuilder já esteja instalado fora do chroot, ele parece querer ser instalado dentro do chroot também. Dentro e fora do chroot existem mundos totalmente diferentes. Fora do chroot (o ambiente regular), o seu arquivo /etc/apt/sources.list é o rei. Mas por dentro, é um conjunto diferente de regras. O ambiente pbuilder padrão inclui apenas os repositórios mais críticos e mínimos necessários para uma instalação de base / limpeza.

A resposta aceita fala sobre adicionar o argumento "COMPONENTES" e especificar alguns repositórios adicionais. Não funcionou para mim. Eu tentei adicionar o valor COMPONENTS ao arquivo /etc/pbuilderrc , meu arquivo .pbuilderrc local e também fazer isso na linha de comando como uma variável de ambiente. Sem sorte. Eu encontrei algumas referências que mencionaram como o argumento COMPONENTS não é suportado para cowbuilder .

Por fim, me deparei com post de blog que falamos sobre adicionar uma variável chamada OTHERMIRROR ao arquivo /etc/pbuilderrc . Para mim, eu simplesmente adicionei o seguinte:

OTHERMIRROR="deb http://archive.ubuntu.com/ubuntu saucy main restricted universe multiverse | deb http://archive.ubuntu.com/ubuntu saucy-backports main restricted universe multiverse | deb http://archive.ubuntu.com/ubuntu saucy-security main restricted universe multiverse | deb http://archive.ubuntu.com/ubuntu saucy-updates main restricted universe multiverse"

[Observe que você pode atualizar / alterar saucy para o que quiser (por exemplo, trusty , raring , precise ou mesmo wheezy e sid , desde que você tenha os espelhos debian apropriados, etc.).

Depois, simplesmente executei o seguinte na linha de comando e tudo foi criado com sucesso e consegui prosseguir:

sudo cowbuilder --create  # defaults to using current distribution

Obviamente, você pode alterar as distribuições usando o argumento de linha de comando "--distribution". Leva alguns minutos para estabelecer o ambiente inicial, mas uma vez criado, você pode atualizar facilmente os pacotes, etc. usando cowbuilder .

A página cowbuilder no site do Debian fala sobre a criação de um criador de vaqueiros específico do Ubuntu. Ele menciona que cowdancer foi movido para o repositório universe . Eles fazem referência ao seguinte comando para construir um ambiente de cowbuilder no Ubuntu:

DIST=trusty sudo cowbuilder --create --distribution trusty --components "main universe"

A --components="main universe" flag é a peça fundamental para garantir que o processo de criação tenha acesso a todos os repositórios necessários.

    
por Jonathan Oliver 07.11.2013 / 04:12