Я пытаюсь установить привязку повышения для python3 на Гостеприимной Ubuntu, но это вытягивает в целом python2.7 дереве зависимостей. Я не хочу или нуждаюсь в python2.7 в своей системе (Изображение докера). Существует ли способ установить только python3 привязку?
Я могу предложить два решения, нужно создать изображение Python:3.6 с нуля. Здесь python3.x становится фактическим выбором.
кроме того, другая опция, которая работала на меня (в MAC OSX) была:
brew install boost-python --with-python3 --without-python
Я решил к компиляции и установке повышения сам (я также устанавливал/компилировал Python 3.6 сам.). Я имею в своем 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/*
У Вас есть три опции:
Это - опция, которую я рекомендую: это чисто, нет никакого риска испортить Вашу систему, и Вы имеете полный контроль на том, что Вы получаете. Moreover1
Повышение. Python является отдельно скомпилированным (в противоположность только для заголовка) библиотека
таким образом, можно просто создать это. Загрузите архив и следуйте инструкциям на Руководстве по началу работы. (Это - то, что сделал OP.)
dpkg
постараться не устанавливать нежелательный dependeciesЕсли Вы не хотите создавать Повышение. Python самостоятельно, можно обойти apt
(и его проверка зависимостей) с dpkg
.
Скажем, Вы хотите установить названный пакет foo
который зависит от bar
и baz
, но Вам на самом деле не нужно baz
.
apt download foo bar
sudo dpkg --ignore-depends=baz --install foo.deb bar.deb
Заметьте это apt
будет все еще жаловаться на неразрешенные зависимости (но эй, это - ее задание), таким образом, проблема не полностью решена: Вы просто скрыли его.
Эта опция более быстра, чем предыдущая, но я не рекомендовал бы это.
equivs
одурачить apt
Это плохо мне знакомо. По-видимому, можно создать фиктивные пакеты для выполнения зависимостей. Таким образом Вы не должны устанавливать нежелательные/ненужные пакеты и apt
не будет жаловаться на это.
Как я сказал, я никогда не использовал equivs
прежде, но можно узнать больше об этом здесь.
из-за моего исследования, это не возможно
libboost-python-dev
пакет имеет libboost-python1.67-dev
зависимость.
https://packages.debian.org/sid/libboost-python-dev
и libboost-python1.67-dev
имеет python-dev
зависимость, которая использует python 2
https://packages.debian.org/sid/libboost-python1.67-dev
таким образом, Вы не можете сделать этого, я думаю, что Вы не можете сделать этого в Debian.
Я рекомендую проверить arch base
и rpm base
дистрибутивы.