【问题标题】:Cannot retrieve latest version of Debian package inside Docker container无法在 Docker 容器中检索最新版本的 Debian 软件包
【发布时间】:2019-03-20 16:57:34
【问题描述】:

在一个 docker 容器内(从 node:9 图像创建)我正在尝试使用 apt-get 安装stress-ng 包。但是,由于某种原因,每次我尝试安装它时都会检索到旧版本的包。为了安装软件包,我使用以下命令:

root@7e7a683bf288:/usr/src/app# apt-get update
root@7e7a683bf288:/usr/src/app# apt-get install stress-ng

我得到以下版本:

root@7e7a683bf288:/usr/src/app# stress-ng --version
stress-ng, version 0.01.32

但是,如果可能的话,我想获得最新版本,0.09.42-1 (https://packages.ubuntu.com/cosmic/stress-ng)。我在类似问题中尝试了一些解决方案,但无法使其正常工作。

附加信息:

root@7e7a683bf288:/usr/src/app# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 8 (jessie)"
NAME="Debian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=debian
HOME_URL="http://www.debian.org/"
SUPPORT_URL="http://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

root@7e7a683bf288:/usr/src/app# cat /etc/apt/sources.list
deb http://deb.debian.org/debian jessie main
deb http://security.debian.org/debian-security jessie/updates main
deb http://deb.debian.org/debian jessie-updates main

root@7e7a683bf288:/usr/src/app# add-apt-repository 
bash: add-apt-repository: command not found

【问题讨论】:

    标签: docker debian apt-get docker-container debian-jessie


    【解决方案1】:

    您必须将不稳定的 repo 添加到您的 sources.list。当我这样做时,我仍然无法安装它所说的压力:

    root@096865e3637f:/# apt-get install stress-ng
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:
    
    The following packages have unmet dependencies:
     libc6-dev : Breaks: binutils (< 2.26) but 2.25-5+deb8u1 is to be installed
    E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
    

    所以在安装之前我必须删除binutils

    也许这是你的一个选择。

    完整的 Dockerfile 如下所示:

    FROM node:9
    RUN echo "deb http://http.us.debian.org/debian unstable main non-free contrib" >> /etc/apt/sources.list && \
    echo "deb-src http://http.us.debian.org/debian unstable main non-free contrib" >> /etc/apt/sources.list && \
    apt-get remove binutils -y && \
    apt-get update && \
    apt-get install stress-ng -y
    CMD stress-ng --version
    

    stress-ng --version:

    stress-ng,版本 0.09.50 ??

    所以,它不是 0.09.42,而是最新的(不稳定的)版本 - 按照要求。

    【讨论】:

      猜你喜欢
      • 2021-02-08
      • 2016-04-19
      • 1970-01-01
      • 2020-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      相关资源
      最近更新 更多