CentOS 8 安装 Apache Commons RNG 指南
在 CentOS 8 上从零安装 Apache Commons RNG 1.7,重点解决 EOL 后 yum 源迁移到 vault 归档镜像、切换 8.5.2111 获取 java-17-openjdk、修复 Maven 绑定 JDK8 的 JAVA_HOME 问题,并提供 Maven 依赖与官方 bin 包两种方案,命令回显均实测通过。
CentOS 8 安装 Apache Commons RNG 指南
目标:在 CentOS 8 上从零搭建 Apache Commons RNG 1.7 的开发与运行环境(JDK 17 + Maven 3.5.4 + 官方依赖),重点处理 CentOS 8 EOL 后的软件源迁移与 JDK 17 获取,并跑通最小验证程序;本文全部命令与回显均已在 CentOS 8 实测通过。
CentOS 8 已于 2021 年底停止维护(EOL),官方源 mirror.centos.org 已下线,因此本指南的第一道关卡是把 yum/dnf 源迁移到 vault 归档镜像;第二道关卡是默认 8.4 版本源的 AppStream 中没有 java-17-openjdk,需要把仓库版本指到 8.5.2111。解决这两步后,Commons RNG 的安装与 Ubuntu 无本质差异:它是纯 Java 库,装好 JDK 与构建工具、引入依赖、编译运行即可。Commons RNG 提供数十种随机数生成算法(MersenneTwister、Xoshiro、PCG、LXM、Philox 等)与分布采样器,是多模块项目,本文先讲清模块划分再给出 Maven 依赖与官方 bin 包两种方案。
一、环境信息
本节固定可复现的基线环境,后续所有命令均在此环境执行。
- 操作系统:CentOS Linux release 8.4.2105(Core)
- 架构:x86_64
- JDK:OpenJDK 17.0.1(dnf 包
java-17-openjdk-devel,版本1:17.0.1.0.12-2.el8_5) - 构建工具:Apache Maven 3.5.4(CentOS 8 AppStream 模块自带)
- 组件版本:Apache Commons RNG 1.7(官网
downloads.apache.org当前最新稳定版) - Maven 坐标:
org.apache.commons:commons-rng-simple:1.7、org.apache.commons:commons-rng-sampling:1.7(传递引入 client-api 与 core) - 官方下载目录:
https://downloads.apache.org/commons/rng/ - vault 归档镜像:
https://mirrors.aliyun.com/centos-vault/centos/(本文实测可用) - 验证用工作目录:
/root/rng-demo(Maven 工程)、/root/rng-jar-run(jar 直跑)
系统与架构确认(实时回显):
cat /etc/centos-release && uname -m
CentOS Linux release 8.4.2105 (Core)
x86_64
二、前置条件
本节说明安装前必须满足的条件,其中 EOL 源迁移是 CentOS 8 区别于其他系统的关键前提。
- 具有 root 权限的 CentOS 8 系统(8.0 至 8.5 均可,本文为 8.4.2105)。
- 能访问 CentOS vault 归档镜像(
mirror.centos.org已下线,直接 dnf 安装会报Failed to download metadata for repo 'appstream')。 - 能访问 Maven 中央仓库
repo1.maven.org与 Apache 官方下载站downloads.apache.org。 - 至少 2 GB 可用磁盘空间。
归档镜像连通性确认(实时回显):
curl -sI --max-time 20 https://mirrors.aliyun.com/centos-vault/8.5.2111/AppStream/x86_64/os/repodata/repomd.xml | head -2
HTTP/2 200
server: Tengine
⚠️ 注意:官方归档站
vault.centos.org在部分网络环境下返回 403(经 CDN 分发存在地域限制),本文实测该地址即返回 403,因此后续统一使用阿里云centos-vault镜像,清华 TUNA(https://mirrors.tuna.tsinghua.edu.cn/centos-vault/)实测同样可用,二者任选。
三、版本选型说明
本节给出 Commons RNG 的版本与模块选型,以及 CentOS 8 特有的 JDK 选型结论。
Commons RNG 方面,官网 binaries 目录当前仅保留最新稳定版 1.7,1.x 是唯一在维护的版本线,发布说明明确「requires Java 8」(字节码基线 Java 8)。1.7 官方发布说明列出的库模块如下(均已实测存在于 Maven 中央仓库):
| 模块 | Maven 坐标 | 职责 | 是否需要直接依赖 |
|---|---|---|---|
| client-api | org.apache.commons:commons-rng-client-api:1.7 | 面向应用的接口:UniformRandomProvider 及可跳/可分裂等扩展接口 | 传递引入即可 |
| core | org.apache.commons:commons-rng-core:1.7 | 各算法的内部实现 | 否,官方明确不建议应用直接访问 |
| simple | org.apache.commons:commons-rng-simple:1.7 | RandomSource 枚举工厂,创建生成器的唯一推荐入口 | 是(基础取数) |
| sampling | org.apache.commons:commons-rng-sampling:1.7 | 分布采样器(高斯/指数/伽马/泊松/二项/Dirichlet 等) | 需要采样时加 |
| bom | org.apache.commons:commons-rng-bom:1.7 | 各模块版本对齐的 BOM 清单 | 用 BOM 管版本时加 |
选装建议:基础随机数只依赖 commons-rng-simple(自动传递 client-api 与 core);按概率分布采样再加 commons-rng-sampling;本文实际采用 1.7,Maven 坐标为 org.apache.commons:commons-rng-simple:1.7 与 org.apache.commons:commons-rng-sampling:1.7。
JDK 选型是 CentOS 8 的特殊点:默认 8.4.2105 源的 AppStream 只有 java-8/java-11,没有 java-17-openjdk;把仓库版本指到 8.5.2111 vault 后即可安装 java-17。实测确认(仓库修复到 8.5.2111、安装完成后 dnf list 复核,基础包已装入系统故出现在 Installed 区):
dnf list "java-17-openjdk*" 2>/dev/null
Last metadata expiration check: 0:48:22 ago on Thu Oct 15 02:16:50 2026.
Installed Packages
java-17-openjdk.x86_64 1:17.0.1.0.12-2.el8_5 @appstream
java-17-openjdk-devel.x86_64 1:17.0.1.0.12-2.el8_5 @appstream
java-17-openjdk-headless.x86_64 1:17.0.1.0.12-2.el8_5 @appstream
Available Packages
java-17-openjdk-demo.x86_64 1:17.0.1.0.12-2.el8_5 appstream
java-17-openjdk-javadoc.x86_64 1:17.0.1.0.12-2.el8_5 appstream
java-17-openjdk-javadoc-zip.x86_64 1:17.0.1.0.12-2.el8_5 appstream
java-17-openjdk-jmods.x86_64 1:17.0.1.0.12-2.el8_5 appstream
java-17-openjdk-src.x86_64 1:17.0.1.0.12-2.el8_5 appstream
java-17-openjdk-static-libs.x86_64 1:17.0.1.0.12-2.el8_5 appstream
Maven 方面,CentOS 8 AppStream 的 maven 模块提供 3.5.4。它满足本文所用插件的要求(maven-compiler-plugin 3.11.0 与 maven-shade-plugin 3.5.1 均只要求 Maven 3.2.5+),实测可正常构建,无须额外升级 Maven。
四、仓库修复(EOL 必做)
本节把 yum/dnf 源从已下线的 mirror.centos.org 迁移到 vault 归档镜像,并把仓库版本指到 8.5.2111(java-17 所在的最后一个 8.x 版本)。不做这一步,后续所有 dnf 安装都会失败。
4.1 修改仓库文件
CentOS 8 的仓库定义在 /etc/yum.repos.d/CentOS-Linux-*.repo,每条仓库用 mirrorlist 指向已下线的镜像列表。处理方式:注释掉 mirrorlist,把 baseurl 指向阿里云 centos-vault 归档镜像,保留 $contentdir/$releasever 变量结构:
sed -i -e 's|mirrorlist=|#mirrorlist=|g' \
-e 's|#baseurl=http://mirror.centos.org|baseurl=https://mirrors.aliyun.com/centos-vault|g' \
/etc/yum.repos.d/CentOS-Linux-*.repo
确认修改结果:
grep -E '^(mirrorlist|#mirrorlist|baseurl)' /etc/yum.repos.d/CentOS-Linux-AppStream.repo
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=AppStream&infra=$infra
baseurl=https://mirrors.aliyun.com/centos-vault/$contentdir/$releasever/AppStream/$basearch/os/
4.2 指定仓库版本为 8.5.2111
默认 $releasever 解析为 8,而 centos-vault 归档下没有 centos/8 目录(8.x 按小版本归档),需把版本变量固定为 8.5.2111:
echo 8.5.2111 > /etc/dnf/vars/releasever && cat /etc/dnf/vars/releasever
8.5.2111
4.3 刷新缓存
dnf clean all && dnf makecache
# 输出节选(实测首尾)
CentOS-8 - AppStream 3.2 MB/s | 8.9 MB 00:02
CentOS-8 - Base 3.5 MB/s | 5.0 MB 00:01
CentOS-8 - Extras 37 kB/s | 9.9 kB 00:00
Metadata cache created.
验证点:Metadata cache created. 表示源迁移成功;若报 403,说明所配镜像不可达,换清华 TUNA 的 centos-vault 路径重试(见第二章说明)。
五、方案 A:Maven 依赖安装(在线,推荐)
本节通过 dnf 安装 JDK 17 与 Maven,再引入 Commons RNG 1.7 依赖并跑通最小验证程序。
5.1 安装 JDK 17 与 Maven
dnf install -y java-17-openjdk-devel maven
# 输出节选(实测首尾)
Dependencies resolved.
==================================================================================================================
Package Architecture Version Repository Size
==================================================================================================================
Installing:
java-17-openjdk-devel x86_64 1:17.0.1.0.12-2.el8_5 appstream 4.1 M
maven noarch 1:3.5.4-5.module_el8.0.0+39+6a9b6e22
appstream 27 k
Installing dependencies:
java-17-openjdk x86_64 1:17.0.1.0.12-2.el8_5 appstream 247 k
java-17-openjdk-headless x86_64 1:17.0.1.0.12-2.el8_5 appstream 41 M
Complete!
安装完成后,系统默认 java 可能仍指向预装的 JDK 8(CentOS 8 镜像通常自带 java-1.8.0),用 alternatives 把 java 与 javac 都切到 17:
alternatives --set java java-17-openjdk.x86_64 && alternatives --set javac java-17-openjdk.x86_64
java -version | head -1 && javac -version
openjdk version "17.0.1" 2021-10-19
javac 17.0.1
验证点:java -version 与 javac -version 均显示 17.0.1。
5.2 关键排障:Maven 绑定到 JDK 8 导致 invalid flag: --release
alternatives 只切换 java/javac 命令,不会改 JAVA_HOME 环境变量;而 CentOS 的 Maven 启动脚本优先读 JAVA_HOME,变量为空时回落到通用符号链接 /usr/lib/jvm/java(默认指向 JDK 8),于是 Maven 内嵌编译器仍是 JDK 8,遇到 pom 中的 maven.compiler.release=17 直接报错。本文实测完整复现:
echo "JAVA_HOME=[$JAVA_HOME]" && mvn -version | grep "Java version"
JAVA_HOME=[]
Java version: 1.8.0_312, vendor: Red Hat, Inc.
带着这个错误绑定执行 mvn package 的实测报错(输出节选):
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.11.0:compile (default-compile) on project rng-demo: Fatal error compiling: error: invalid flag: --release
修复:会话中显式导出 JDK 17 的 JAVA_HOME 后重新构建(持久化方法见第八章):
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
mvn -version | grep "Java version"
Java version: 17.0.1, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-17-openjdk
5.3 创建工程并引入依赖
建立 Maven 工程并声明 Commons RNG 依赖(pom 与 Ubuntu 指南保持一致,便于跨平台迁移):
mkdir -p /root/rng-demo/src/main/java
pom.xml(完整内容,文件路径 /root/rng-demo/pom.xml):
<?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>com.example.rng</groupId>
<artifactId>rng-demo</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.release>17</maven.compiler.release>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-simple</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-sampling</artifactId>
<version>1.7</version>
</dependency>
</dependencies>
<build>
<finalName>rng-demo</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.5.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>RngCheck</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
配置说明:commons-rng-simple:1.7 是创建生成器的入口模块(传递引入 client-api 与 core),commons-rng-sampling:1.7 是分布采样模块;maven.compiler.release=17 配合显式固定的 maven-compiler-plugin 3.11.0;maven-shade-plugin 打出可 java -jar 直跑的胖 jar。CentOS 8 自带 Maven 3.5.4 满足两个插件版本要求(均只要求 Maven 3.2.5+),实测构建通过。
5.4 最小验证代码
验证程序 RngCheck.java(文件路径 /root/rng-demo/src/main/java/RngCheck.java):
import org.apache.commons.rng.UniformRandomProvider;
import org.apache.commons.rng.simple.RandomSource;
public class RngCheck {
public static void main(String[] args) {
UniformRandomProvider rng = RandomSource.create(RandomSource.MT, 20261015L);
System.out.println("provider = " + rng.getClass().getName());
System.out.println("nextInt() = " + rng.nextInt());
System.out.println("nextInt(100) = " + rng.nextInt(100));
System.out.println("nextLong() = " + rng.nextLong());
System.out.println("nextDouble() = " + rng.nextDouble());
System.out.println("nextBoolean()= " + rng.nextBoolean());
System.out.println("Commons RNG OK");
}
}
⚠️ 注意:静态工厂
RandomSource.create(RandomSource, seed)在 1.7 已标记为过时,推荐写法是实例方法RandomSource.MT.create(20261015L),行为完全一致。本文保留静态写法以在编译期触发deprecated API提示,便于第九章 FAQ Q5 实测讲解。
5.5 编译与运行验证
cd /root/rng-demo && mvn -q -B package
ls -l target/*.jar && java -Dfile.encoding=UTF-8 -jar target/rng-demo.jar
-rw-r--r-- 1 root root 2919 Oct 15 02:22 target/original-rng-demo.jar
-rw-r--r-- 1 root root 420019 Oct 15 02:23 target/rng-demo.jar
provider = org.apache.commons.rng.core.source32.MersenneTwister
nextInt() = 243253777
nextInt(100) = 79
nextLong() = -7428464460000287899
nextDouble() = 0.86954735697081
nextBoolean()= true
Commons RNG OK
验证点:固定种子 20261015L 下的输出与 Ubuntu 22.04 环境逐字节一致(provider、五个取数值全部相同),说明 Commons RNG 的随机序列跨操作系统、跨 JVM 厂商可复现,rng-demo.jar 约 420 KB 为内嵌四个模块的胖 jar。
六、方案 B:官方 bin 包 + jar 直跑(离线友好)
本节不依赖 Maven,直接使用官方 bin 包完成编译与运行,适合离线服务器与脚本化场景。
6.1 下载与完整性校验
cd /root && curl -sO --max-time 180 https://downloads.apache.org/commons/rng/binaries/commons-rng-1.7-bin.tar.gz
curl -sO --max-time 30 https://downloads.apache.org/commons/rng/binaries/commons-rng-1.7-bin.tar.gz.sha512
ls -l commons-rng-1.7-bin.tar.gz
-rw-r--r-- 1 root root 3709031 Oct 15 02:23 commons-rng-1.7-bin.tar.gz
echo "期望: $(cat commons-rng-1.7-bin.tar.gz.sha512)"
echo "实测: $(sha512sum commons-rng-1.7-bin.tar.gz | awk '{print $1}')"
期望: 9dec28282c9baf8b02f8a47fab2e74f5c2ec123dd7f62b25c1946cc2f25b3193d11b72ec40300a663f429c000840045bbeb0324556d4aadbb42e4387558e15e4
实测: 9dec28282c9baf8b02f8a47fab2e74f5c2ec123dd7f62b25c1946cc2f25b3193d11b72ec40300a663f429c000840045bbeb0324556d4aadbb42e4387558e15e4
验证点:期望与实测 sha512 逐字一致,包完整可信。
6.2 解压并确认四个模块 jar
tar xzf commons-rng-1.7-bin.tar.gz && ls commons-rng-1.7/ | grep jar$
commons-rng-client-api-1.7-javadoc.jar
commons-rng-client-api-1.7-sources.jar
commons-rng-client-api-1.7.jar
commons-rng-core-1.7-javadoc.jar
commons-rng-core-1.7-sources.jar
commons-rng-core-1.7.jar
commons-rng-sampling-1.7-javadoc.jar
commons-rng-sampling-1.7-sources.jar
commons-rng-sampling-1.7.jar
commons-rng-simple-1.7-javadoc.jar
commons-rng-simple-1.7-sources.jar
commons-rng-simple-1.7.jar
bin 包内每个模块都带主 jar/javadoc/sources 三件套(共 12 个 jar),编译与运行只需其中四个主 jar:commons-rng-client-api-1.7.jar、commons-rng-core-1.7.jar、commons-rng-simple-1.7.jar、commons-rng-sampling-1.7.jar。
6.3 javac 编译与 java 运行
mkdir -p /root/rng-jar-run && cd /root/rng-jar-run
B=/root/commons-rng-1.7
javac -encoding UTF-8 -cp $B/commons-rng-client-api-1.7.jar:$B/commons-rng-core-1.7.jar:$B/commons-rng-simple-1.7.jar:$B/commons-rng-sampling-1.7.jar -d out /root/rng-demo/src/main/java/RngCheck.java
java -Dfile.encoding=UTF-8 -cp out:$B/commons-rng-client-api-1.7.jar:$B/commons-rng-core-1.7.jar:$B/commons-rng-simple-1.7.jar:$B/commons-rng-sampling-1.7.jar RngCheck
Note: /root/rng-demo/src/main/java/RngCheck.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
provider = org.apache.commons.rng.core.source32.MersenneTwister
nextInt() = 243253777
nextInt(100) = 79
nextLong() = -7428464460000287899
nextDouble() = 0.86954735697081
nextBoolean()= true
Commons RNG OK
验证点:无 NoClassDefFoundError 且七行结果与 Maven 方案一致;deprecated API 提示见 FAQ Q5。
七、方案对比与选择建议
| 维度 | 方案 A:Maven 依赖 | 方案 B:官方 bin 包 + jar 直跑 |
|---|---|---|
| 环境准备 | dnf 装 JDK17 + Maven,须先修 EOL 源 | 只需 JDK(javac/java) |
| 依赖获取 | 中央仓库自动下载四模块 | 手工下载 bin 包并拼 classpath |
| 版本管控 | pom 声明,可锁版本 | 靠文件命名区分 |
| 构建产物 | 胖 jar,java -jar 直跑 | class 目录 + 引用 jar |
| 离线可用性 | 首次需联网 | 一次下载后完全离线 |
| 适用场景 | CentOS 8 上的常规工程 | 老旧内网服务器、临时验证 |
选型建议:有构建体系选方案 A(本文完整走通);内网无法访问中央仓库或不想引入 Maven 时选方案 B。注意 CentOS 8 无论哪种方案,方案 A 都必须先完成第四章的源迁移,且方案 A 必须处理 5.2 节的 JAVA_HOME 问题。
八、配置说明
Commons RNG 是库,无独立配置文件;CentOS 8 上真正必须配置的是 JAVA_HOME 持久化与字符集。
JAVA_HOME 持久化:5.2 节的 export 只对当前会话生效,写入 profile 让所有会话生效:
echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk' > /etc/profile.d/java17.sh
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile.d/java17.sh
cat /etc/profile.d/java17.sh
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export PATH=$JAVA_HOME/bin:$PATH
生效方式:新登录会话自动加载;当前会话执行 source /etc/profile.d/java17.sh。
字符集:CentOS 8 默认 locale 常为 ANSI_X3.4-1968(ASCII),含中文的程序输出会乱码。处理:运行时加 -Dfile.encoding=UTF-8(本文 5.5/6.3 节实测均带此参数),或把系统 locale 调整为 UTF-8。Maven 编译含中文源码由 pom 的 project.build.sourceEncoding=UTF-8 兜底。
代码级参数(随机源算法、种子、多线程策略)均通过 API 控制,说明与实测见本专栏《Apache Commons RNG 1.7 常用 API 与随机源详解》。
九、常见问题(FAQ)
Q1:dnf makecache 报 Failed to download metadata for repo 'appstream'?
mirror.centos.org 已随 CentOS 8 EOL 下线,默认 mirrorlist 全部失效。按第四章把仓库指到 vault 归档镜像即可。
Q2:仓库已指向 vault.centos.org 但仍报 403?
官方归档站经 CDN 分发,部分网络被拒(本文实测 https://vault.centos.org/ 根路径即返回 403)。改用阿里云 https://mirrors.aliyun.com/centos-vault/ 或清华 TUNA https://mirrors.tuna.tsinghua.edu.cn/centos-vault/,本文实测二者均可。
Q3:dnf install java-17-openjdk-devel 报 No match for argument: java-17-openjdk-devel?
仓库版本还停留在 8.4.2105 或更低——8.4 的 AppStream 没有 java-17。执行 echo 8.5.2111 > /etc/dnf/vars/releasever 后重新 dnf makecache,再安装(8.5.2111 是 java-17 可用的最后一个 8.x 归档版本,第三章有实测清单)。
Q4:mvn package 报 invalid flag: --release?
Maven 绑定到了 JDK 8:alternatives 只切了 java/javac 命令,JAVA_HOME 仍为空并回落到 /usr/lib/jvm/java(指向 JDK 8),而 JDK 8 的 javac 不认识 --release。完整复现与修复见 5.2 节实测;持久化用 /etc/profile.d/java17.sh(第八章)。
Q5:编译提示 uses or overrides a deprecated API,是哪里过时了?
静态工厂 RandomSource.create(RandomSource, Object, Object...) 在 1.7 已弃用,官方推荐枚举实例方法 RandomSource.MT.create(seed),两者同种子输出完全一致。实测定位与修法同本专栏《Ubuntu 22.04 安装 Apache Commons RNG 指南》第九章 Q4。
Q6:中文输出乱码?
默认 locale 为 ASCII 所致,运行时加 -Dfile.encoding=UTF-8 或调整系统 locale,见第八章。
十、卸载与清理
Commons RNG 无系统级安装,清理即删除工程、jar 与本地仓库缓存。
rm -rf /root/rng-demo /root/rng-jar-run /root/commons-rng-1.7 /root/commons-rng-1.7-bin.tar.gz /root/commons-rng-1.7-bin.tar.gz.sha512
rm -rf /root/.m2/repository/org/apache/commons/commons-rng-client-api /root/.m2/repository/org/apache/commons/commons-rng-core /root/.m2/repository/org/apache/commons/commons-rng-simple /root/.m2/repository/org/apache/commons/commons-rng-sampling /root/.m2/repository/org/apache/commons/commons-rng-bom
rm -f /etc/profile.d/java17.sh
ls /root/rng-demo 2>&1
ls: cannot access '/root/rng-demo': No such file or directory
卸载 JDK 17 与 Maven(先预演确认删除清单,再真正执行):
dnf remove java-17-openjdk-devel maven
# 输出节选(实测首尾)
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
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
adwaita-cursor-theme noarch 3.28.0-2.el8 @appstream 11 M
Is this ok [y/N]:
确认清单无误后输入 y 回车执行,或直接 dnf remove -y java-17-openjdk-devel maven 一键完成。
十一、参考链接
- Apache Commons RNG 官方主页:https://commons.apache.org/proper/commons-rng/
- Apache Commons RNG 官方下载目录:https://downloads.apache.org/commons/rng/
- Commons RNG 1.7 发布说明:https://downloads.apache.org/commons/rng/RELEASE-NOTES.txt
- Maven 中央仓库 commons-rng 坐标:https://repo1.maven.org/maven2/org/apache/commons/commons-rng-simple/
- CentOS Vault 归档说明与镜像:https://mirrors.aliyun.com/centos-vault/ 、https://mirrors.tuna.tsinghua.edu.cn/centos-vault/
- OpenJDK 17 包(CentOS 8.5.2111 vault AppStream):
dnf list available java-17-openjdk-devel