在 Docker 容器中安装“apt-get install”的软件包在哪里



成功安装后,我正在尝试在Docker容器中找到libgsl.so库。

当我用docker run -it container/image bash运行交互式 shell 并尝试找到它时find / -iname "*libgsl*"我什么也得不到(该工具试图在/usr/lib/下找到它)。对于另一个成功安装的库(例如 libjpeg62),似乎也是如此。

那么,一般来说,这些库安装在哪里

我在MacOS中用VBox运行Docker。这是Dockerfile文件:

FROM phusion/baseimage
# Install dependencies
RUN apt-get update && apt-get install -y 
  libgsl0ldbl 
  curl 
  gsl-bin
# Installs preseq from sources into /opt/
ENV PRESEQ_RELEASE=2.0
ENV PRESEQ_URL=http://smithlabresearch.org/downloads/preseq_linux_v${PRESEQ_RELEASE}.tar.bz2
ENV DEST_DIR=/opt/
# Download preseq; untar & decompress; remove tr.bz2 file; compile & install preseq; remove unnecessary files
RUN curl -SLo ${DEST_DIR}/preseq_v${PRESEQ_RELEASE}.tar.bz2 ${PRESEQ_URL} && 
  tar -xf ${DEST_DIR}/preseq_v${PRESEQ_RELEASE}.tar.bz2 -C ${DEST_DIR} && 
  rm -f ${DEST_DIR}/preseq_v${PRESEQ_RELEASE}.tar.bz2
ENV PATH=${DEST_DIR}/preseq_v${PRESEQ_RELEASE}:$PATH
CMD ["preseq"]

更新

我运行了错误的容器(未使用正确的标签),我没有安装库。更改标签后,我发现库没有问题。软件包安装在默认位置(在本例中为/usr/lib/)。

因为phusion/baseimage使用Ubuntu

询问包管理包包含哪些文件:

dpkg -L libgsl0ldbl

这显示了简单地复制到这些位置的文件。这些文件被标记为由包管理管理

最新更新