中科方德(NFSChina)离线安装 RPM 包
系统背景
中科方德是基于 RHEL/CentOS 的国产 Linux 发行版,底层包管理兼容 RPM + yum/dnf,离线安装方法与 RHEL 基本一致,但有几个注意点。
一、查看系统版本
先确认具体版本,因为不同版本的包依赖链不同:
bash
# 查看系统信息
cat /etc/os-release
cat /etc/redhat-release # 兼容命令
uname -r # 内核版本
arch # 架构(x86_64 / aarch64)
二、基本 RPM 安装
bash
# 安装
rpm -ivh package.rpm
# 升级
rpm -Uvh package.rpm
# 批量安装(同目录下所有 rpm)
rpm -ivh *.rpm
# 强制安装(慎用)
rpm -ivh --force --nodeps package.rpm
三、推荐方式:本地 Yum 源(自动解依赖)
步骤 1:准备 RPM 包
在联网的同版本方德系统上下载包及依赖:
bash
# 使用 yumdownloader(需先装 yum-utils)
yum install -y yum-utils
yumdownloader --resolve --destdir=/tmp/rpms/ package-name
# 或者用 repotrack(依赖更完整)
repotrack -p /tmp/rpms/ package-name
# 或者只下载不安装
yum install --downloadonly --downloaddir=/tmp/rpms/ package-name
⚠️ 关键 :下载依赖的机器必须与目标机器同版本同架构,否则依赖版本可能不匹配。
步骤 2:拷贝到离线服务器
bash
# 用 U 盘、内网传输等方式,将 /tmp/rpms/ 拷到离线服务器
# 假设放到 /opt/local-repo/
mkdir -p /opt/local-repo
步骤 3:创建本地仓库
bash
# 安装 createrepo(如果没有,也需要离线带过来)
rpm -ivh createrepo-*.rpm
# 生成仓库元数据
createrepo /opt/local-repo
步骤 4:配置 repo 文件
bash
cat > /etc/yum.repos.d/local.repo << 'EOF'
[local]
name=Local RPM Repository
baseurl=file:///opt/local-repo
enabled=1
gpgcheck=0
EOF
步骤 5:安装
bash
yum clean all
yum makecache
yum install package-name
四、方德系统特殊注意点
1. 方德可能用 dnf 替代 yum
较新版本的方德(基于 RHEL 8+)默认使用 dnf:
bash
# 检查是否有 dnf
which dnf
# 如果有,上述 yum 命令替换为 dnf
dnf install -y dnf-utils
dnf download --resolve --destdir=/tmp/rpms/ package-name
# 本地源安装
dnf clean all
dnf makecache
dnf install package-name
2. 方德自有源可能不可用
方德默认的软件源可能需要授权或内网才能访问,离线环境下确认禁用不可用的源:
bash
# 查看当前源
yum repolist
# 或
dnf repolist
# 临时禁用所有其他源,只用本地源
yum install --disablerepo="*" --enablerepo="local" package-name
3. 国产化环境架构注意
方德常部署在国产 CPU 上,注意架构匹配:
| CPU | 架构 | RPM 后缀 |
|---|---|---|
| 鲲鹏 | aarch64 | .aarch64.rpm |
| 飞腾 | aarch64 | .aarch64.rpm |
| 海光 | x86_64 | .x86_64.rpm |
| 兆芯 | x86_64 | .x86_64.rpm |
| 龙芯 | loongarch64 | .loongarch64.rpm |
bash
# 确认架构后下载对应包
arch
# x86_64 → 下载 .x86_64.rpm
# aarch64 → 下载 .aarch64.rpm
4. SELinux 可能阻止安装
bash
# 查看 SELinux 状态
getenforce
# 临时关闭(安装完成后建议重新开启)
setenforce 0
# 永久关闭(需重启)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
五、完整离线安装流程(速查)
联网同版本机器 离线目标机器
───────────── ────────────
1. yumdownloader --resolve 4. mkdir /opt/local-repo
--destdir=/tmp/rpms/ xxx ↓ 拷贝文件
2. 打包 /tmp/rpms/ ───────────────→ 5. createrepo /opt/local-repo
3. U盘/SCP传输 6. 配置 /etc/yum.repos.d/local.repo
7. yum clean all && yum makecache
8. yum install xxx
六、常见问题排查
| 问题 | 原因 | 解决 |
|---|---|---|
Failed dependencies |
缺依赖包 | 用 yumdownloader --resolve 补全依赖 |
conflicts with file |
文件冲突 | rpm -ivh --force 或先卸载旧版 |
Header V3 RSA/SHA256 Signature |
GPG 签名校验失败 | rpm -ivh --nosignature 或 repo 中设 gpgcheck=0 |
package is already installed |
已装过 | rpm -Uvh 升级 或 rpm -e 卸载后重装 |
createrepo: command not found |
没装 createrepo | 先离线装 createrepo 及其依赖 |
你目前是要在方德上装什么具体的包?告诉我包名和系统架构,我可以帮你查完整的依赖链。