【问题标题】:How to install gdbserver package on Alpine Docker image?如何在 Alpine Docker 映像上安装 gdbserver 包?
【发布时间】:2016-09-08 07:00:57
【问题描述】:

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

apk 添加 gdbserver

给了我这个:

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

同时,

apk 添加 gdb

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

附言

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

【问题讨论】:

    标签: docker gdbserver alpine


    【解决方案1】:

    目前似乎 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
    

    【讨论】:

    • 非常感谢您的回答,rulonder!前段时间,我尝试按照您的建议从源头构建抓取,但由于某些晦涩难懂的原因(至少对我而言:)失败了。你看 - 我主要是一名 Windows 开发人员,我一直在使用 Docker 映像在 MS Visual Studio 2015 中构建和调试 Linux 应用程序。在 Debian 上它工作得很好,但是那个映像太胖了,所以我尝试了Alpine 并在 gdbserver 上遇到了这个问题。再次感谢!
    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-07
      • 2021-06-16
      • 1970-01-01
      • 1970-01-01
      • 2020-11-08
      • 1970-01-01
      • 2019-05-17
      • 2019-09-29
      相关资源
      最近更新 更多