getconf 在 64 位系统上显示 32 而不是 64

getconf 在 64 位系统上显示 32 而不是 64

几年前,我将几台 32 位 Linode 服务器切换到 64 位内核(按照此处的说明https://www.linode.com/docs/platform/disk-images/switch-to-a-64-bit-linux-kernel)。从那时起,它们中的大多数都以 64 位运行。命令输出在这些 64 位上显示以下内容:

[root@host1 ~]# getconf LONG_BIT
64
[root@host1 ~]# uname -a
Linux host1.mydomain.co.uk 4.6.5-x86_64-linode71 #2 SMP Fri Jul 29 16:16:25 EDT 2016 x86_64 x86_64 x86_64 GNU/Linux

但是一些同样采用 64 位内核的服务器从 getconf 显示为 32:

[root@host2 ~]# getconf LONG_BIT
32
[root@host2 ~]# uname -a
Linux host2.mydomain.co.uk 4.9.15-x86_64-linode81 #1 SMP Fri Mar 17 09:47:36 EDT 2017 x86_64 x86_64 x86_64 GNU/Linux

Linode 暗示也许某个包在某个时候改变了它。

我认为问题是它阻止我通过 yum 安装一些软件包。例如,在 64 位服务器上,我可以安装 PHP7,但在 32 位服务器上,我无法安装安装 PHP7 所需的存储库,它们在 32 位服务器上不存在。

服务器应该非常相似。我几年前将它们设置为 32 位,几年前将它们全部更改为 64 位内核,但直到最近才意识到我的大多数服务器可以安装 PHP7,但只有少数服务器不能安装,因为它们报告为 32 位。

有谁知道为什么会发生这种情况? getconf 的输出可以改变吗?

32位服务器getconf目录文件:

[root@host2 ~]# ls -l /usr/libexec/getconf
total 96
lrwxrwxrwx 1 root root    20 Jun 11  2016 default -> POSIX_V6_ILP32_OFF32
-rwxr-xr-x 4 root root 23740 May 10  2016 POSIX_V6_ILP32_OFF32
-rwxr-xr-x 4 root root 23740 May 10  2016 POSIX_V6_ILP32_OFFBIG
-rwxr-xr-x 4 root root 23740 May 10  2016 POSIX_V7_ILP32_OFF32
-rwxr-xr-x 4 root root 23740 May 10  2016 POSIX_V7_ILP32_OFFBIG

64位服务器getconf目录文件:

[root@host1 ~]# ls -l /usr/libexec/getconf
total 48
lrwxrwxrwx 1 root root    19 Apr 25 10:56 default -> POSIX_V6_LP64_OFF64
-rwxr-xr-x 2 root root 22808 Apr 11 16:49 POSIX_V6_LP64_OFF64
-rwxr-xr-x 2 root root 22808 Apr 11 16:49 POSIX_V7_LP64_OFF64

相关内容