代码之家  ›  专栏  ›  技术社区  ›  JustAC0der

如何在Ubuntu 16.04上安装带有python 3.6的xapian?

  •  3
  • JustAC0der  · 技术社区  · 7 年前

    我在Docker的Ubuntu 16.04上安装了python 3.6,使用 ppa:jonathonf/python-3.6 存储库。现在我想安装Xapian,以便与Python一起使用。我没有找到任何现成的包,所以我正试图从源代码构建它。我设定 PYTHON3 PYTHON3_LIB 参数指向python 3.6。在生成过程中,我得到以下错误:

    导入错误:libxapian.so.30:无法打开共享对象文件:没有此类文件或目录

    我尝试了Xapian版本1.3.7和1.4.5,但没有运气。

    如何安装Xapian?

    这是一个复制我的错误的dockerfile:

    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"
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   James Aylett    7 年前

    问题是Xapian图书馆( libxapian.so.30 )正在安装到 /usr/local/lib 默认情况下,但是Ubuntu还不知道它已经放在那里了。您可以通过添加以下内容来判断:

    RUN ldconfig

    安装核心后(因此在更换之前 WORKDIR 构建绑定)。

    有一些有用的信息 ldconfig 以及Ubuntu上的库搜索路径 this Unix Stackexchange question .

    推荐文章