J'essaie d'installer des liaisons de renforcement pour python3 sur Ubuntu Xenial, mais il génère une arborescence de dépendances python2.7 complète. Je ne veux pas ou n'ai pas besoin de python2.7 sur mon système (image Docker). Existe-t-il un moyen d'installer uniquement des liaisons python3?
J'ai résolu de compiler et d'installer boost moi-même (j'ai également installé/compilé Python 3.6 moi-même.). J'ai maintenant dans mon Dockerfile:
# We have to compile it ourselves against the custom Python and cannot use Debian package.
# Includes a symlink workaround for: https://svn.boost.org/trac10/ticket/11120
RUN cd /usr/src && \
wget --no-verbose https://dl.bintray.com/boostorg/release/1.65.1/source/boost_1_65_1.tar.gz && \
tar xzf boost_1_65_1.tar.gz && \
cd boost_1_65_1 && \
ln -s /usr/local/include/python3.6m /usr/local/include/python3.6 && \
./bootstrap.sh --with-python=$(which python3) && \
./b2 install && \
rm /usr/local/include/python3.6 && \
ldconfig && \
cd / && rm -rf /usr/src/*
Vous avez trois options:
C'est l'option que je recommande: c'est propre, il n'y a aucun risque de gâcher votre système et vous avez le plein contrôle sur ce que vous obtenez. en outre1
Boost.Python est une bibliothèque compilée séparément (par opposition à une en-tête uniquement)
afin que vous puissiez simplement construire cela. Téléchargez les archives et suivez les instructions sur Guide de démarrage . (C'est ce que l'OP a fait .)
dpkg
pour éviter l’installation de dépendances indésirables.Si vous ne voulez pas construire Boost.Python vous-même, vous pouvez ignorer apt
(et ses dépendances en guettant) avec dpkg
.
Supposons que vous souhaitiez installer un package nommé foo
qui dépend de bar
et baz
, mais vous n'avez pas réellement besoin de baz
.
apt download foo bar
Sudo dpkg --ignore-depends=baz --install foo.deb bar.deb
Notez que apt
continuera à se plaindre des dépendances non résolues (mais bon, c'est son travail), donc le problème n'est pas entièrement résolu: vous venez de le balayer sous le tapis.
Cette option est plus rapide que la précédente, mais je ne le recommanderais pas.
equivs
pour tromper apt
C'est nouveau pour moi. Apparemment, vous pouvez créer des paquets factices pour répondre aux dépendances . De cette façon, vous n'avez pas à installer de paquetages indésirables/inutiles et apt
ne s'en plaindra pas.
Comme je l'ai dit, je n'ai jamais utilisé equivs
auparavant, mais vous pouvez en savoir plus à ce sujet ici .
en raison de mes recherches, ce n'est pas possible
Le paquet libboost-python-dev
a une dépendance libboost-python1.67-dev
.
https://packages.debian.org/sid/libboost-python-dev
et libboost-python1.67-dev
a une dépendance python-dev
qui utilise python 2
https://packages.debian.org/sid/libboost-python1.67-dev
donc vous ne pouvez pas faire cela, je pense que vous ne pouvez pas faire cela dans Debian.
Je recommande de vérifier les distributions Arch base
et rpm base
.