Ubuntu Xenialにpython3のブーストバインディングをインストールしようとしていますが、python2.7依存関係ツリー全体を取り込みます。私のシステム(Dockerイメージ)にpython2.7は必要ないか、必要ありません。 python3バインディングのみをインストールする方法はありますか?
Boostを自分でコンパイルおよびインストールすることを解決しました(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/*
次の3つのオプションがあります。
これは私が推奨するオプションです。クリーンで、システムを台無しにするリスクがなく、取得するものを完全に制御できます。さらに1
Boost.Pythonは個別にコンパイルされた(ヘッダーのみではなく)ライブラリです
それを構築するだけです。アーカイブをダウンロードし、 スタートガイド の指示に従ってください。 (これが OPがした です。)
dpkg
を使用して、不要な依存関係のインストールを回避しますBoost.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
を使用したことはありませんが、詳細は here で確認できます。
私の研究のため、それは不可能です
libboost-python-dev
パッケージにはlibboost-python1.67-dev
依存関係があります。
https://packages.debian.org/sid/libboost-python-dev
libboost-python1.67-dev
にはpython 2を使用するpython-dev
依存関係があります
https://packages.debian.org/sid/libboost-python1.67-dev
あなたはこれを行うことができないので、Debianでこれを行うことはできないと思います。
Arch base
およびrpm base
ディストリビューションを確認することをお勧めします。