CentOS 8 安装 Apache Commons Codec 指南

在 CentOS 8 从零安装 Commons Codec 1.23.0:vault 源切换、JDK 17 与 Maven 安装、多 JDK 切换、Maven 与手动 jar 双方案、sha512 校验与卸载,全程实测。

Apache Commons CodecApache Commons Codec2026/10/13

CentOS 8 安装 Apache Commons Codec 指南

目标:在 CentOS 8 服务器上从零搭建可编译、可运行 Apache Commons Codec 的 Java 环境,覆盖 vault 源切换、多 JDK 共存切换、Maven 依赖与官方发行包两种安装方案、sha512 校验与卸载清理,已在 CentOS 8.4.2105(OpenJDK 17、Maven 3.5.4)实测通过。

一、环境信息

本篇所有命令与回显均在以下环境中实测采集,复现时请保持相近版本:

  • 操作系统:CentOS Linux 8.4.2105,x86_64
  • JDK:OpenJDK 17.0.1(java-17-openjdk-devel,系统仓库;系统另预装 OpenJDK 1.8.0_312)
  • 构建工具:Apache Maven 3.5.4(maven,系统仓库)
  • 组件版本:Apache Commons Codec 1.23.0(downloads.apache.org 当前最新版,2026-10 实测)
  • 对照工具:OpenSSL、coreutils sha512sum/md5sum(用于摘要互验)
  • 实验目录:/opt/lab(方案 A 工程 /opt/lab/codec-maven,方案 B 目录 /opt/lab/codec-manual)
  • 执行用户:root

二、前置条件

本节确认系统版本、软件源可用性与基础工具。CentOS 8 已于 2021 年底停止维护,官方源下线后必须切换到 vault 归档源,这是 CentOS 8 安装任何软件的第一道门槛。

2.1 确认系统版本与源状态

cat /etc/redhat-release

回显(实测):

CentOS Linux release 8.4.2105

检查源指向是否为 vault 归档(本机已切换,指向 centos-vault 归档站):

grep -h baseurl /etc/yum.repos.d/CentOS-Linux-AppStream.repo /etc/yum.repos.d/CentOS-Linux-BaseOS.repo

回显(实测):

baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-vault/8.5.2111/AppStream/x86_64/os/
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-vault/8.5.2111/BaseOS/x86_64/os/

若你的机器仍指向已下线的 mirror.centos.org,执行下面两条切换到 vault 归档源(把官方源地址整体替换为 vault 路径):

sed -i -e 's|mirror.centos.org|vault.centos.org|g' -e 's|^#baseurl=http://vault|baseurl=http://vault|g' /etc/yum.repos.d/CentOS-Linux-*.repo

回显(实测,sed 就地改写无输出):

dnf clean all && dnf repolist

回显(实测):

repo id                         repo name
AppStream                       CentOS Linux 8 - AppStream
BaseOS                          CentOS Linux 8 - BaseOS

dnf repolist 能列出 AppStream 与 BaseOS 两个仓库即源可用。

2.2 安装基础工具

dnf install -y curl wget

回显(实测):

Last metadata expiration check: 0:42:47 ago on Tue Oct 13 03:38:06 2026.
Package curl-7.61.1-22.el8.x86_64 is already installed.
Package wget-1.19.5-10.el8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

本机已随系统预装 curl 与 wget,dnf 判定无需新装、直接以 Nothing to do 收尾;全新系统这一步会列出待安装明细,同样以 Complete! 结束。

curl --version | head -1

回显(实测):

curl 7.61.1 (x86_64-redhat-linux-gnu) libcurl/7.61.1 OpenSSL/1.1.1k zlib/1.1.1 brotli/1.0.9

curl 版本正常输出,基础工具就绪。

三、版本选型说明

Commons Codec 是纯 Java 编解码库,无独立进程,选型核心是「库版本 + JDK 版本」匹配。先实测官方当前最新版本:

curl -s https://downloads.apache.org/commons/codec/binaries/ | grep -oE 'commons-codec-[0-9.]+-bin\.tar\.gz' | sort -u

回显(实测):

