5

我一直在尝试在 Alpine Docker 映像上安装 gdbserver 包(https://hub.docker.com/_/alpine/

apk 添加 gdbserver

给了我这个:

错误:不可满足的约束:gdbserver(缺失):要求:world[gdbserver]

同时,

apk 添加 gdb

工作得很好。那么,在 Alpine 上安装 gdbserver 包的正确方法是什么?

附言

apk update已在其他所有操作之前执行。

4

2 回答 2

10

目前,gdbserver 似乎不是 alpine 存储库中可用的包,并且 gdb 包不包含 gdbserver。

但是您可以从包含 gdbserver 的源安装 gdb。

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

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

之后,您应该能够从 shell 运行 gdbserver。

我一直在 Docker 中使用此过程,使用以下 dockerfile,其中还包括 ssh 服务器安装:

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
于 2016-06-17T16:58:10.987 回答
2

对于 Alpine 3.8 和更新版本 ( gdb>= 8.0.1-r6),gdbserver可作为gdb软件包的一部分轻松获得:

https://pkgs.alpinelinux.org/contents?file=gdbserver&path=&name=gdb&branch=v3.8&repo=main&arch=x86_64

于 2019-02-01T19:45:47.177 回答