Установка libboost-python-dev для python3, не устанавливая python2.7

Я пытаюсь установить привязку повышения для python3 на Гостеприимной Ubuntu, но это вытягивает в целом python2.7 дереве зависимостей. Я не хочу или нуждаюсь в python2.7 в своей системе (Изображение докера). Существует ли способ установить только python3 привязку?

7
задан 19 November 2018 в 13:20

4 ответа

Я могу предложить два решения, нужно создать изображение Python:3.6 с нуля. Здесь python3.x становится фактическим выбором.

кроме того, другая опция, которая работала на меня (в MAC OSX) была:

brew install boost-python --with-python3 --without-python

-3
ответ дан 23 November 2019 в 06:47

Я решил к компиляции и установке повышения сам (я также устанавливал/компилировал 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/*
5
ответ дан 23 November 2019 в 06:47

У Вас есть три опции:

1. Повышение сборки. Python самостоятельно

Это - опция, которую я рекомендую: это чисто, нет никакого риска испортить Вашу систему, и Вы имеете полный контроль на том, что Вы получаете. Moreover1

Повышение. Python является отдельно скомпилированным (в противоположность только для заголовка) библиотека

таким образом, можно просто создать это. Загрузите архив и следуйте инструкциям на Руководстве по началу работы. (Это - то, что сделал OP.)


2. Использовать dpkg постараться не устанавливать нежелательный dependecies

Если Вы не хотите создавать Повышение. Python самостоятельно, можно обойти apt (и его проверка зависимостей) с dpkg.

Скажем, Вы хотите установить названный пакет foo который зависит от bar и baz, но Вам на самом деле не нужно baz.

apt download foo bar
sudo dpkg --ignore-depends=baz --install foo.deb bar.deb

Заметьте это apt будет все еще жаловаться на неразрешенные зависимости (но эй, это - ее задание), таким образом, проблема не полностью решена: Вы просто скрыли его.

Эта опция более быстра, чем предыдущая, но я не рекомендовал бы это.


3. Использовать equivs одурачить apt

Это плохо мне знакомо. По-видимому, можно создать фиктивные пакеты для выполнения зависимостей. Таким образом Вы не должны устанавливать нежелательные/ненужные пакеты и apt не будет жаловаться на это.

Как я сказал, я никогда не использовал equivs прежде, но можно узнать больше об этом здесь.

2
ответ дан 23 November 2019 в 06:47

из-за моего исследования, это не возможно

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 дистрибутивы.

0
ответ дан 23 November 2019 в 06:47

Другие вопросы по тегам:

Похожие вопросы: