我的Docker镜像基于https://hub.docker.com/r/rocker/tidyverse/dockerfile
因此,我尝试将以下行添加到docker文件中,以尝试安装libparquet-dev
,这是使用Arrow from 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
如何在Docker上安装libparquet-dev
?
编辑将上述内容放入.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.
1条答案
按热度按时间xzabzqsa1#
首先,这是错误的Docker语法
1.把指令放在一个
.sh
文件中,然后运行这个文件。1.将安装缩短到下面,以便只安装
libparquet-dev
,而不安装所有其他的1.最终的Dockerfile应该是这样的,注意
{arrow}
的安装应该在libparquet-dev
的安装之后,因为我们需要从源代码安装{arrow},而从源代码安装时libparquet-dev
需要在那里。