ZBLOG

但是我在麒麟的系统上apt命令都用不了

在麒麟系统(如银河麒麟、中标麒麟等)上无法使用 apt 命令是正常的,因为这类国产操作系统通常基于 RedHat/CentOS 的 RPM 包管理体系(使用 yumdnf),而非 Debian/Ubuntu 的 apt。以下是针对 GLIBC 问题的解决方案和替代操作:


1. 确认系统包管理工具

先检查你的麒麟系统具体版本和对应的包管理器:

  1. cat /etc/os-release # 查看系统信息
  2. which yum || which dnf || which apt # 检查可用包管理器
  • 银河麒麟:通常用 yumdnf
  • 中标麒麟:可能用 yum

2. 安装依赖库(使用正确的包管理器)

方法一:通过 yum/dnf 安装基础开发工具

  1. # CentOS/RedHat 系命令(需 root)
  2. sudo yum install -y gcc-c++ make glibc-devel libstdc++-devel
  3. # (如果 yum 不可用,尝试 dnf)
  4. sudo dnf install -y gcc-c++ make glibc-devel

方法二:手动下载 RPM 包安装

如果默认仓库没有所需版本,从官方下载站获取兼容 RPM:

  1. 查找适用于你的麒麟系统的 GLIBC/RPM:
  2. 手动安装:
    1. sudo rpm -ivh glibc-*.rpm --nodeps --force # (谨慎操作!)

3. (关键)解决 GLIBC_2.33 not found

方案A:静态链接编译

在开发环境中重新编译程序,静态链接 libstdc++:

  1. g++ your_program.cpp -static-libstdc++ -static-libgcc -o output

方案B:使用低版本环境容器

通过 Docker/Podman 运行高 GLIBC 需求的程序:

  1. # Step1: 安装 Docker(若未安装)
  2. sudo yum install -y docker-ce
  3. sudo systemctl start docker
  4. # Step2: 运行 Ubuntu/Debian/Fedora等高版本容器共享文件路径到宿主机
  5. docker run -it --rm \
  6. -v /path/to/host/program:/data \
  7. ubuntu:22.04 /data/your_program

4. (紧急情况)符号链接欺骗(不推荐)

⚠️ 仅限测试环境!强制链接到现有低版本 GLIBC:

  1. sudo ln -sf /lib64/libc.so.6 /lib64/libc.so.6.newver
  2. export LD_LIBRARY_PATH=/lib64:$LD_LIBRARY_PATH

5.联系厂商支持

国产系统通常需要定制化支持:

  1. 提供错误详情给麒麟系统厂商,请求适配补丁。
  2. 更换软件源为官方或国内镜像站(如华为、阿里云镜像)。

总结步骤

1️⃣ 确认包管理工具yum/dnf
2️⃣ 安装开发依赖glibc-devel
3️⃣ 优先静态编译或容器化运行
4️⃣ (最后手段)谨慎升级或符号欺骗

如果仍有问题,请提供以下信息以便更精准帮助: bash uname -a && cat /etc/*release && ldd --version | head -n1


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=23072

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?