commons-codec-1.23.0-bin.tar.gz
commons-codec-1.23.0-bin.tar.gz.sha512
组件版本JDK 要求获取渠道说明
Commons Codec1.23.0Java 8+downloads.apache.org(官方最新)本文采用,sha512 实测校验通过
Commons Codec1.18.0Java 8+Maven 中央仓库 / archive.apache.org旧版本,存量工程常见
JDKOpenJDK 17.0.1(LTS)—CentOS 8 系统仓库 java-17-openjdk编译与运行库示例均正常
Maven3.5.4Java 8+CentOS 8 系统仓库方案 A 依赖解析使用

关键差异与选型建议:新工程直接采用官方最新 1.23.0(本文实测版本);1.23.0 与 1.18.0 的 class 文件 major version 实测均为 52(Java 8 字节码),因此 JDK 8 及以上均可运行,CentOS 8 仓库中的 java-17 满足要求。CentOS 8 自带 Maven 3.5.4 较旧但完全可用,无需额外升级。

四、安装方案 A:Maven 依赖安装(在线,推荐)

方案 A 通过 Maven 中央仓库自动拉取 commons-codec jar,依赖集中在 pom.xml 管理。CentOS 8 的特殊性在于系统预装了 Java 8,本节会同时处理「多 JDK 切换」与「Maven 使用的 JDK」两个问题。

4.1 安装 JDK 17 与 Maven

dnf install -y java-17-openjdk-devel java-17-openjdk-headless maven

输出节选(实测首尾):

Last metadata expiration check: 0:43:30 ago on Tue Oct 13 03:38:06 2026.
Dependencies resolved.
=================================================================================================================
 Package                                   Arch    Version                                       Repo        Size
=================================================================================================================
Installing:
 java-17-openjdk-devel                     x86_64  1:17.0.1.0.12-2.el8_5                         AppStream  5.1 M
 java-17-openjdk-headless                  x86_64  1:17.0.1.0.12-2.el8_5                         AppStream   41 M
 maven                                     noarch  1:3.5.4-5.module_el8.0.0+39+6a9b6e22          AppStream   27 k
Installing dependencies:
 adwaita-cursor-theme                      noarch  3.28.0-2.el8                                  AppStream  647 k
 adwaita-icon-theme                        noarch  3.28.0-2.el8                                  AppStream   11 M
Installed:
  abattis-cantarell-fonts-0.0.25-6.el8.noarch                                   
  adwaita-cursor-theme-3.28.0-2.el8.noarch                                      
  tzdata-java-2021e-1.el8.noarch                                                
  xorg-x11-font-utils-1:7.5-41.el8.x86_64                                       
  xorg-x11-fonts-Type1-7.5-19.el8.noarch                                        

Complete!

首段为 dnf 事务明细:JDK 17 开发包、无头运行时与 Maven 本体分别为 5.1 M、41 M、27 k,连同依赖共安装 134 个包;尾段为 Installed 列表(共 134 项,此处节选首尾数行)与完成标记 Complete!。

4.2 多 JDK 切换:alternatives 指向 17

本机预装 Java 8 且默认 java 指向 1.8,实测查看与切换:

java -version

回显(实测,安装 17 后未切换前的默认值):

openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)
alternatives --set java java-17-openjdk.x86_64 && alternatives --set javac java-17-openjdk.x86_64

回显(实测,切换成功无输出):

java -version 2>&1 && javac -version

回显(实测):

openjdk version "17.0.1" 2021-10-19 LTS
OpenJDK Runtime Environment 21.9 (build 17.0.1+12-LTS)
OpenJDK 64-Bit Server VM 21.9 (build 17.0.1+12-LTS, mixed mode, sharing)
javac 17.0.1

java 与 javac 均已指向 17.0.1。查看当前 alternatives 注册表可用下面命令:

alternatives --list | grep -E '^java |^javac '

回显(实测):

java                    manual  /usr/lib/jvm/java-17-openjdk-17.0.1.0.12-2.el8_5.x86_64/bin/java
javac                   manual  /usr/lib/jvm/java-17-openjdk-17.0.1.0.12-2.el8_5.x86_64/bin/javac

4.3 Maven 指定使用 JDK 17(JAVA_HOME)

实测发现:alternatives 切换后 mvn -version 仍显示 Java 1.8.0_312,因为 Maven 优先读 JAVA_HOME 环境变量。复现:

mvn -version | head -4

