2017-02-19 3 views
0

Pour un projet sur lequel je travaille, j'utilise Debian (8) comme système d'exploitation de base. La cible pour laquelle je travaille est une plateforme ARM. Donc, pour faciliter la compilation croisée, j'utilise la fonctionnalité multiarch que fournit Debian.Debian multiarch: impossible d'installer python pour armhf et amd64

Malheureusement, je rencontre un problème lorsque j'essaie d'installer python pour mon système hôte et le système pour lequel je compile. Il semble qu'ils ne peuvent pas être installés côte à côte.

Lorsque je tente d'installer python pour les architectures utilisant apt-get install (apt-get install python python:armhf), je reçois cette erreur:

Reading package lists... Done 
Building dependency tree... Done 
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: 
python : Depends: python2.7 (>= 2.7.9-1~) but it is not going to be installed 
     PreDepends: python-minimal (= 2.7.9-1) but it is not going to be installed 
     Conflicts: python:armhf but 2.7.9-1 is to be installed 
python:armhf : Conflicts: python but 2.7.9-1 is to be installed 

Si je d'abord installer python pour mon système hôte et essaie ensuite d'installer python armhf, apt veut à nouveau supprimer la première installation python.

Quelqu'un a déjà vu ça? Aucune idée sur la façon de résoudre ça?

Répondre

1

multiarchitecture comme de Debian Jessie ne permet pas l'installation parallèle des exécutables:

  • Le python paquet contient des fichiers exécutables qui sont installés dans/usr/bin (par exemple pdb, pydoc, ...)
  • Le paquet python: armhf contient aussi ces exécutables et ils devraient aussi être installés dans/usr/bin.
  • Par conséquent python et python: armhf ne peut pas être installé en même temps puisque les exécutables d'un paquet écraseraient l'exécutable de l'autre paquet.

La bonne chose est que vous n'avez pas besoin de deux interpréteurs python. Dans mon cas, je voudrais simplement installer l'interpréteur python nécessaire pour l'architecture de l'hôte (par exemple python: amd64). Veuillez noter que l'installation de dépendances de construction avec une commande telle que sudo apt-get build-dep -a armhf PACKAGE-NAME peut parfois échouer et vous devez deviner quels paquets doivent être installés manuellement.