Please upgrade to Amazon Linux AMI 2015.03 from earlier versions!

While older versions of the AMI and its packages will continue to be available for launch in Amazon EC2 even as new Amazon Linux AMI versions are released, we encourage users to migrate to the latest version of the AMI and to keep their systems updated. In some cases, customers seeking support for an older version of the Amazon Linux AMI through AWS Support may be asked to move to newer versions as part of the support process.

To upgrade to Amazon Linux AMI 2015.03 from 2011.09 or later, run sudo yum update. When the upgrade is complete, reboot your instance.

Remember that the Amazon Linux AMI repository structure is configured to deliver a continuous flow of updates that allow you to roll from one version of the Amazon Linux AMI to the next. Please consult our lock-on-launch FAQ for a discussion of how you can lock an instance (either a new launch or already running) to a particular version of the Amazon Linux AMI repositories.

Python 2.7 is now used for the core system packages, including yum and cloud-init.

We've added Python 2.7 support for all of our existing Python 2.6 modules.  For a full list, use yum's search command:

yum search python27
yum search python26

/usr/bin/python is controlled by alternatives, and can be set to either 2.7 or 2.6:

Default to 2.7: sudo alternatives --set python /usr/bin/python2.7
Default to 2.6: sudo alternatives --set python /usr/bin/python2.6

If you want maximum compatibility with EPEL 6, we recommend installing the python26 package and setting it as your default using the command above.  This will happen automatically when updating from a previous Amazon Linux AMI release.

To simplify the process of installing unpackaged dependencies, pip and virtualenv are installed by default for Python 2.7 on 2015.03 AMIs.  If a module you want is not provided in our repositories (use the search commands above to tell) then you have several options, outlined below.

These examples assume you've installed python27-pip and python27-virtualenv or that you have started with a 2015.03 AMI where those packages are included by default.

  • To install a package system-wide without changing your default Python interpreter:
    1. sudo pip-2.7 install modulename
  • To install a package system-wide after you've changed your default with alternatives:
    1. sudo pip install modulename
  • To install a package in a virtualenv so that it doesn't impact your system python:
    1. virtualenv-2.7 myproject && cd myproject
    2. source bin/activate
    3. pip install modulename

As part of our improvements to the Python experience, we've added Python 3.4 to our repositories with the 2015.03 release.  Python 3.4 can be managed the same way described above, using pip and virtualenv to install dependencies.

Example commands:

  • yum search python34
  • sudo yum install python34-virtualenv
  • sudo alternatives --set python /usr/bin/python3.4
  • virtualenv-3.4 myproject

Python 2.6, 2.7, and 3.4 can all be installed on your system simultaneously, with /usr/bin/python controlled by alternatives.  Python 2.7 will remain the version used by system tools.

We moved to the long-term-supported 3.14 kernel with our 2014.03 Amazon Linux AMI release, and we continue to track that kernel in 2015.03.

On our G2 AMIs -- Amazon Linux AMI with NVIDIA GRID GPU Driver -- the nvidia package is now DKMS-enabled.  Updating to a new kernel will trigger a nvidia module build for both the running kernel and the newly-installed kernel.  The modules will be loaded for the running kernel with no need to reboot and will be loaded with a new kernel when you choose to reboot into it.

To see the current state of your DKMS-managed kernel modules run sudo dkms status.

While Ruby 2.0 remains our default Ruby interpreter, we have added ruby22 packages to this Amazon Linux AMI release.

Also, we have updated our versions of Ruby to the latest upstream patch levels:

ruby19-1.9.3.551
ruby20-2.0.0.643
ruby21-2.1.5
ruby22-2.2.1

Based on customer requests, PHP 5.6 is now available in the Amazon Linux AMI repositories as php56. PHP 5.5 and PHP 5.6 are able to be installed in parallel, and the version in use is controlled by alternatives.  It is important to note that PHP 5.6 has the highest priority.  If you have both versions installed, PHP 5.6 will be the default.

