119

Amazon Web Services (AWS) offers an officially supported Amazon Machine Image (AMI), but it doesn't indicate which Linux distribution it's based upon.

Is the official Amazon Linux AMI based on another Linux distribution, and if so, which one?

Trevor Sullivan
  • 2,063
  • 3
  • 14
  • 19
  • 7
    Amazon Linux is relatively poorly documented. Because it's somewhat based on Centos sometimes that information works, but there's a lot less information than for say Ubuntu. My prod servers run on AL but I'd use Ubuntu LTS next time. – Tim Aug 22 '16 at 20:02
  • 2
    It's Centos Red Hat Enterprise Linux. Just type uname -m && cat /etc/*release – Wilmer E. Henao May 23 '21 at 03:45

6 Answers6

103

Instead of guessing which version of RHEL a particular distro is based off, just run:

rpm -E %{rhel}

For Amazon Linux 2, this will give you 7.

Danila Vershinin
  • 5,286
  • 5
  • 17
  • 21
  • 4
    this should be the accepted answer. anything else is going to be out of date and this is how you can actually determine the RPM repos you need to use – steveinatorx Mar 31 '20 at 15:59
  • 3
    What does 7 mean? Does a number correspond to a Linux distribution? – Diego Oct 29 '22 at 19:08
34

There's a discussion thread available over on the AWS forums that indicates the officially supported Amazon Linux AMI is not based upon any Linux distribution. Rather, the Amazon Linux AMI is independently maintained image by Amazon.

Trevor Sullivan
  • 2,063
  • 3
  • 14
  • 19
  • 16
    IIRC it started off as a RHEL/CentOS modification. It has changed enough that you can probably call it a separate distro now, but it retains a lot of their legacy - `yum` etc. https://www.google.com/search?q=amazon+linux+centos You'll note that your linked AWS forum thread states `The Amazon Linux AMI is based on RHEL 5.x and parts of RHEL6.` but that was back in 2010. More recently they state `one of the goals of the most current Amazon Linux AMI (2013.09) is to be as compatible as possible with RHEL 6`. – ceejayoz Aug 22 '16 at 19:59
  • 22
    @ceejayoz In 2016, that goal is long gone. Amazon Linux hasn't been compatible with RHEL anything in quite a while. Indeed, here we have at least hundreds of questions from people trying to use packages for RHEL/CentOS on Amazon Linux and them not working, for precisely this reason. – Michael Hampton Aug 22 '16 at 20:03
  • @MichaelHampton 2013 marks about the end of my Amazon Linux experience, so I defer to you there. :-) – ceejayoz Aug 22 '16 at 20:24
  • 1
    The discussion referenced is many years old, and even there the most recent comment (2013) states: " one of the goals of the most current Amazon Linux AMI (2013.09) is to be as compatible as possible with RHEL 6. If there are places in which you find that we are not, please let us know so that we can investigate further." – jeffmcneill Jan 01 '17 at 10:41
  • best Guess is using uname -a returns kernel "amzn1" - centos6, "amzn2" - centos7 ; Notice 4.14.97-74.72.amzn1.x86_64 #1 SMP Tue Feb 5 20:59:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux – wwright Apr 29 '19 at 15:14
28

Seems like it's based on 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 says of "ID_LIKE":

It should list identifiers of operating systems that are closely related to the local operating system in regards to packaging and programming interfaces, for example listing one or more OS identifiers the local OS is a derivative from.

listing one or more OS identifiers the local OS is a derivative from

If you were to look at RHEL/CentOS7 the same file would read:

$ cat /etc/os-release
...
ID_LIKE="fedora"
...

And yet, Amazon Linux still features yum and no dnf in sight; weird. Speculation leads me to support the theory that Amazon has a supported upstream agreement with RH.

That it's based on RHEL 5/6 seems extremely unlikely.

  1. Nobody should be using RHEL5x, because
  2. There are too many drivers and security updates introduced over the last 10 years.

That would be both lazy and stupid; 2 things I wouldn't normally ascribe to Amazon's engineers. One way to determine that would be to isolate something that is only present in the latest version of RHEL7, a driver, kernel security patch, etc. and run the same test on Amazon Linux; it's either present or it's not.

While far less irresponsible, there's no valid reason to even use RHEL6x either.

todd_dsm
  • 496
  • 5
  • 8
  • 2
    A check on my image suggests it uses upstart as init by default, so that would indicate RHEL6 as the basis (as RHEL7 uses systemd). – Jules May 12 '18 at 10:48
  • I didn't check for or notice upstart anywhere. You might be right. I skipped RHEL6 entirely while at another company that only supported suse. – todd_dsm May 15 '18 at 01:23
20

A bit late, but you can run:

cat /proc/version

and will tell you:

Linux version 4.14.173-137.229.amzn2.x86_64 (mockbuild@ip-10-0-1-143) (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 this case.

xmar
  • 419
  • 4
  • 6
8

Based on file structure where instead of /usr/local/bin/composer I have to use /usr/bin/composer it is CentOS 7

2

Its absurd to state that Amazon Linux 2 is not based on any of the popular linux distributions but is an entity of its own. How is someone supposed to install other linux packages that are not certified for Amazon Linux ? So, I have Amazon Linux 2 installed. It seems to be based on RHEL 7. Output of cat /etc/os-release:

NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"

Output of cat /proc/version:

Linux version 4.14.203-156.332.amzn2.x86_64 (mockbuild@ip-10-0-1-132) (gcc version 7.3.1 20180712 (Red Hat 7.3.1-10) (GCC)) #1 SMP Fri Oct 30 19:19:33 UTC 2020