数年前、私はいくつかの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