成功安装后,我正在尝试在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
这显示了简单地复制到这些位置的文件。这些文件被标记为由包管理管理