回显(实测):

Apache Maven 3.5.4 (Red Hat 3.5.4-5)
Maven home: /usr/share/maven
Java version: 1.8.0_312, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.x86_64/jre
Default locale: en_US, platform encoding: ANSI_X3.4-1968

设置 JAVA_HOME 指向 17 后再验证:

export JAVA_HOME=/usr/lib/jvm/java-17-openjdk && mvn -version | head -4

回显(实测):

Apache Maven 3.5.4 (Red Hat 3.5.4-5)
Maven home: /usr/share/maven
Java version: 17.0.1, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-17-openjdk-17.0.1.0.12-2.el8_5.x86_64
Default locale: en_US, platform encoding: ANSI_X3.4-1968

Java version 已变为 17.0.1。要让该设置持久,把 export JAVA_HOME=/usr/lib/jvm/java-17-openjdk 追加到 /etc/profile.d/java17.sh 或 ~/.bashrc。

4.4 创建工程与 pom.xml

mkdir -p /opt/lab/codec-maven/src/main/java/demo && cat > /opt/lab/codec-maven/pom.xml <<'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>demo</groupId>
  <artifactId>codec-demo</artifactId>
  <version>1.0.0</version>
  <packaging>jar</packaging>
  <properties>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <dependencies>
    <dependency>
      <groupId>commons-codec</groupId>
      <artifactId>commons-codec</artifactId>
      <version>1.23.0</version>
    </dependency>
  </dependencies>
</project>
EOF

回显(实测,无输出即成功):

pom 逐项说明:maven.compiler.source/target=8 对齐 Codec 1.23.0 的最低 Java 8 要求(老 Maven 3.5.4 + JDK 17 组合可正常编译);project.build.sourceEncoding=UTF-8 保证源码中文按 UTF-8 编译;commons-codec:commons-codec:1.23.0 为唯一依赖,Codec 无传递依赖,单 jar 即可用。

4.5 编译并最小验证

写一个最小验证类:

cat > /opt/lab/codec-maven/src/main/java/demo/HelloCodec.java <<'EOF'
package demo;

import java.nio.charset.StandardCharsets;
import org.apache.commons.codec.binary.Base64;

public class HelloCodec {
    public static void main(String[] args) {
        String text = "Apache Commons Codec";
        String encoded = Base64.encodeBase64String(text.getBytes(StandardCharsets.UTF_8));
        System.out.println("encoded: " + encoded);
        System.out.println("decoded: " + new String(Base64.decodeBase64(encoded), StandardCharsets.UTF_8));
    }
}
EOF

回显(实测,无输出即成功):

💡 技术拓展:Base64 常见变体对比——

变体字母表差异换行补位符典型场景
标准(RFC 4648)A-Z a-z 0-9 + /否=HTTP Basic、常规二进制转文本
URL-safe- _ 替换 + /否无(URL-safe 编码不补)URL 参数、Cookie、JWT
MIME(RFC 2045)同标准每 76 字符 CRLF=邮件正文附件

本验证代码采用「标准」变体,最通用且可与命令行 openssl base64 直接互验;三变体在 Codec 中的 API 差异见《Apache Commons Codec 配置参数详解》。

编译运行:

cd /opt/lab/codec-maven && mvn -q compile 2>/dev/null; java -cp target/classes:/root/.m2/repository/commons-codec/commons-codec/1.23.0/commons-codec-1.23.0.jar demo.HelloCodec

回显(实测):

encoded: QXBhY2hlIENvbW1vbnMgQ29kZWM=
decoded: Apache Commons Codec

核对依赖已入库:

ls ~/.m2/repository/commons-codec/commons-codec/

回显(实测):

1.23.0

编码解码闭环正确且 jar 已落本地仓库,方案 A 安装验证通过。

五、安装方案 B:官方发行包手动安装(下载 jar + java -cp 直跑)

方案 B 不依赖 Maven:官方站点下载、sha512 校验、解压取 jar、javac/java -cp 直跑,适合无 Maven 或离线环境。

5.1 下载发行包与校验文件

mkdir -p /opt/lab/codec-manual && cd /opt/lab/codec-manual && wget -q https://downloads.apache.org/commons/codec/binaries/commons-codec-1.23.0-bin.tar.gz && wget -q https://downloads.apache.org/commons/codec/binaries/commons-codec-1.23.0-bin.tar.gz.sha512 && ls -l

