
1. 麒麟V10离线环境部署C/C开发套件的必要性在不少企业级开发场景中出于安全考虑生产环境服务器往往处于完全隔离状态。我去年参与某金融项目时就遇到过开发机无法连接外网的情况。当时为了部署一套完整的C/C编译环境整整折腾了两天。后来在麒麟V10系统上摸索出一套成熟的离线部署方案现在分享给大家。离线部署最大的难点在于依赖关系处理。以GCC为例一个完整的编译工具链涉及数十个依赖包。有次我在测试环境漏装了libmpc-devel结果导致整个编译链无法正常工作。后来发现与其一个个解决依赖不如直接用yumdownloader把整个依赖树打包下载。2. 准备工作获取离线安装包2.1 搭建模拟环境建议先准备一台相同版本的联网麒麟V10机器作为下载机。我习惯用虚拟机来做这个工作具体操作# 检查系统版本 cat /etc/kylin-release # 确认架构 uname -m重要提示一定要确保下载机和目标机的系统版本、架构完全一致。有次我忽略了x86_64和aarch64的区别导致所有rpm包都无法安装。2.2 使用yumdownloader下载完整依赖原始文章提到的基础命令还不够完善这里分享我的完整下载方案# 安装必要工具 sudo yum install -y yum-utils createrepo # 创建下载目录 mkdir -p ~/gcc_offline cd ~/gcc_offline # 下载主包及所有依赖 yumdownloader --resolve --destdir./ gcc gcc-c make cmake # 额外下载常见开发库根据项目需要 yumdownloader --resolve --destdir./ glibc-devel libstdc-devel这个方案比原始方法更全面主要改进有包含了make和cmake等常用工具显式下载了标准库开发包使用destdir参数保持目录整洁3. 离线安装全流程详解3.1 包传输的注意事项原始文章简单提到通过USB或网络共享这里补充几个实用技巧完整性校验传输前建议生成校验文件md5sum *.rpm checksum.md5空间预估完整GCC套件约需要1.5GB空间权限处理如果使用FTP传输注意保持文件权限3.2 安装时的避坑指南在目标机器上的安装操作我推荐使用这个增强版方案# 创建本地yum仓库 createrepo ~/gcc_offline # 添加本地repo配置 cat EOF | sudo tee /etc/yum.repos.d/local_gcc.repo [local-gcc] nameLocal GCC Repository baseurlfile://$(realpath ~/gcc_offline) enabled1 gpgcheck0 EOF # 使用yum安装自动处理依赖 sudo yum install -y gcc gcc-c相比直接使用rpm -ivh这种方法有三大优势自动解决复杂依赖关系方便后续安装其他开发工具支持版本升级和回滚4. 验证与问题排查4.1 基础验证原始文章只检查了版本号实际还需要验证编译功能# 创建测试程序 cat EOF hello.cpp #include iostream int main() { std::cout Offline install works!\n; return 0; } EOF # 编译并运行 g hello.cpp -o hello ./hello4.2 常见问题解决方案问题1缺少libstdc.so.6解决安装libstdc-devel后执行sudo ldconfig问题2GLIBCXX版本过低解决更新gcc后需要重建符号链接find /usr/lib64 -name libstdc.so* | sort5. 进阶配置建议5.1 环境变量优化在~/.bashrc中添加这些配置可以提升开发体验# 编译器优化路径 export CC/usr/bin/gcc export CXX/usr/bin/g export PATH/usr/local/bin:$PATH # 提高编译并行度 export MAKEFLAGS-j$(nproc)5.2 离线文档安装调试时没有网络查文档很痛苦可以提前下载yumdownloader --resolve --destdir./ gcc-docs cpp-docs最后提醒不同项目可能需要额外的开发库。建议根据实际情况提前在联网环境下载好所有可能的依赖包。我在部署Kubernetes相关组件时就额外需要openssl-devel和zlib-devel等20多个依赖包。