If you want to ensure that your environment will continue to use PHP 5.5 even after installing PHP 5.6, run sudo alternatives --set php /usr/bin/php-5.5 or run sudo alternatives --config php to set the default interactively.

PHP 5.5 and PHP 5.6 each maintain their own configuration files, so changes made to PHP 5.6 will not be applied to PHP 5.5 (and vice versa).

It's been a year since we introduced Docker to the Amazon Linux AMI repositories, and we continue to follow the Docker upstream closely.  Docker 1.5 is now available.  The upstream release notes have much more information about new features in Docker 1.5.

A frequent customer request has been Puppet 3 support in the Amazon Linux AMI, and it's now available in the repositories as puppet3.  This addition includes facter2 and hiera1.  These new packages all use Ruby 2.0 while the older Puppet 2 packages (including facter 1) continue to require Ruby 1.8.  The Puppet 2 and Puppet 3 packages conflict with each other, as do the facter 1 and facter 2 packages, meaning they cannot be installed at the same time.

We've included a preview of the Rust programming language with our 2015.03 release.  This preview is based on the 2015-03-09 sources with stabilized modules.  Rust is scheduled for final release upstream in May 2015, and we plan on packaging Cargo and updating Rust as the release date approaches.

You can install the Rust compiler by running sudo yum --enablerepo=amzn-preview install rust.

As announced in our 2014.09 release notes, we are no longer producing new 32-bit AMIs.

We are still producing 32-bit packages for existing customers (those using 32-bit AMIs from 2014.09 and earlier).

New customers should start with 64-bit AMIs, and we encourage existing customers to move to 64-bit as soon as possible.

As announced in our 2014.09 release notes, we are no longer producing new "GPU" AMIs for the CG1 instance type.

We are still providing package updates for existing customers (those using GPU AMIs from 2014.09 and earlier)

We recommend that customers migrate to the G2 instance type and the Amazon Linux AMI with NVIDIA GRID GPU Driver.

Many of our packages have been re-synced to newer upstream versions.  Some of the more popular packages in 2015.03 are:

aws-cli-1.7.14-1.8
bash-4.1.2-15.24
curl-7.40.0-1.49
docker-1.5.0-1.8
fortune-mod-1.99.1-20.3
git-2.1.0-1.38
glibc-2.17-55.140
gnutls-2.8.5-14.13
httpd24-2.4.12-1.60
java-1.7.0-openjdk-1.7.0.75-2
java-1.8.0-openjdk-1.8.0.31-2
kernel-3.14.35-28.38
mysql55-5.5.42
nethack-3.4.3-32.3
nginx-1.6.2-1.23
nss-3.16.2.3-2.63
openssh-6.2p2-8.43
openssl-1.0.1k-1.84
php54-5.4.38-1.66
php55-5.5.22-1.98
php56-5.6.6-1.109
php-amazon-sdk2-2.7.22-1.2
pngcrush-1.7.82-1.8
postgresql92-9.2.10
postgresql93-9.3.6
puppet3-3.7.4-1.11
python-boto-2.36.0-1.6
python-botocore-0.95.0-1.6
python27-2.7.9-4.114
python34-3.4.3-1.29
rpm-4.11.2-2.63
ruby19-1.9.3.551-32.64
ruby20-2.0.0.643-1.21
ruby21-2.1.5-1.15
ruby22-2.2.1-1.4
subversion-1.8.10-1.47
systemtap-2.5-3.26
tomcat6-6.0.43-1.2
tomcat7-7.0.59-1.7
tomcat8-8.0.20-1.52
vim-7.4.160-1.31

This compatibility table shows which Amazon Linux AMI flavors are recommended for each EC2 instance type.

The Amazon Linux AMI FAQs is updated with both general and technical topics.

We use the Amazon EC2 Discussion Forum for bug reports, feature requests, and package requests. These forums are monitored by AWS Developer Support as well as the Amazon Linux AMI engineering team.

We are actively hiring Linux Systems Engineer, Linux Software Development Engineer, and Linux Kernel Engineer positions!  :-)