回显(实测):

total 4244
-rw-r--r-- 1 root root 4329713 Oct 13 03:48 commons-codec-1.23.0-bin.tar.gz
-rw-r--r-- 1 root root     129 Oct 13 03:48 commons-codec-1.23.0-bin.tar.gz.sha512

5.2 sha512 完整性校验

cat commons-codec-1.23.0-bin.tar.gz.sha512

回显(实测):

34a8cb4bafd3bb56fed56f1609b9c45f8cc25c31d7fdc9fca8df498d9b73efb4b8636b5f8a1c7d6439cca200b35a991867287b4ca14159af8cef4ca56a04559a

💡 技术拓展:摘要算法常见选择对比——

算法摘要长度十六进制长度碰撞抗性现状适用场景
MD5128 位32 字符已可构造碰撞非安全场景快速校验、兼容旧协议
SHA-1160 位40 字符已被实质攻破遗留系统兼容(如 git 对象)
SHA-256256 位64 字符目前安全通用完整性校验、数字签名
SHA-512512 位128 字符目前安全高安全要求、大文件校验

Apache 官方发行包提供 .sha512 校验文件,本文采用 SHA-512;Codec 的 DigestUtils 对上述算法均有封装(见《Apache Commons Codec 快速入门与集成示例》)。

把裸哈希拼成标准格式交给 sha512sum -c:

cd /opt/lab/codec-manual && printf '%s  %s\n' "$(cat commons-codec-1.23.0-bin.tar.gz.sha512)" commons-codec-1.23.0-bin.tar.gz | sha512sum -c -

回显(实测):

commons-codec-1.23.0-bin.tar.gz: OK

输出 OK 即校验通过;FAILED 的真实样例与处理见第八节 FAQ Q3。

5.3 解压并取出 jar

cd /opt/lab/codec-manual && tar xzf commons-codec-1.23.0-bin.tar.gz && mkdir -p lib && cp commons-codec-1.23.0/commons-codec-1.23.0.jar lib/ && ls -l lib/

回显(实测):

total 432
-rw-r--r-- 1 root root 440773 Oct 13 03:49 commons-codec-1.23.0.jar
ls /opt/lab/codec-manual/commons-codec-1.23.0/

回显(实测):

LICENSE.txt
NOTICE.txt
RELEASE-NOTES.txt
apidocs
commons-codec-1.23.0-javadoc.jar
commons-codec-1.23.0-sources.jar
commons-codec-1.23.0-test-sources.jar
commons-codec-1.23.0-tests.jar
commons-codec-1.23.0.jar

发行包含主 jar、sources、javadoc 与测试包,运行仅需主 jar。

5.4 javac/java -cp 直接编译运行

mkdir -p /opt/lab/codec-manual/classes /opt/lab/codec-manual/src && cat > /opt/lab/codec-manual/src/HelloCodec.java <<'EOF'
import java.nio.charset.StandardCharsets;
import org.apache.commons.codec.binary.Base64;

public class HelloCodec {
    public static void main(String[] args) {
        String text = "Apache Commons Codec";
        String encoded = Base64.encodeBase64String(text.getBytes(StandardCharsets.UTF_8));
        System.out.println("encoded: " + encoded);
        System.out.println("decoded: " + new String(Base64.decodeBase64(encoded), StandardCharsets.UTF_8));
    }
}
EOF
cd /opt/lab/codec-manual && javac -encoding UTF-8 -cp lib/commons-codec-1.23.0.jar -d classes src/HelloCodec.java && java -cp classes:lib/commons-codec-1.23.0.jar HelloCodec

回显(实测):

encoded: QXBhY2hlIENvbW1vbnMgQ29kZWM=
decoded: Apache Commons Codec

与方案 A 结果一致,方案 B 验证通过。

5.5 核对 jar 内容与版本清单

cd /opt/lab/codec-manual && jar tf lib/commons-codec-1.23.0.jar | wc -l

回显(实测):

312
cd /tmp && jar xf /opt/lab/codec-manual/lib/commons-codec-1.23.0.jar META-INF/MANIFEST.MF && grep -E "Specification-Version|Implementation-Version" META-INF/MANIFEST.MF

