资讯动态

Linux系统架构与Ubuntu版本号查询:uname 与 os-release

发布时间:2026/9/18 8:03:00 来源:尧图企业网站定制
1. 先把两件事拆开架构和版本号根本不是一回事1.1 一个真实翻车现场前阵子帮人处理一台二手服务器对方在云厂商那儿买了个 ARM 实例准备跑一个数据同步工具。他下载完安装包解压、赋权、执行终端直接甩回来一句cannot execute binary file: Exec format error。他第一反应是包坏了重新下了三遍换了两个下载源结果一模一样。最后我让他敲了条uname -m输出aarch64——而他下载的包里装的是 x86_64 的二进制。架构不匹配再怎么重下都没用。这个场景在刚接触 Linux 的人身上特别常见因为大家搜索查看Linux系统架构的命令的时候往往是在已经出问题之后。晚一步查就得浪费几个小时。所以我把这件事的顺序倒过来讲先搞清楚为什么要查再讲用什么查。系统架构说白了就是 CPU 认得的语言。x86_64 的指令集和 aarch64 的指令集不通用编译出来的机器码放在对方平台上就是一堆乱码。而 Ubuntu 版本号是另一条线它决定的是软件包管理器的源地址、glibc 的版本、仓库里有哪些包可用。举个直观的例子你在 Ubuntu 18.04 上想装一个官方只提供 22.04 包的软件架构完全对得上但依赖库版本差一截照样装不上。所以这两件事必须用不同的命令去查别指望一条命令包打天下。1.2 架构查错了代价往往在部署阶段才爆发很多人觉得架构这事无所谓反正apt install会自动选对包。这话在纯 apt 场景下大体成立因为 apt 会根据dpkg --print-architecture去对应的仓库拉包。但只要脱离 apt风险立刻上来手动下载的 tar.gz、第三方厂商给的 deb、Docker 镜像、编译好的 Python wheel、Java 里带 native 库的 jar 包这些都不一定帮你做架构判断。尤其是容器场景你在 x86 笔记本上docker build出来的镜像推到 ARM 服务器上跑报错信息往往藏在日志深处不看uname -m很难定位。还有一种更隐蔽的情况你用的是 64 位系统但装的某个二进制是 32 位的。这种在 x86_64 上通常能靠兼容层跑起来但一旦缺了对应的 32 位运行库就会报No such file or directory——注意这个报错看起来像是文件不存在实际上文件明明在那儿只是它的解释器/依赖找不到。这个坑我在给老系统做迁移时踩过至少两次后来养成习惯拿到任何陌生的可执行文件先file一下看架构。1.3 版本号查错了麻烦藏在依赖链里Ubuntu 的版本号是22.04、24.04这种形式前两位是年份后两位是月份代表这个长期支持版本发布的年月。但真正影响你装软件的是它的代号比如 22.04 叫 jammy24.04 叫 noble20.04 叫 focal。你在配置 apt 源、加 PPA、写 CI 脚本的时候用的都是代号而不是数字比如deb http://xxx jammy main。如果有人把代号写错apt 更新时会直接报 404或者更坏的情况——拉到了不匹配的包装完之后系统里一堆依赖半死不活。这里有个我特别想强调的区别uname -r输出的是内核版本比如5.15.0-91-generic这是 Linux 内核自己的编号跟 Ubuntu 发行版号完全不是一套体系。同一个 Ubuntu 22.04打了不同的内核更新uname -r可以差出十几个小版本。而 Ubuntu 22.04 也可能被人升级过 HWE 内核跑到 6.5 甚至 6.8 上去。所以有人拿uname -r当发行版版本号报给软件厂商厂商那边一看就懵了。这两个数必须分开报。1.4 两件事各自的正确判断入口简单收一下判断系统架构核心命令是uname -m辅以lscpu、dpkg --print-architecture、getconf LONG_BIT、file。判断发行版版本核心来源是/etc/os-release辅以lsb_release -a、hostnamectl、/etc/issue。下面几节我就按这个分组逐个拆开讲清楚每个命令的输出到底是什么意思、什么场景该用哪一个。2. 查看 Linux 系统架构这几个命令到底怎么用2.1 uname -m最快的一刀uname -m是最常用的入口-m是 machine hardware name 的缩写。在一台普通的 Intel/AMD 服务器上它通常输出x86_64在树莓派 4B 上输出aarch64在 32 位 ARM 设备上输出armv7l在一些国产 ARM 服务器上同样是aarch64在 IBM 的 Power 机器上输出ppc64le注意这里很多人会把 ppc 打成 pcc其实是 PowerPC 的缩写le 表示小端。这里有个细节值得说uname -m反映的是内核所运行的架构而不是你手上这颗 CPU 的全部能力。比如你在 64 位 CPU 上装了一个 32 位的 Linux 系统uname -m会输出i686或i386不会告诉你硬件其实支持 64 位。所以如果你要判断这台机器能不能跑 64 位程序光看uname -m不够还需要配合lscpu里的 op-mode 字段或getconf LONG_BIT。另外要提醒一点uname -m在极少数精简系统或容器里可能返回unknown这时它其实只是没拿到硬件信息不代表架构有问题。碰到这种情况换/proc/cpuinfo或lscpu来交叉验证。2.2 uname 家族的其他参数各自管什么uname -a是全都给我一条命令把内核名、主机名、内核版本、内核编译时间、架构、处理器类型、操作系统名全打出来。日常排查我就喜欢直接uname -a信息密度高一眼能看出大概。但要理解里面每一项的含义不然容易误读。uname -r输出内核发行版本像5.15.0-91-generic这是你更新内核后经常要对比的字段。uname -s输出内核名Linux 系统基本都是Linux。uname -n输出主机名等价于hostname。uname -v输出内核的编译版本信息格式因发行版而异Ubuntu 上常见#101-Ubuntu SMP Tue Nov 14 ...这种。uname -p在 x86 上经常返回unknown因为现代内核不再往里填处理器类型了在部分 ARM 平台上会返回aarch64或armv7l。所以-p不能作为判断架构的主依据-m才是。我自己常用的组合是uname -mrs输出一行像Linux 5.15.0-91-generic x86_64写工单、留记录的时候非常省事。2.3 arch 与 uname -m 的关系arch这条命令输出和uname -m一模一样。它的实现其实就是一个简化包装专门给只想看架构不想记参数的人用。所以在脚本里用哪个都行arch更短更好记。但注意一点某些极简容器比如基于 busybox 的镜像里arch可能不存在而uname一般都有反过来极少数只装了 coreutils 的裁剪环境里uname -m也有。所以脚本里更稳妥的写法是用uname -m。2.4 lscpu一次把架构、位宽和 CPU 特性看清楚lscpu是我最推荐新手去学的一条命令因为它把架构这件事拆得最细。输出里几个字段值得重点看Architecture:显示 CPU 架构x86_64 或 aarch64跟uname -m一致。CPU op-mode(s):x86 上通常显示32-bit, 64-bit说明这颗 CPU 两种位宽都支持但系统跑的是哪种要看下面的位宽。Byte Order:显示Little Endian或Big Endian这决定二进制数据的字节序跨平台传数据时会用到。CPU(s):逻辑核心总数包括超线程。Model name:CPU 具体型号比如Intel(R) Xeon(R) Gold 6248R CPU 3.00GHz。Virtualization:显示VT-x或AMD-V或ARM说明支持哪种虚拟化扩展。以 x86 为例lscpu里还有一个Flags字段有些版本是单独列在lscpu | grep Flags里面如果出现lm代表 Long Mode也就是这颗 CPU 支持 64 位。如果只出现i686相关而没有lm那基本可以判断是纯 32 位环境。ARM 平台上看的是aarch64或armv8相关标记以及asimd、crc32这类扩展指令。2.5 dpkg --print-architecture发行版自己的命名体系这条命令只在 Debian/Ubuntu 系里存在它返回的是发行版命名规范下的架构名和uname -m用的内核命名不是一套。看下面这张对照表就明白了内核命名uname -mDebian/Ubuntu 命名dpkg常见设备x86_64amd64绝大多数服务器、PCaarch64arm64树莓派 4/5、ARM 服务器、M 系列 Mac 的虚拟机armv7l / armhfarmhf32 位 ARM 设备i686i386老旧 32 位 x86ppc64leppc64elIBM POWER 小端riscv64riscv64RISC-V 开发板s390xs390xIBM 大型机为什么这个区别重要因为你在写 Dockerfile、配置 apt 源、下载.deb包、给 CI 传构建参数的时候用的往往是 amd64/arm64 这一套而排查内核、编译驱动、看/proc的时候用的是 x86_64/aarch64 这一套。两套名字混用是新手最容易犯的错也是自动化脚本里最常见的 bug 来源。我见过有人在if [ $(uname -m) arm64 ]里判断架构永远为假因为uname -m返回的是aarch64。提示脚本里做架构判断建议用dpkg --print-architecture得到 amd64/arm64 这套统一命名尤其在你要决定下载哪个包的时候。2.6 /proc/cpuinfo 与 getconf LONG_BIT交叉验证的两个补充/proc/cpuinfo是个虚拟文件内容由内核动态生成里面的信息比lscpu更原始但更杂。x86 上每个逻辑 CPU 一段字段包括vendor_idGenuineIntel 或 AuthenticAMD、model name、flags、cpu MHz等。ARM 上看的是CPU implementer比如 0x41 代表 ARM0x43 代表 Cavium、CPU part型号编号和Features。最常用的两个用法是grep model name /proc/cpuinfo | head -1看 CPU 型号以及grep -c ^processor /proc/cpuinfo数逻辑核心数。不过在支持超线程的机器上这个数会包含超线程跟物理核心数不是一回事。要看物理核心用lscpu里的Core(s) per socket乘以Socket(s)。getconf LONG_BIT干脆利落直接返回 32 或 64告诉你当前用户态程序默认跑在几位下。这个值在判断能不能装 64 位软件时非常好用而且几乎所有 POSIX 系统都有不依赖 GNU coreutils。还有一个file /bin/ls也能看输出里会带x86-64、ARM aarch64这种架构标识适合验证手上某个二进制到底是对应哪个平台的。3. 查看 Ubuntu 版本号几个来源的差别和适用场景3.1 /etc/os-release脚本里最该用的一个/etc/os-release是 systemd 时代的标准文件几乎所有现代发行版都提供而且不依赖任何额外软件包容器镜像里也常驻。内容长这样$ cat /etc/os-release PRETTY_NAMEUbuntu 22.04.4 LTS NAMEUbuntu VERSION_ID22.04 VERSION22.04.4 LTS (Jammy Jellyfish) VERSION_CODENAMEjammy IDubuntu ID_LIKEdebian HOME_URLhttps://www.ubuntu.com/ UBUNTU_CODENAMEjammy要拿版本号最稳的写法是source /etc/os-release然后直接用$VERSION_ID或者一行命令. /etc/os-release echo $VERSION_ID。要拿代号就用$VERSION_CODENAME。ID字段判断是不是 Ubuntu值就是ubuntuID_LIKE是debian说明它和 Debian 的包管理体系兼容。写跨发行版脚本的时候用ID做分支判断比lsb_release靠谱得多因为后者可能没装。注意/etc/os-release里的NAME是发行版名VERSION_ID是纯数字版本VERSION_CODENAME是代号这三个经常被混淆。配置 apt 源要用代号给厂商报版本要用 VERSION_ID。3.2 lsb_release -a老牌命令但不保证存在lsb_release -a输出很友好四行分别是 Distributor ID、Description、Release、Codename。看起来很像/etc/os-release但它的数据实际上可能来自/etc/lsb-release或/usr/lib/os-release不同版本行为有差异。它最大的问题是不保证装好。lsb-release这个包在很多精简镜像、Docker 基础镜像里默认没装跑起来直接报command not found。所以如果你要写一个能到处跑的脚本不要依赖它。真要用先判断command -v lsb_release /dev/null 21 || apt-get install -y lsb-release但这又引入了安装依赖很多离线环境根本装不了。lsb_release -a里最重要的字段是 Codename也就是 jammy/noble/focal 这种。还有lsb_release -cs直接输出代号-rs直接输出版本号写脚本的时候更省事。3.3 /etc/issue 与 /etc/lsb-release可以看但别全信/etc/issue就是登录时欢迎信息里那一行内容通常像Ubuntu 22.04.4 LTS \n \l。它能快速告诉你大致版本但注意这个文件可以被人手动改也可能因为容器镜像裁剪而内容为空或者过时。用它来看一眼没问题用它来做判断不安全。/etc/lsb-release和/etc/os-release结构类似也是 shell 变量形式但在更新的 Ubuntu 上它可能是/etc/os-release的一个软链接或副本。实际排查中我一般优先看/etc/os-release只有在很老的系统Ubuntu 12.04 那种上才优先用lsb_release。3.4 hostnamectl一条命令把版本、内核、架构全给你hostnamectl依赖 systemdUbuntu 16.04 以后默认都有。它输出的内容刚好覆盖了本文讲的大部分字段$ hostnamectl Static hostname: dev-node-01 Icon name: computer-vm Chassis: vm Machine ID: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Boot ID: yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy Virtualization: kvm Operating System: Ubuntu 22.04.4 LTS Kernel: Linux 5.15.0-91-generic Architecture: x86-64这一屏里同时有操作系统版本、内核版本和架构对于只想一眼看全的人来说极其友好。不过注意Architecture那一栏用的是x86-64带横杠的写法跟uname -m的x86_64下划线写法不一样做字符串比较的时候别踩这个坑。另外容器里跑hostnamectl有可能报Failed to connect to bus因为容器通常没起 systemd这时候还是回到/etc/os-release和uname。3.5 内核版本 5.15.0-91-generic 怎么读这个字符串分成四段5是主版本15是次版本0是修订号-91是发行版自己的补丁序号-generic是内核 flavour。Ubuntu 官方仓库里主要有generic通用、lowlatency低延迟给音频/实时用、aws/azure/gcp云厂商定制、-hwe-22.04硬件启用用于较新硬件这些 flavour。判断内核和发行版的对应关系Ubuntu 有个大致的规律20.04 初期是 5.4后来 HWE 推到 5.1522.04 初期是 5.15HWE 能到 6.5/6.824.04 起步是 6.8。所以看到5.15.0-xx-generic时系统可能是 22.04也可能是升级过 HWE 的 20.04——这就是为什么不能靠内核版本反推发行版版本两者必须分开查。4. 实操写一个一键巡检脚本把信息全查出来4.1 脚本要输出哪些字段先想清楚与其每次登录都敲七八条命令不如写一个脚本登录就跑一下。字段我按运维报障的习惯设计成三组第一组是身份信息主机名、当前用户、运行时间、虚拟化类型。第二组是系统信息发行版名称、发行版版本号、发行版代号、内核版本、系统架构同时给 uname 命名和 dpkg 命名两套。第三组是硬件信息位宽、CPU 型号、物理核心数、逻辑核心数、内存总量、根分区剩余空间。这么设计的原因是我经常要把这类信息贴到工单里给上游厂商字段齐全能省掉好几轮往返问询。而且这些字段各有各的采集方式写脚本的过程本身就是一次对哪个命令看哪个值的复习。4.2 完整脚本与逐段说明#!/usr/bin/env bash # sysinfo.sh - 一键巡检 Linux 系统架构与发行版信息 # 用法: bash sysinfo.sh set -u # 遇到未定义变量报错避免变量名打错时静默通过 # ---------- 1. 身份信息 ---------- HOSTNAME_V$(hostname) USER_V$(whoami) UPTIME_V$(uptime -p 2/dev/null || uptime) # 虚拟化类型systemd-detect-virt 在容器里会输出 docker/lxc/podman 等 if command -v systemd-detect-virt /dev/null 21; then VIRT_V$(systemd-detect-virt 2/dev/null || echo unknown) else VIRT_Vunknown fi # ---------- 2. 发行版信息 ---------- # 优先读 /etc/os-release几乎所有发行版和容器都有 if [ -r /etc/os-release ]; then . /etc/os-release OS_NAME${NAME:-unknown} OS_VER${VERSION_ID:-unknown} OS_CODE${VERSION_CODENAME:-unknown} else OS_NAMEunknown; OS_VERunknown; OS_CODEunknown fi # ---------- 3. 内核与架构 ---------- KERNEL_V$(uname -r) ARCH_UNAME$(uname -m) # dpkg 命名架构仅 Debian/Ubuntu 系可用 if command -v dpkg /dev/null 21; then ARCH_DPKG$(dpkg --print-architecture 2/dev/null || echo unknown) else # 非 dpkg 系用 rpm 兜底 ARCH_DPKG$(rpm --eval %{_arch} 2/dev/null || echo unknown) fi # 用户态位宽 LONG_BIT$(getconf LONG_BIT 2/dev/null || echo unknown) # ---------- 4. CPU 与内存 ---------- CPU_MODEL$(awk -F: /model name/ {gsub(/^ /,,$2); print $2; exit} /proc/cpuinfo) [ -z $CPU_MODEL ] CPU_MODEL$(awk -F: /Hardware|Model/ {gsub(/^ /,,$2); print $2; exit} /proc/cpuinfo) [ -z $CPU_MODEL ] CPU_MODELunknown CPU_LOGICAL$(nproc 2/dev/null || grep -c ^processor /proc/cpuinfo) # 物理核心 每槽核心数 × 槽数lscpu 的字段名在不同版本略有差异做兜底 CPU_PHYS$(lscpu 2/dev/null | awk -F: /^Core\(s\) per socket/ {gsub(/ /,,$2); c$2} /^Socket\(s\)/ {gsub(/ /,,$2); s$2} END {if (c s) print c*s; else print unknown}) MEM_TOTAL$(awk /MemTotal/ {printf %.1f GB, $2/1024/1024} /proc/meminfo) DISK_ROOT$(df -h / | awk NR2 {print $4 可用 / $2 总计}) # ---------- 5. 输出 ---------- cat EOF 主机名 : ${HOSTNAME_V} 当前用户 : ${USER_V} 运行时长 : ${UPTIME_V} 虚拟化类型 : ${VIRT_V} -------------------------------------------- 发行版 : ${OS_NAME} 版本号 : ${OS_VER} 版本代号 : ${OS_CODE} 内核版本 : ${KERNEL_V} -------------------------------------------- 架构(uname) : ${ARCH_UNAME} 架构(dpkg) : ${ARCH_DPKG} 用户态位宽 : ${LONG_BIT} 位 -------------------------------------------- CPU 型号 : ${CPU_MODEL} 物理核心 : ${CPU_PHYS} 逻辑核心 : ${CPU_LOGICAL} 内存总量 : ${MEM_TOTAL} 根分区 : ${DISK_ROOT} EOF这段脚本里有几个地方是刻意做的加固值得单独说。第一set -u让未定义变量直接报错防止变量名拼错后输出一片空白你还以为系统信息为空。第二判断命令是否存在用command -v xxx /dev/null 21而不是直接调用因为dpkg、rpm、systemd-detect-virt、nproc都可能在特定环境里缺席。第三读/proc/cpuinfo时给 ARM 平台留了Hardware和Model的兜底因为 ARM 的 cpuinfo 里没有model name这个字段直接 grep 会返回空。第四lscpu解析时做了空值保护避免因为字段差异导致除零或空字符串参与乘法。4.3 输出示例与结果怎么读在一台 Ubuntu 22.04 的 x86 虚拟机上跑出来是这样 主机名 : dev-node-01 当前用户 : deploy 运行时长 : up 12 days, 3 hours, 21 minutes 虚拟化类型 : kvm -------------------------------------------- 发行版 : Ubuntu 版本号 : 22.04 版本代号 : jammy 内核版本 : 5.15.0-91-generic -------------------------------------------- 架构(uname) : x86_64 架构(dpkg) : amd64 用户态位宽 : 64 位 -------------------------------------------- CPU 型号 : Intel(R) Xeon(R) Gold 6248R CPU 3.00GHz 物理核心 : 8 逻辑核心 : 16 内存总量 : 31.3 GB 根分区 : 42G 可用 / 98G 总计 看这份输出几个关键点要对上架构(uname)是x86_64架构(dpkg)是amd64这两个是同一颗 CPU 的两套命名不是矛盾。用户态位宽是 64说明程序跑在 64 位模式下。逻辑核心是物理核心的两倍说明开了超线程。虚拟化类型是 kvm说明这是台虚拟机而不是物理机。如果是在树莓派上跑输出会变成aarch64/arm64内核大概是6.1.x或6.6.x虚拟化类型可能是none。在容器里跑虚拟化类型会是docker或podman而且根分区的容量可能只是容器 overlay 层的大小跟宿主机磁盘不是一回事这一点在排查磁盘告警时要特别注意。5. 常见坑与排查这些报错我基本都踩过5.1 架构标识符对照表混用必出问题下面这张表我建议直接存进笔记写脚本、配 CI、下载包的时候随时对场景x86 64位ARM 64位ARM 32位uname -mx86_64aarch64armv7l / armv6ldpkg --print-architectureamd64arm64armhfDocker--platformlinux/amd64linux/arm64linux/arm/v7Go 的GOARCHamd64arm64armRust targetx86_64-unknown-linux-gnuaarch64-unknown-linux-gnuarmv7-unknown-linux-gnueabihfPython wheel tagmanylinux_x86_64manylinux_aarch64manylinux_armv7l最常出问题的是 Docker 和 Go 这两列。Docker 用的是linux/amd64这种带斜杠的格式Go 用的是amd64都跟uname -m的x86_64不一样。写脚本时如果拿uname -m的值直接拼到 Docker 的--platform参数里会直接报invalid platform。5.2 容器和精简环境里的坑容器里查架构和版本有几个经典问题。第一lsb_release大概率没装报command not found这时候用/etc/os-release。第二hostnamectl可能报Failed to connect to bus: No such file or directory因为容器里没有 systemd 的 dbus忽略它改用uname和/etc/os-release。第三/etc/issue内容可能是空的特别是 Alpine 或 Distroless 镜像因为构建时被裁掉了。第四/proc/cpuinfo在容器里看到的是宿主机的 CPU 信息不是容器的限制所以nproc可能返回宿主机全部核心数而不是你--cpus限制后的数量做性能调优时别被这个误导。还有一个容易忽略的点32 位容器跑在 64 位宿主机上时容器内的uname -m会显示x86_64因为内核是 64 位的但getconf LONG_BIT会返回 32。判断容器自己是几位要看后者。这个组合我第一次碰到时愣了十几秒。5.3 常见问题速查表现象可能原因排查/解决Exec format error二进制架构与系统不符file 二进制对比uname -mcommand not found: lsb_release精简镜像未装 lsb-release改用/etc/os-releasedpkg: not found非 Debian 系或极简容器改用uname -m或rpm --eval %{_arch}uname -m返回 unknown内核未提供硬件信息用lscpu或/proc/cpuinfo交叉验证lscpu无输出未装 util-linux 或容器裁剪apt install util-linux或用/proc/cpuinfo判断架构的脚本分支永远走不进去拿aarch64比arm64统一用dpkg --print-architecture取值hostnamectl报 dbus 错误容器无 systemd忽略改用/etc/os-releaseuname磁盘显示很小容器的 overlay 层看宿主机磁盘不要在容器里判断根分区容量5.4 几条踩坑心得第一条别用uname -p判断架构它在大多数现代 x86 系统上返回unknown比不用还容易误导。第二条写跨平台脚本时架构判断要同时考虑amd64/x86_64两种写法最省事的做法是定义一个小函数做归一化把x86_64|x86-64|amd64都映射成amd64把aarch64|arm64都映射成arm64后面统一用归一化后的值做分支判断。这个函数我放到任何一个部署脚本里都管用能省掉大量在 A 机器好使、在 B 机器失效的诡异问题。第三条Ubuntu 版本号在报障时一定要给完整四位数比如22.04.4别只给22.04。因为 22.04 从 22.04.0 到 22.04.4内核和部分库的补丁级别差异不小厂商判断问题时会依赖这个小数点后的位。要拿完整版本可以用lsb_release -ds或读/etc/os-release的VERSION字段而不是VERSION_ID后者只有22.04。第四条如果要去一台完全陌生的机器上做事第一件事就是跑一遍我上面那个脚本把输出存成文件带在身上。这个习惯我坚持了好几年出问题时能立刻对照是环境变了还是程序变了省下的时间远比写脚本花的时间多。真到异地机房、离线环境、客户内网这种不能随便联网查资料的地方它就是你手上最靠谱的一份环境档案。第五条遇到国产 ARM 服务器或者信创环境uname -m基本都返回aarch64但dpkg --print-architecture或者对应包管理器给出的名字可能是arm64或aarch64具体要看发行版。下载软件包之前最好先去官方发布页确认它用的是哪套命名别照着uname -m的输出直接拼 URL很容易 404。最后再补一句关于ppc的IBM Power 系列常见的是ppc64le小端架构跟ppc64大端不通用。如果某台机器的uname -m输出ppc64le说明它是小端 Power装软件时要挑ppc64el命名的包。这一路架构虽然少见于普通业务环境但在一些传统行业的核心系统里仍然存在碰上时别急着当成 x86 处理。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价