몇 년 전 저는 여러 개의 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