getconf は 64 ビット システムで 64 ではなく 32 を表示します

getconf は 64 ビット システムで 64 ではなく 32 を表示します

数年前、私はいくつかの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 として報告されているサーバーは 2、3 のみ使用できません。

なぜこのようなことが起こるのか知っている人はいますか? 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

関連情報