Lösung 1:
Anstatt zu raten, auf welcher Version von RHEL eine bestimmte Distribution basiert, führen Sie einfach Folgendes aus:
rpm -E %{rhel}
Für Amazon Linux 2 erhalten Sie 7
.
Lösung 2:
Es gibt einen Diskussionsthread in den AWS-Foren, der darauf hinweist, dass das offiziell unterstützte Amazon Linux AMI nicht auf einer Linux-Distribution basiert. Vielmehr ist das Amazon Linux AMI ein unabhängig gepflegtes Image von Amazon.
Lösung 3:
Scheint auf RHEL zu basieren:
$ 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 sagt von "ID_LIKE":
Es sollte Bezeichner von Betriebssystemen auflisten, die in Bezug auf Paketierung und Programmierschnittstellen eng mit dem lokalen Betriebssystem verwandt sind, z. B. eine oder mehrere Betriebssystembezeichner auflisten, von denen das lokale Betriebssystem abgeleitet ist.
Eine oder mehrere Betriebssystemkennungen auflisten, von denen das lokale Betriebssystem abgeleitet ist
Wenn Sie sich RHEL/CentOS7 ansehen würden, würde die gleiche Datei lauten:
$ cat /etc/os-release
...
ID_LIKE="fedora"
...
Und dennoch bietet Amazon Linux immer noch yum
und kein dnf
Einblick; seltsam. Spekulationen führen mich dazu, die Theorie zu unterstützen, dass Amazon ein unterstütztes hat Upstream-Vereinbarung mit RH.
Dass es auf RHEL 5/6 basiert, erscheint äußerst unwahrscheinlich.
- Niemand sollte RHEL5x verwenden, weil
- In den letzten 10 Jahren wurden zu viele Treiber und Sicherheitsupdates eingeführt.
Das wäre sowohl faul als auch dumm; 2 Dinge, die ich den Ingenieuren von Amazon normalerweise nicht zuschreiben würde. Eine Möglichkeit, dies festzustellen, wäre, etwas zu isolieren, das nur in der neuesten Version von RHEL7 vorhanden ist, einen Treiber, einen Kernel-Sicherheitspatch usw., und denselben Test auf Amazon Linux auszuführen. es ist entweder vorhanden oder nicht.
Obwohl es weitaus weniger verantwortungslos ist, gibt es auch keinen triftigen Grund, RHEL6x zu verwenden.
Lösung 4:
Ein bisschen spät, aber Sie können ausführen:
cat /proc/version
und wird Ihnen sagen:
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
RedHat 7 in diesem Fall.
Lösung 5:
Basierend auf der Dateistruktur, wo ich anstelle von /usr/local/bin/composer /usr/bin/composer verwenden muss, ist es CentOS 7