无法纠正问题,您已经破坏了包裹

时间:2016-04-19 06:08:18

标签: ruby docker dockerfile

我正在尝试在我的docker容器上安装ruby,我正在关注this一个来构建容器。当我为新图像构建错误响应时

The following packages have unmet dependencies:
libgdbm-dev : Depends: libc6-dev but it is not going to be installed or
                    libc-dev
E: Unable to correct problems, you have held broken packages.
The command '/bin/sh -c set -ex     && buildDeps='      bison       libgdbm-dev         ruby    '   && apt-get update   && apt-get install -y --no-install-recommends $buildDeps    && rm -rf /var/lib/apt/lists/*  && curl -fSL -o ruby.tar.gz "http://cache.ruby-   lang.org/pub/ruby/$RUBY_MAJOR/ruby-$RUBY_VERSION.tar.gz"  && echo    "$RUBY_DOWNLOAD_SHA256 *ruby.tar.gz" | sha256sum -c -    && mkdir -p /usr/src/ruby   && tar -xzf ruby.tar.gz -C /usr/src/ruby --strip-components=1   && rm ruby.tar.gz   && cd /usr/src/ruby     && { echo '#define ENABLE_PATH_CHECK 0'; echo; cat file.c; } > file.c.new && mv file.c.new file.c   && autoconf     && ./configure --disable-install-doc    && make -j"$(nproc)"    && make install     && apt-get purge -y --auto-remove $buildDeps    && gem update --system $RUBYGEMS_VERSION    && rm -r /usr/src/ruby' returned a non-zero code: 100

我尝试将 apt-get 替换为 aptitude 来安装软件包,似乎无法正常工作并产生相同的响应。除此之外,我必须使用

  

FROM tracer0tong / android-emulator

在开始安装Android模拟器。还有其他方法可以与Android一起安装ruby吗?所有的帮助都很受欢迎。

2 个答案:

答案 0 :(得分:0)

看一下官方的docker容器here然后如果你有了github,那么依赖关系是:

...
RUN set -ex \
    && buildDeps=' \
        bison \
        libgdbm-dev \
        ruby \
    ' \
    && apt-get update \
    && apt-get install -y --no-install-recommends $buildDeps \
...

检查完整的Dockerfile

答案 1 :(得分:0)

是否要求在容器中安装最新版本的ruby?如果没有,您可以使用apt-get使用ubuntu提供的官方软件包。下面是一个示例Dockerfile,它在ubuntu容器上安装ruby 1.9.3。

ubuntu@xyz:~$ cat Dockerfile 
FROM ubuntu:latest
RUN apt-get update && apt-get -y install ruby-full
ubuntu@xyz:~$

构建映像后,可以从中启动容器并检查ruby状态。

ubuntu@xyz:~$ docker run -it 777b10ca8b7b /bin/bash
root@6d4a3f1d2031:/# ruby --version
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]
root@6d4a3f1d2031:/#

<强>更新: -

查看tracer0tong / android-emulator的Dockerfile,它使用的是ubuntu12.04。您可以使用它在容器上安装ruby: -

FROM tracer0tong/android-emulator
RUN apt-get -y install python-software-properties && apt-add-repository -y ppa:brightbox/ruby-ng && apt-get update && apt-get -y install ruby1.8 ruby1.9.3 ruby2.2