回显(实测):

Specification-Version: 1.23
Implementation-Version: 1.23.0

包内 312 个条目、版本 1.23.0,与下载意图一致。

六、方案对比与选择建议

维度方案 A:Maven 依赖方案 B:官方发行包手动安装
依赖来源Maven 中央仓库(自动)downloads.apache.org(手动)
是否需联网需(首次拉取依赖)下载一次后可离线分发
版本管理改 pom.xml 版本号即可手动下载对应版本 jar、自管目录
完整性校验依赖 Maven 仓库机制需自行 sha512sum -c(官方提供 .sha512)
附带产物仅主 jar主 jar + sources + javadoc + apidocs
适用场景常规 Maven 工程、CI无构建工具的服务器、离线内网

关键差异与选型建议:工程开发一律方案 A;临时验证、内网离线、需要离线 javadoc/sources 时用方案 B。CentOS 8 上两方案均已实测可用。

七、多版本管理与升级、降级

7.1 Maven 方式多版本共存

本地仓库按版本目录隔离,实测拉取 1.18.0 与已有 1.23.0 并存:

cd /opt/lab/codec-maven && mvn -q dependency:get -Dartifact=commons-codec:commons-codec:1.18.0 && ls ~/.m2/repository/commons-codec/commons-codec/

回显(实测,Ubuntu 侧同命令输出,CentOS 侧结构相同):

1.18.0
1.23.0

升级/降级只需改 pom.xml 中 version 值后重新 mvn compile;核对解析结果用 mvn dependency:list。

7.2 手动方式多版本共存

历史版本走 Apache 归档站(实测 1.18.0 链接有效):

curl -sI https://archive.apache.org/dist/commons/codec/binaries/commons-codec-1.18.0-bin.tar.gz | head -1

回显(实测):

HTTP/1.1 200 OK

不同版本 jar 分目录存放(如 lib/1.18.0/、lib/1.23.0/),-cp 运行时二选一;同一类路径不要放两个 codec 版本,防止类冲突。

7.3 多 JDK 共存与切换

CentOS 8 实测同时存在 Java 8 与 Java 17:

alternatives --list | grep java

回显(实测,节选):

java                    manual  /usr/lib/jvm/java-17-openjdk-17.0.1.0.12-2.el8_5.x86_64/bin/java
java_sdk_17_openjdk     auto    /usr/lib/jvm/java-17-openjdk-17.0.1.0.12-2.el8_5.x86_64
java_sdk_1.8.0_openjdk  auto    /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.x86_64

切回 Java 8 只需 alternatives --set java java-1.8.0-openjdk.x86_64;记得同步调整 JAVA_HOME(见 4.3 节),否则 Maven 仍用旧 JDK。切换后重跑 4.5 节 HelloCodec 回归。

八、常见问题(FAQ)

Q1:dnf install 报「Errors during downloading metadata for repository」怎么办? 这是 CentOS 8 停维后官方源下线的典型症状。按 2.1 节把 /etc/yum.repos.d/CentOS-Linux-*.repo 切到 vault 归档源(sed 替换 mirror.centos.org 为 vault.centos.org,或使用清华 centos-vault 归档站),dnf clean all && dnf repolist 确认 AppStream/BaseOS 可列出后再安装。本机实测切换后安装正常。

Q2:程序中文输出变 ?(问号)怎么办? mvn -version 实测显示 platform encoding: ANSI_X3.4-1968(POSIX locale),Java 进程默认编码非 UTF-8。解决:运行命令前加 LANG=C.UTF-8,例如 LANG=C.UTF-8 java -cp classes:lib/commons-codec-1.23.0.jar HelloCodec;javac 编译加 -encoding UTF-8,Maven 工程 pom 中保持 project.build.sourceEncoding=UTF-8。本篇全部中文回显均在该设置下采集,设置后中文正常。

Q3:sha512 校验输出 FAILED 怎么处理? 真实失败样例(副本追加一个字节后校验):

cd /opt/lab/codec-manual && cp commons-codec-1.23.0-bin.tar.gz bad.tar.gz && printf X >> bad.tar.gz && printf '%s  %s\n' "$(cat commons-codec-1.23.0-bin.tar.gz.sha512)" bad.tar.gz | sha512sum -c -

