Add repositories on an AL2 instance
This information applies to AL2 and Amazon Linux. For information about AL2023, see Using Deterministic upgrades through versioned repository in the AL2023 User Guide.
Note
The Amazon Linux AMI reached its end-of-life on December 31, 2023 and will not receive any
security updates or bug fixes starting January 1, 2024. For more information
about the Amazon Linux AMI end-of-life and maintenance support, see the blog post
Update on Amazon Linux AMI
end-of-life
By default, Amazon Linux instances launch with the following repositories enabled:
-
AL2:
amzn2-core
andamzn2extra-docker
-
Amazon Linux AMI:
amzn-main
andamzn-updates
While there are many packages available in these repositories that are updated by Amazon Web Services, there might be a package that you want to install that is contained in another repository.
Important
This information applies to Amazon Linux. For information about other distributions, see their specific documentation.
To install a package from a different repository with yum, you
need to add the repository information to the /etc/yum.conf
file or to its own
file in the repository
.repo/etc/yum.repos.d
directory. You can do this
manually, but most yum repositories provide their own
file at
their repository URL.repository
.repo
To determine what yum repositories are already installed
-
List the installed yum repositories with the following command:
[ec2-user ~]$
yum repolist all
The resulting output lists the installed repositories and reports the status of each. Enabled repositories display the number of packages they contain.
To add a yum repository to /etc/yum.repos.d
-
Find the location of the
.repo
file. This will vary depending on the repository you are adding. In this example, the.repo
file is athttps://www.
.example
.com/repository
.repo -
Add the repository with the yum-config-manager command.
[ec2-user ~]$
sudo yum-config-manager --add-repo https://www.
example
.com/repository
.repoLoaded plugins: priorities, update-motd, upgrade-helper adding repo from: https://www.
example
.com/repository
.repo grabbing file https://www.example
.com/repository
.repo to /etc/yum.repos.d/repository
.reporepository
.repo | 4.0 kB 00:00 repo saved to /etc/yum.repos.d/repository
.repo
After you install a repository, you must enable it as described in the next procedure.
To enable a yum repository in /etc/yum.repos.d
-
Use the yum-config-manager command with the
--enable
flag. The following command enables the Extra Packages for Enterprise Linux (EPEL) repository from the Fedora project. By default, this repository is present inrepository
/etc/yum.repos.d
on Amazon Linux AMI instances, but it is not enabled.Warning
The EPEL7 repository used in this example is a third-party. As of 2024-06-30 this third-party repository is no longer being maintained.
This third-party repository will have no future updates. This means there will be no security fixes for packages in the EPEL repository.
See the EPEL section of the AL2023 User Guide for options for some EPEL packages.
[ec2-user ~]$
sudo yum-config-manager --enable
epel
Note
To enable the EPEL repository on AL2, use the following command:
[ec2-user ~]$
sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
For information on enabling the EPEL repository on other distributions, such as Red Hat and CentOS, see the EPEL documentation at https://fedoraproject.org/wiki/EPEL
.