docker에서 libc6-dbg : i386 패키지를 찾을 수 없습니다


13

Valgrind에 필요하기 때문에 우분투 기반 도커 컨테이너 안에 libc6-dbg : i386을 설치하려고하는데 할 수 없습니다.

다음과 같은 Dockerfile이 주어집니다.

FROM ubuntu:14.04

MAINTAINER Me <xyz@example.com>

RUN apt-get update
RUN apt-get install libc6-dbg
RUN apt-get install libc6-dbg:i386

Ubuntu 14.04 데스크톱 64 비트 호스트에서 실행 :

sudo docker build .

나는 얻다:

Step 0 : FROM ubuntu:14.04
 ---> 5506de2b643b
Step 1 : MAINTAINER Me <xyz@example.com>
 ---> Using cache
 ---> b1792911b80d
Step 2 : RUN apt-get update
 ---> Using cache
 ---> 5e3928c88aff
Step 3 : RUN apt-get install libc6-dbg
 ---> Running in ebd51fcb278b
Reading package lists...
Building dependency tree...
Reading state information...
The following NEW packages will be installed:
  libc6-dbg
0 upgraded, 1 newly installed, 0 to remove and 12 not upgraded.
Need to get 3452 kB of archives.
After this operation, 22.8 MB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu/ trusty-updates/main libc6-dbg amd64 2.19-0ubuntu6.3 [3452 kB]
debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (This frontend requires a controlling tty.)
debconf: falling back to frontend: Teletype
dpkg-preconfigure: unable to re-open stdin: 
Fetched 3452 kB in 0s (5325 kB/s)
Selecting previously unselected package libc6-dbg:amd64.
(Reading database ... 11527 files and directories currently installed.)
Preparing to unpack .../libc6-dbg_2.19-0ubuntu6.3_amd64.deb ...
Unpacking libc6-dbg:amd64 (2.19-0ubuntu6.3) ...
Setting up libc6-dbg:amd64 (2.19-0ubuntu6.3) ...
 ---> fe4bf0f008db
Removing intermediate container ebd51fcb278b
Step 4 : RUN apt-get install libc6-dbg:i386
 ---> Running in 460cab3c4631
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package libc6-dbg
2014/11/20 15:23:06 The command [/bin/sh -c apt-get install libc6-dbg:i386] returned a non-zero code: 100

호스트에서 libc6-dbg : i386을 설치할 수 있는데 왜 Docker 컨테이너 안에 설치할 수 없습니까?

답변:


28

나는 이것에 스스로 대답 할 것이다.

이를 파악하는 데 필요한 정보는 https://wiki.debian.org/Multiarch/HOWTO에 있습니다.

공식 도커 우분투 이미지와 phusion / baseimage에도 amd64를 지원하도록 구성되어 있습니다. 이것이 당신이 묻는다면 당신에게 알려주는 것입니다 :

# dpkg --print-architecture
amd64
# dpkg --print-foreign-architectures
<no output>

이 문제를 해결하는 방법은 apt-get 업데이트 전에 다른 아키텍처를 추가하는 것입니다 .

# dpkg --add-architecture i386
# apt-get update
<lots of lines>
# apt-get install libc6-dbg:i386
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  gcc-4.9-base:i386 libc6:i386 libgcc1:i386
Suggested packages:
  glibc-doc:i386 locales:i386
The following NEW packages will be installed:
  gcc-4.9-base:i386 libc6:i386 libc6-dbg:i386 libgcc1:i386
0 upgraded, 4 newly installed, 0 to remove and 21 not upgraded.
Need to get 7039 kB of archives.
After this operation, 26.4 MB of additional disk space will be used.
Do you want to continue? [Y/n] 

완성을 위해 최종 Dockerfile은 다음과 같습니다.

FROM ubuntu:14.04

MAINTAINER Me <xyz@example.com>

RUN dpkg --add-architecture i386
RUN apt-get update
RUN apt-get install libc6-dbg
RUN apt-get install libc6-dbg:i386

0

apt-get updateDockerfile에 다음 줄을 추가하십시오 .

RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.