Antworten:
Ich habe mich entschlossen, Boost selbst zu kompilieren und zu installieren (ich habe auch Python 3.6 selbst installiert / kompiliert). Ich habe jetzt in meiner Docker-Datei:
# 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/*
Sie haben drei Möglichkeiten:
Dies ist die Option, die ich empfehle: Es ist sauber, es besteht kein Risiko, Ihr System durcheinander zu bringen, und Sie haben die volle Kontrolle darüber, was Sie erhalten. Darüber hinaus 1
Boost.Python ist eine separat kompilierte Bibliothek (im Gegensatz zur Nur-Header-Bibliothek)
Sie können das also einfach bauen. Laden Sie das Archiv herunter und befolgen Sie die Anweisungen im Handbuch Erste Schritte . (Dies ist, was OP getan hat .)
dpkg
diese Option, um unerwünschte Abhängigkeiten zu vermeidenWenn Sie Boost.Python nicht selbst erstellen möchten, können Sie apt
(und seine Abhängigkeiten) mit umgehen dpkg
.
Angenommen, Sie möchten ein Paket mit dem Namen installieren, foo
das von bar
und abhängt baz
, das Sie jedoch nicht benötigen baz
.
apt download foo bar
sudo dpkg --ignore-depends=baz --install foo.deb bar.deb
Beachten Sie, dass sich apt
immer noch über ungelöste Abhängigkeiten beschweren wird (aber hey, das ist seine Aufgabe), sodass das Problem nicht vollständig gelöst ist: Sie haben es einfach unter den Teppich gekehrt.
Diese Option ist schneller als die vorherige, aber ich würde sie nicht empfehlen.
equivs
zu täuschenapt
Das ist neu für mich. Anscheinend können Sie Dummy-Pakete erstellen, um die Abhängigkeiten zu erfüllen . Auf diese Weise müssen Sie keine unerwünschten / unnötigen Pakete installieren und apt
werden sich nicht darüber beschweren.
Wie gesagt, ich habe ich nie equivs
zuvor, aber Sie können mehr darüber erfahren Sie hier .
Aufgrund meiner Forschung ist es nicht möglich
libboost-python-dev
Paket hat libboost-python1.67-dev
Abhängigkeit.
https://packages.debian.org/sid/libboost-python-dev
und libboost-python1.67-dev
hat eine python-dev
Abhängigkeit, die Python 2 verwendet
https://packages.debian.org/sid/libboost-python1.67-dev
Sie können dies also nicht tun. Ich denke, Sie können dies nicht in Debian tun.
Ich empfehle die Überprüfung arch base
und rpm base
Distributionen.
Ich kann zwei Lösungen anbieten, eine besteht darin, ein Python zu erstellen: 3.6-Image von Grund auf neu. Hier wird python3.x de facto zur Wahl.
Eine weitere Option, die für mich (unter Mac OSX) funktioniert hat, war:
brew install boost-python --with-python3 --without-python