web-dev-qa-db-fra.com

cowbuilder --create --distribution lucid échoue

J'essaie de créer un environnement de construction pour Lucid et l'appel de cowbuilder --create --distribution lucid échoue avec les messages ci-dessous:

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 
5
Daenyth

Essayez d’ajouter ce qui suit à votre ~/.pbuilderrc:

COMPONENTS="main universe multiverse restricted"

ou, comme suggéré par SunSparc, entrez la commande comme suit:

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

cowbuilder est dans le composant univers pour lucide. Je ne vois pas l'opération create essayer d'accéder à l'univers dans le résultat que vous avez inclus dans votre question.

Le fichier ~/.pbuilderrc peut être configuré pour définir de nombreuses options pbuilder utilisées pour cowbuilder.

9
John S Gruber

Le message d'erreur critique (ci-dessous) m'a laissé un peu perplexe jusqu'à ce que je décrive exactement ce que cowbuilder (et l'outil sous-jacent pbuilder) tente de faire.

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

C'est un message déroutant car il n'apparaît que lors de l'exécution de cowbuilder --create. En d'autres termes, lorsque j'appelle cette commande, elle se plaint de l'absence d'un paquet que j'ai déjà installé . Bizarre.

Voici le lien manquant: cowbuilder-- et par extension, pbuilder-- tentent de créer un environnement propre, minimal et chroot, dans lequel aucun paquet supplémentaire n'est installé. Même si cowbuilder est déjà installé à l'extérieur du chroot, il semble vouloir être installé à l'intérieur le chroot aussi. À l'intérieur et à l'extérieur du chroot se trouvent des mondes totalement différents. En dehors du chroot (l'environnement habituel), votre fichier /etc/apt/sources.list est roi. Mais à l'intérieur, c'est un ensemble de règles différent. L'environnement par défaut pbuilder inclut uniquement les référentiels les plus critiques et les plus minimaux nécessaires à une installation de base/propre.

La réponse acceptée parle d'ajouter l'argument "COMPONENTS" et de spécifier des référentiels supplémentaires. Cela n'a pas fonctionné pour moi. J'ai essayé d'ajouter la valeur COMPONENTS au fichier /etc/pbuilderrc, mon fichier local .pbuilderrc, et de le faire également en tant que variable d'environnement sur la ligne de commande. Pas de chance. J'ai trouvé quelques références indiquant que l'argument COMPONENTS n'est pas pris en charge pour cowbuilder.

Enfin, je suis tombé sur n article de blog qui parlait de l’ajout d’une variable nommée OTHERMIRROR au fichier /etc/pbuilderrc. Pour moi, j'ai simplement ajouté ce qui suit:

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"

[Notez que vous pouvez mettre à jour/changer saucy pour ce que vous voulez (par exemple, trusty, raring, precise, ou même wheezy et sid à condition que vous ayez les miroirs Debian appropriés, etc.).

Ensuite, j’ai simplement exécuté ce qui suit à partir de la ligne de commande et tout a été créé avec succès et j’ai pu continuer:

Sudo cowbuilder --create  # defaults to using current distribution

Évidemment, vous pouvez modifier les distributions en utilisant l'argument de ligne de commande "--distribution". L'établissement de l'environnement initial prend quelques minutes, mais une fois celui-ci créé, vous pouvez facilement mettre à jour les packages, etc., à l'aide de cowbuilder.

La page page cowbuilder du site Web Debian parle de la création d'un cowbuilder spécifique à Ubuntu. Il est mentionné que cowdancer a été déplacé vers le référentiel universe. Ils font référence à l'exécution de la commande suivante pour créer un environnement cowbuilder sur Ubuntu:

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

Le drapeau --components="main universe" est l'élément essentiel pour garantir que le processus de création a accès à tous les référentiels nécessaires.

8
Jonathan Oliver