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

如何在Docker上安装libparquet dev?

  •  0
  • xiaodai  · 技术社区  · 6 年前

    https://hub.docker.com/r/rocker/tidyverse/dockerfile

    所以我试着在docker文件中添加以下行来尝试安装 libparquet-dev 需要使用R的箭头。

    RUN apt-get update -qq && apt-get -y --no-install-recommends install \ libparquet-dev E: Unable to locate package libparquet-dev ,所以我试着跟着 this guide 并添加了以下行

    RUN apt update && \
            apt install -y -V apt-transport-https gnupg lsb-release wget && \
            wget -O /usr/share/keyrings/apache-arrow-keyring.gpg https://dl.bintray.com/apache/arrow/$(lsb_release --id --short | tr 'A-Z' 'a-z')/apache-arrow-keyring.gpg && \
            sudo tee /etc/apt/sources.list.d/apache-arrow.list <<APT_LINE \
            deb [arch=amd64 signed-by=/usr/share/keyrings/apache-arrow-keyring.gpg] https://dl.bintray.com/apache/arrow/$(lsb_release --id --short | tr 'A-Z' 'a-z')/ $(lsb_release --codename --short) main \
            deb-src [signed-by=/usr/share/keyrings/apache-arrow-keyring.gpg] https://dl.bintray.com/apache/arrow/$(lsb_release --id --short | tr 'A-Z' 'a-z')/ $(lsb_release --codename --short) main \
            APT_LINE  && \
            apt update && \
            apt install -y -V libarrow-dev && \
            apt install -y -V libarrow-glib-dev && \ 
            apt install -y -V libarrow-flight-dev && \
            apt install -y -V libplasma-dev && \
            apt install -y -V libplasma-glib-dev && \
            apt install -y -V libgandiva-dev && \
            apt install -y -V libgandiva-glib-dev && \
            apt install -y -V libparquet-dev  && \
            apt install -y -V libparquet-glib-dev
    

    2019-11-13 03:56:56 (116 KB/s) - ‘/usr/share/keyrings/apache-arrow-keyring.gpg’ saved [44156/44156]
    
    tee: 'signed-by=/usr/share/keyrings/apache-arrow-keyring.gpg]': No such file or directory
    tee: 'https://dl.bintray.com/apache/arrow/debian/': No such file or directory
    tee: '[signed-by=/usr/share/keyrings/apache-arrow-keyring.gpg]': No such file or directory
    tee: 'https://dl.bintray.com/apache/arrow/debian/': No such file or directory
    

    那么如何安装呢 码头上?

    编辑 把上面的代码放到一个.sh文件中,然后运行它,而不是把它们放在run命令中,这似乎有帮助,但是我现在遇到了另一个错误

    The following packages have unmet dependencies:
     libplasma-dev : Depends: libarrow-cuda-dev (= 0.15.1-1) but it is not going to be installed
                     Depends: libplasma15 (= 0.15.1-1) but it is not going to be installed
    E: Unable to correct problems, you have held broken packages.
    
    0 回复  |  直到 6 年前
        1
  •  0
  •   xiaodai    6 年前

    1. 把指令放在 .sh 文件,然后运行该文件。

    2. 将安装缩短到下面,以便只安装 libparquet-dev

    apt update
    apt install -y -V apt-transport-https curl gnupg lsb-release
    tee /etc/apt/sources.list.d/backports.list <<APT_LINE
    deb http://deb.debian.org/debian $(lsb_release --codename --short)-backports main
    APT_LINE
    curl --output /usr/share/keyrings/apache-arrow-keyring.gpg https://dl.bintray.com/apache/arrow/$(lsb_release --id --short | tr 'A-Z' 'a-z')/apache-arrow-keyring.gpg
    tee /etc/apt/sources.list.d/apache-arrow.list <<APT_LINE
    deb [arch=amd64 signed-by=/usr/share/keyrings/apache-arrow-keyring.gpg] https://dl.bintray.com/apache/arrow/$(lsb_release --id --short | tr 'A-Z' 'a-z')/ $(lsb_release --codename --short) main
    deb-src [signed-by=/usr/share/keyrings/apache-arrow-keyring.gpg] https://dl.bintray.com/apache/arrow/$(lsb_release --id --short | tr 'A-Z' 'a-z')/ $(lsb_release --codename --short) main
    APT_LINE
    curl https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
    tee /etc/apt/sources.list.d/llvm.list <<APT_LINE
    deb http://apt.llvm.org/$(lsb_release --codename --short)/ llvm-toolchain-$(lsb_release --codename --short)-7 main
    deb-src http://apt.llvm.org/$(lsb_release --codename --short)/ llvm-toolchain-$(lsb_release --codename --short)-7 main
    APT_LINE
    apt update
    apt install -y -V libparquet-dev
    
    1. 最终的Dockerfile应该看起来像,并注意到 {arrow} 应在安装后 libparquet开发 因为我们需要从源代码安装{arrow},并且 libparquet开发 从源代码安装时需要在那里。
    FROM rocker/tidyverse
    
    COPY create-parquet.sh create-parquet.sh
    
    RUN chmod +x ./create-parquet.sh
    
    RUN ./create-parquet.sh
    
    RUN install2.r --error \
        --deps TRUE \
        disk.frame \
        arrow
    
    RUN R -e "arrow::install_arrow()"
    
    CMD ["R"]
    
    推荐文章