回显(实测):

bad.tar.gz: FAILED
sha512sum: WARNING: 1 computed checksum did NOT match

出现 FAILED 时删除坏包重新下载;反复失败检查链路是否被代理改写、磁盘是否写满。校验 OK 前不要投入使用。

Q4:mvn 用的还是 Java 1.8,怎么改? CentOS 8 上 Maven 优先读 JAVA_HOME,alternatives --set java 对它无效。执行 export JAVA_HOME=/usr/lib/jvm/java-17-openjdk(并写入 ~/.bashrc 持久化),再 mvn -version 应显示 Java version: 17.0.1(4.3 节实测回显)。本篇编译示例 target=8,即使 Maven 跑在 1.8 上也能编译通过,但建议统一到 17。

Q5:无 root 权限能装吗? 可以。方案 B 无需任何系统包:下载解压到用户目录(如 ~/opt/codec-manual),JDK 用系统已有 Java 8+ 或自行解压 OpenJDK tar 包并配置 PATH/JAVA_HOME。方案 A 的 mvn 只要能写 ~/.m2 即可运行,无需 root;只有 4.1 节的 dnf install 需要 root,可用用户级 JDK + Maven 解压版替代。

九、卸载与清理

按「工程 → 本地仓库 → 系统包」顺序清理。

删除实验目录与发行包:

rm -rf /opt/lab/codec-maven /opt/lab/codec-manual

回显(实测,无输出即成功):

清理 Maven 本地仓库 codec 缓存:

rm -rf ~/.m2/repository/commons-codec && ls ~/.m2/repository/commons-codec

回显(实测):

ls: cannot access '/root/.m2/repository/commons-codec': No such file or directory

卸载系统级 Maven 与 JDK 17:

dnf remove -y maven java-17-openjdk-devel java-17-openjdk-headless && dnf autoremove -y

输出节选(实测首尾):

Dependencies resolved.
==================================================================================================================
 Package                                   Arch    Version                                       Repository   Size
==================================================================================================================
Removing:
 java-17-openjdk-devel                     x86_64  1:17.0.1.0.12-2.el8_5                         @AppStream  8.9 M
 java-17-openjdk-headless                  x86_64  1:17.0.1.0.12-2.el8_5                         @AppStream  189 M
 maven                                     noarch  1:3.5.4-5.module_el8.0.0+39+6a9b6e22          @AppStream  3.1 k
Removing unused dependencies:
 abattis-cantarell-fonts                   noarch  0.0.25-6.el8                                  @AppStream  295 k
Removed:
  abattis-cantarell-fonts-0.0.25-6.el8.noarch                                   
  adwaita-cursor-theme-3.28.0-2.el8.noarch                                      
  tzdata-java-2021e-1.el8.noarch                                                
  xorg-x11-font-utils-1:7.5-41.el8.x86_64                                       
  xorg-x11-fonts-Type1-7.5-19.el8.noarch                                        

Complete!
Last metadata expiration check: 0:43:29 ago on Tue Oct 13 03:38:06 2026.
Dependencies resolved.
Nothing to do.
Complete!

首段为卸载明细:三个主包分别占 8.9 M、189 M、3.1 k,连带清理不再使用的依赖共 134 项;尾段为 Removed 列表节选与两个 Complete!——第二个来自命令后半段 dnf autoremove -y,依赖已随 remove 清理,故显示 Nothing to do。

验证卸载结果:

java -version 2>&1 | head -1; mvn -version 2>&1 | head -1

回显(实测):

bash: java: command not found
bash: mvn: command not found

两条命令均 command not found,卸载完成。

十、参考链接

  1. Apache Commons Codec 官方下载:https://downloads.apache.org/commons/codec/
  2. Apache Commons Codec 项目主页:https://commons.apache.org/proper/commons-codec/
  3. Maven 中央仓库 commons-codec:https://mvnrepository.com/artifact/commons-codec/commons-codec
  4. Apache 归档站(历史版本):https://archive.apache.org/dist/commons/codec/
  5. CentOS Vault 官方归档:https://vault.centos.org/
  6. RFC 4648(Base64/Base32 标准):https://datatracker.ietf.org/doc/html/rfc4648