如何在 Ubuntu 16.04 上使用 Python 3.6 安装 xapian?
How to install xapian with Python 3.6 on Ubuntu 16.04?
我使用 ppa:jonathonf/python-3.6
存储库在 Ubuntu 16.04 和 Docker 上安装了 Python 3.6。现在我想安装 xapian 以便我可以将它与 Python 一起使用。我没有找到任何现成的包,所以我试图从源代码构建它。我将 PYTHON3
和 PYTHON3_LIB
参数设置为指向 Python 3.6。在构建过程中,我收到以下错误:
ImportError: libxapian.so.30: cannot open shared object file: No such file or directory
我尝试了 xapian 版本 1.3.7 和 1.4.5,但没有成功。
如何安装 xapian?
这里有一个 Docker 文件来重现我的错误:
FROM ubuntu:16.04
RUN apt-get update \
&& apt-get install -y software-properties-common python-software-properties
RUN add-apt-repository ppa:jonathonf/python-3.6
RUN apt-get update \
&& apt-get install -y python3-pip docker.io python3.6 python3.6-dev software-properties-common \
python-software-properties build-essential wget unzip cmake python3-sphinx \
&& cd /usr/local/bin \
&& ln -s /usr/bin/python3.6 python
RUN python -m pip install --upgrade pip
# install xapian 1.4.5
RUN apt-get update && apt-get install -y curl uuid-dev zlib1g-dev
WORKDIR /root
RUN curl --silent --show-error --fail --next -O https://oligarchy.co.uk/xapian/1.4.5/xapian-core-1.4.5.tar.xz
RUN curl --silent --show-error --fail --next -O https://oligarchy.co.uk/xapian/1.4.5/xapian-bindings-1.4.5.tar.xz
RUN tar xvf xapian-core-1.4.5.tar.xz
RUN tar xvf xapian-bindings-1.4.5.tar.xz
WORKDIR /root/xapian-core-1.4.5
RUN ./configure && make && make install
WORKDIR /root/xapian-bindings-1.4.5
RUN ./configure PYTHON3=/usr/bin/python3.6 PYTHON3_LIB=/usr/lib/python3.6 --with-python3 && make && make install
RUN python -c "import xapian"
问题是 Xapian 库 (libxapian.so.30
) 默认安装到 /usr/local/lib
,但 Ubuntu 不知道它已经安装在那里。你可以通过添加来告诉它:
RUN ldconfig
安装核心之后(因此在您更改 WORKDIR
以构建绑定之前)。
this Unix Stackexchange question 的答案中有一些关于 ldconfig
和 Ubuntu 上的库搜索路径的有用信息。
我使用 ppa:jonathonf/python-3.6
存储库在 Ubuntu 16.04 和 Docker 上安装了 Python 3.6。现在我想安装 xapian 以便我可以将它与 Python 一起使用。我没有找到任何现成的包,所以我试图从源代码构建它。我将 PYTHON3
和 PYTHON3_LIB
参数设置为指向 Python 3.6。在构建过程中,我收到以下错误:
ImportError: libxapian.so.30: cannot open shared object file: No such file or directory
我尝试了 xapian 版本 1.3.7 和 1.4.5,但没有成功。
如何安装 xapian?
这里有一个 Docker 文件来重现我的错误:
FROM ubuntu:16.04
RUN apt-get update \
&& apt-get install -y software-properties-common python-software-properties
RUN add-apt-repository ppa:jonathonf/python-3.6
RUN apt-get update \
&& apt-get install -y python3-pip docker.io python3.6 python3.6-dev software-properties-common \
python-software-properties build-essential wget unzip cmake python3-sphinx \
&& cd /usr/local/bin \
&& ln -s /usr/bin/python3.6 python
RUN python -m pip install --upgrade pip
# install xapian 1.4.5
RUN apt-get update && apt-get install -y curl uuid-dev zlib1g-dev
WORKDIR /root
RUN curl --silent --show-error --fail --next -O https://oligarchy.co.uk/xapian/1.4.5/xapian-core-1.4.5.tar.xz
RUN curl --silent --show-error --fail --next -O https://oligarchy.co.uk/xapian/1.4.5/xapian-bindings-1.4.5.tar.xz
RUN tar xvf xapian-core-1.4.5.tar.xz
RUN tar xvf xapian-bindings-1.4.5.tar.xz
WORKDIR /root/xapian-core-1.4.5
RUN ./configure && make && make install
WORKDIR /root/xapian-bindings-1.4.5
RUN ./configure PYTHON3=/usr/bin/python3.6 PYTHON3_LIB=/usr/lib/python3.6 --with-python3 && make && make install
RUN python -c "import xapian"
问题是 Xapian 库 (libxapian.so.30
) 默认安装到 /usr/local/lib
,但 Ubuntu 不知道它已经安装在那里。你可以通过添加来告诉它:
RUN ldconfig
安装核心之后(因此在您更改 WORKDIR
以构建绑定之前)。
this Unix Stackexchange question 的答案中有一些关于 ldconfig
和 Ubuntu 上的库搜索路径的有用信息。