2016-04-19 3 views
0

Ich versuche, Ruby auf meinem Docker-Container zu installieren, und ich bin this ein, um den Container zu bauen. Wenn ich für neues Bild bauen die FehlerreaktionNicht in der Lage, Probleme zu beheben, haben Sie defekte Pakete gehalten

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 

Ich habe versucht, die Pakete zu installieren, indem Sie ersetzen apt-get mit Eignung und scheint nicht zu arbeiten und etwas, was gleiche Antwort zu erzeugen. Zusätzlich dazu habe ich

VON tracer0tong/Android-Emulator

in dem Anfang verwenden, um Android-Emulator zu installieren. Gibt es eine andere Möglichkeit, Ruby zusammen mit dem Android zu installieren? Alle ein bisschen hilft werden geschätzt.

Antwort

0

Werfen Sie einen Blick auf dem offiziellen Docker Container here dann, wenn Sie o bekommen Github die Abhängigkeiten sind:

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

Prüfung der kompletten Dockerfile

+0

Ich habe das gleiche Dokument verfolgt, um hier in meinem lokalen zu implementieren. Der Teil, den Sie oben eingefügt haben, erhöht den Fehler hoffentlich. Ich habe die genaue Kopie der oben erwähnten Dockerfile ausprobiert. –

0

Gibt es eine Anforderung, die neueste Version von Ruby hat in Container? Wenn nicht, können Sie das offizielle Paket von ubuntu mit apt-get verwenden. Hier ist das Beispiel Dockerfile, das Ruby 1.9.3 auf einem Ubuntu-Container installiert.

Sobald Sie das Image erstellt haben, können Sie einen Container daraus starten und den Ruby-Status überprüfen.

[email protected]:~$ docker run -it 777b10ca8b7b /bin/bash 
[email protected]:/# ruby --version 
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux] 
[email protected]:/# 

Update: -

Mit Blick auf die Dockerfile von tracer0tong/Android-Emulator, verwendet es ubuntu12.04. Sie können dies verwenden, um Ruby auf dem Container zu installieren: -

+0

Aber ich muss die Version 2.0 verwenden oder es ist höher, das ist das Problem hier. –

+0

Kann ich die Version des Ruby-Pakets hier in diesem Befehl angeben "RUN apt-get update && apt-get -y install ruby-full" –

+0

Versuchen Sie das obige Beispiel mit 'apt-get install ruby2.2'. Sie können sich den aktualisierten Teil in der Antwort ansehen, er erwähnt die Installation von Version 2.2. Versuche es. – Rahul

Verwandte Themen