如何在Alpine Docker镜像上安装gdbserver软件包?

5
我一直在尝试在Alpine Docker镜像(https://hub.docker.com/_/alpine/)上安装gdbserver包。
执行 apk add gdbserver 后出现以下错误信息: ERROR: unsatisfiable constraints: gdbserver (missing): required by: world[gdbserver] 与此同时,执行 apk add gdb 正常运行。 那么,在Alpine上安装gdbserver包的正确方法是什么?
P.S. 在执行其他操作之前已经执行了apk update
2个回答

10

目前似乎在alpine仓库中没有提供gdbserver软件包,而gdb软件包也不包含gdbserver。

但是您可以从源代码安装gdb,其中包含gdbserver。

首先,您需要安装编译所需的软件包:

apk add --no-cache make
apk add --no-cache linux-headers
apk add --no-cache texinfo
apk add --no-cache gcc
apk add --no-cache g++

然后您可以安装它,下载源代码并编译:

wget http://ftp.gnu.org/gnu/gdb/gdb-7.11.tar.xz
tar -xvf gdb-7.11.tar.xz
cd gdb-7.11
./configure --prefix=/usr
make
make -C gdb install

之后你应该可以从终端运行gdbserver。

我一直在Docker中使用这个步骤,下面是包含SSH服务器安装的dockerfile:

FROM alpine
RUN apk update
# we need make and linux-headers to compile gdb
RUN apk add --no-cache make
RUN apk add --no-cache linux-headers
RUN apk add --no-cache texinfo
RUN apk add --no-cache gcc
RUN apk add --no-cache g++
RUN apk add --no-cache gfortran
# install gdb
# RUN apk add --no-cache gdb
RUN mkdir gdb-build ;\
    cd gdb-build;\
    wget http://ftp.gnu.org/gnu/gdb/gdb-7.11.tar.xz;\
    tar -xvf gdb-7.11.tar.xz;\
    cd gdb-7.11;\
    ./configure --prefix=/usr;\
    make;\
    make -C gdb install;\
    cd ..;\
    rm -rf gdb-build/;
# install ssh server support and keys
RUN apk add --no-cache openssh
RUN ssh-keygen -A

非常感谢您的回答,rulonder!一段时间以前,我尝试按照您的建议从源代码构建grab,但由于某些不明原因(至少对我来说是这样),失败了。您知道 - 我主要是一个Windows开发人员,一直在使用Docker镜像在MS Visual Studio 2015内部构建和调试Linux应用程序。在Debian上它运行得很好,但那个镜像太大了,所以我尝试了Alpine,并遇到了gdbserver的问题。再次感谢! - user3346684

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接