Soluzione 1:
Invece di indovinare su quale versione di RHEL si basa una particolare distribuzione, basta eseguire:
rpm -E %{rhel}
Per Amazon Linux 2, questo ti darà 7
.
Soluzione 2:
C'è un thread di discussione disponibile sui forum AWS che indica che l'AMI Amazon Linux ufficialmente supportata non è basata su alcuna distribuzione Linux. Piuttosto, l'AMI Amazon Linux è un'immagine gestita in modo indipendente da Amazon.
Soluzione 3:
Sembra che sia basato su RHEL:
$ cat /etc/os-release
NAME="Amazon Linux AMI"
VERSION="2017.09"
ID="amzn"
ID_LIKE="rhel fedora"
VERSION_ID="2017.09"
PRETTY_NAME="Amazon Linux AMI 2017.09"
ANSI_COLOR="0;33"
CPE_NAME="cpe:/o:amazon:linux:2017.09:ga"
HOME_URL="http://aws.amazon.com/amazon-linux-ami/"
freedesktop dice di "ID_LIKE":
Dovrebbe elencare gli identificatori dei sistemi operativi che sono strettamente correlati al sistema operativo locale per quanto riguarda la creazione di pacchetti e le interfacce di programmazione, ad esempio elencando uno o più identificatori del sistema operativo da cui deriva il sistema operativo locale.
che elenca uno o più identificatori del sistema operativo da cui deriva il sistema operativo locale
Se dovessi guardare RHEL/CentOS7 lo stesso file leggerebbe:
$ cat /etc/os-release
...
ID_LIKE="fedora"
...
Eppure, Amazon Linux presenta ancora yum
e nessun dnf
intuizione; strano. La speculazione mi porta a sostenere la teoria secondo cui Amazon ha un supportato accordo a monte con RH.
Che sia basato su RHEL 5/6 sembra estremamente improbabile.
- Nessuno dovrebbe usare RHEL5x, perché
- Sono stati introdotti troppi driver e aggiornamenti di sicurezza negli ultimi 10 anni.
Sarebbe sia pigro che stupido; 2 cose che normalmente non attribuirei agli ingegneri di Amazon. Un modo per determinarlo sarebbe isolare qualcosa che è presente solo nell'ultima versione di RHEL7, un driver, una patch di sicurezza del kernel, ecc. ed eseguire lo stesso test su Amazon Linux; o è presente o non lo è.
Sebbene sia molto meno irresponsabile, non c'è nemmeno un motivo valido per utilizzare RHEL6x.
Soluzione 4:
Un po' in ritardo, ma puoi eseguire:
cat /proc/version
e ti dirà:
Linux version 4.14.173-137.229.amzn2.x86_64 ([email protected]) (gcc version 7.3.1 20180712 (Red Hat 7.3.1-6) (GCC)) #1 SMP Wed Apr 1 18:06:08 UTC 2020
Red Hat 7 in questo caso.
Soluzione 5:
Basato sulla struttura del file dove invece di /usr/local/bin/composer devo usare /usr/bin/composer è CentOS 7