Menu Close

Red Hat Training

A Red Hat training course is available for RHEL 8

第 15 章 使用 GCC Toolset 容器镜像

GCC Toolset 10 组件在两个容器镜像中可用:

  • GCC Toolset 10 Toolchain
  • GCC Toolset 10 Perftools

GCC Toolset 容器镜像基于 rhel8 基础镜像,并可用于 RHEL 8 支持的所有架构:

  • AMD 和 Intel 64 位构架
  • 64 位 ARM 架构
  • IBM Power Systems, Little Endian
  • 64-bit IBM Z

15.1. GCC Toolset 容器镜像内容

GCC Toolset 10 容器镜像中提供的工具版本与 GCC Toolset 10 组件版本 匹配。

GCC Toolset 10 Toolchain 内容

rhel8/gcc-toolset-10-toolchain 镜像提供 GCC 编译器、GDB 调试器和其他与开发相关的工具。容器镜像由以下组件组成:

组件软件包

gcc

gcc-toolset-10-gcc

g++

gcc-toolset-10-gcc-c++

gfortran

gcc-toolset-10-gcc-gfortran

gdb

gcc-toolset-10-gdb

GCC Toolset 10 Perftools 内容

rhel8/gcc-toolset-10-perftools 镜像提供很多用于调试、性能监控和进一步分析应用程序的工具。容器镜像由以下组件组成:

组件软件包

Valgrind

gcc-toolset-10-valgrind

SystemTap

gcc-toolset-10-systemtap

Dyninst

gcc-toolset-10-dyninst

elfutils

gcc-toolset-10-elfutils

其它资源

15.2. 访问并运行 GCC Toolset 容器镜像

下面的部分论述了如何访问和运行 GCC Toolset 容器镜像。

先决条件

  • 已安装 podman。

流程

  1. 使用您的客户门户网站凭证访问 Red Hat Container Registry:

    $ podman login registry.redhat.io
    Username: username
    Password: ********
  2. 以 root 用户身份运行相关命令来拉取所需的容器镜像:

    # podman pull registry.redhat.io/rhel8/gcc-toolset-10-toolchain
    # podman pull registry.redhat.io/rhel8/gcc-toolset-10-perftools
    注意

    在 RHEL 8.1 及更新的版本中,您可以设置系统以非 root 用户身份使用容器。详情请参阅以 root 用户或无根用户身份运行容器

  3. 可选:通过运行列出本地系统中所有容器镜像的命令来检查拉取是否成功:

    # podman images
  4. 通过在容器内启动 bash shell 来运行容器:

    # podman run -it image_name /bin/bash

    -i 选项会创建一个交互式会话 ; 如果没有这个选项, shell 将打开并立即退出。

    -t 选项会打开终端会话 ; 如果没有这个选项,您就无法输入任何 shell。

其它资源

15.3. 示例:使用 GCC Toolset 10 Toolchain 容器镜像

本例演示了如何拉取和开始使用 GCC Toolset 10 Toolchain 容器镜像。

先决条件

  • 已安装 podman。

流程

  1. 使用您的客户门户网站凭证访问 Red Hat Container Registry:

    $ podman login registry.redhat.io
    Username: username
    Password: ********
  2. 将容器镜像拉取为 root:

    # podman pull registry.redhat.io/rhel8/gcc-toolset-10-toolchain
  3. 以 root 用户身份使用互动 shell 启动容器镜像:

    # podman run -it registry.redhat.io/rhel8/gcc-toolset-10-toolchain /bin/bash
  4. 正常运行 GCC Toolset 工具。例如,要验证 gcc 编译器版本,请运行:

    bash-4.4$ gcc -v
    ...
    gcc version 10.2.1 20200804 (Red Hat 10.2.1-2) (GCC)
  5. 要列出容器中提供的所有软件包,请运行:

    bash-4.4$ rpm -qa

15.4. 使用 GCC Toolset 10 Perftools 容器镜像中的 systemTap

SystemTap 工具发布在 GCC Toolset 10 Perftools 容器镜像中。要使用这个工具,请按照以下步骤执行。

先决条件

  • GCC Toolset 10 Perftools 容器镜像会被拉取。

流程

  1. 使用超级用户权限运行镜像:

    $ podman run -u root -it --privileged --ipc=host --net=host --pid=host registry.redhat.io/rhel8/gcc-toolset-{gcct-ver}-perftools /bin/bash

    如需了解更多有关 超级特权容器 的信息,请参阅 运行超级特权容器

  2. 确保容器中安装以下软件包或安装它们:

    • kernel
    • kernel-devel
    • kernel-debuginfo

      重要

      上面的 kernel 软件包的版本和发行号必须与主机上运行的内核的版本和发行号匹配。

      • 要检查主机系统内核的版本和发行号,请运行:

        $ uname -r
        4.18.0-193.el8.x86_64
      • 要安装与软件包相匹配的版本,请运行带有 uname 命令输出的软件包安装命令。例如:

        # yum install kernel-devel-$(uname -r)
      • 要安装 kernel-debuginfo 软件包,首先以 root 用户身份运行以下命令来启用 debug 存储库:

        # subscription-manager repos --enable=rhel-8-for-x86_64-baseos-debug-rpms

        要了解在 RHEL 系统上安装 debuginfo 软件包的更多信息, 请参阅如何为 RHEL 系统下载或安装 debuginfo 软件包?

  3. 可选: 要避免重复这些步骤并在以后重复使用预先配置的容器,请考虑运行以下命令来保存它:

    $ podman commit new-container-image-name