Linux repository management introduction
This tutorial deals with how to do Linux repository management. Linux repository can be defined as a location where data is stored and managed. Linux repository is a place where many databases and files are located for distributing it over the network. When you try to install something on your Linux server, Your server tries to download and install the packages from these repositories over the internet network. Very important thing to note here is that your computer must be configured to use digitally signed repositories from vendors as it minimizes the chance of malware threat. It is very necessary to have the correct repositories in your system. Here we will learn about how to add repositories in your Linux system (Red Hat & Debian).
Some of the most popular Linux repository management tools are RPM (For Red hat), YUM (For Red hat), APT (For Debian), Equo (For Sabayon), pacman (For Arch Linux), YaST & Zypper (For Suse Linux). However in this tutorial we will keep our focus mainly on YUM and APT.
RED HAT BASED SYSTEM
Lets see how to add and manage yum repositories in your Linux red hat based system. YUM stands for Yellowdog Updater Modified. It is fully opensource. But Some geeks may have a question that Red Hat already comes with RPM, then whats the use of YUM?. Let me explain the two.
- RPM is a packager manager program, which is used to install packages.
- YUM is a tool which uses number of repositories to find correct and suitable packages for your Linux system.
Add Yum repositories
The below command is used to add yum repository.
# yum-config-manager --add-repo <repository-url>
# yum-config-manager --add-repo http://www.somesite.com/some.repo
Enable Yum repositories
To make the repository work, we need to enable it. See the below command for enabling yum repository.
# yum-config-manager --enable repository
Note: here repository is repository id
Enable all matching Yum repositories
If you want to enable all the repositories with the matching name then use the below command.
# yum-config-manager --enable repository*
Disable Yum repositories
To disable any yum repository, use the below command.
# yum-config-manager --disables repository
Disable all matching Yum repositories
Below command is used to disable all matching yum repository.
# yum-config-manager --disables repository*
Add yum repositories in directory
If you don't want to add repositories by command you can also add it in 'repos.d' directory directly. Add the downloaded repositories in the below directory that is 'repos.d' directory
See the below image of repo files under yum.repos.d directory
[root@techsakh ~]$ cd /etc/yum.repos.d/ [root@techsakh yum.repos.d]$ ls adobe-linux-x86_64.repo CentOS-fasttrack.repo epel-testing.repo mirrors-rpmforge-testing playonlinux.repo CentOS-Base.repo CentOS-Sources.repo iRedMail.repo mysql-community.repo rpmforge.repo CentOS-CR.repo CentOS-Vault.repo mirrors-rpmforge mysql-community-source.repo zimbra.repo CentOS-Debuginfo.repo epel.repo mirrors-rpmforge-extras nux-dextop.repo
DEBIAN BASED SYSTEM
In Debian based system repository management tool is found as APT (Advance Packaging Tool)
In Debian based system you can add repositories in source.list file. But, before making any changes to the original file, take backup first.
# cp /etc/apt/sources.list /etc/apt/sources.list.original
Now edit the file as given below with 'vi' editor.
# vi /etc/apt/sources.list
put the required repositories into the file and save the file by CTRL+D
Adding repositories by command line
To add repositories in Debian based system by command line, you need to use the command 'add-apt-repository' If you are unable to use add-apt-repository, then first install the following software.
# apt-get-install python-software-properties
# add-apt-repository <repository-url>
See the below example.
# add-apt-repository deb http://http.debian.net/debian jessie-backports main contrib non-free
How to create a custom Linux yum repository
You can create a custom repository on a self hosted red hat based server. Your self hosted server can be used by other Linux system or server for yum update. But before that you need to have Apache server installed on the server.
# yum install createrepo
Create a directory 'repo' under '/var/www/' directory. Copy all the required repository packages under 'repo'.
Now you need to create metadata.
# cd /var/www/repo/ # createrepo --database /var/www/repo
Now as the Apache server is already installed and running, connect any server to your self hosted server with the below command.
# yum-config-manager --add-repo http://server_IP_address/repo
Create a repo file
You can create a repo file in your system, wherein you can given the url of your self hosted server. So next time while yum updates, it will also fetch your custom yum repository. See below for example.
Change the directory to 'yum.repos.d'
# cd /etc/yum.repos.d/
Create a repo file and name it 'my.repo' . There should be .repo extension of the file. Create in the format as given below.
[root@localhost yum.repos.d]# vi my.repo
[My repo] name=My local Repository baseurl=http://server_IP_address/repo gpgcheck=0 enabled=1
In the above 'name' is the name of the repository
'baseurl' is the URL of the server where the package is present. I have given the baseurl of my self hosted server address.
If 'gpgcheck' value = 1 , then it tells YUM to check signature of the package when downloading
If the value of 'enable=1', it means that the package is active and available, however if its value=0, then it is inactive.
This is it with the tutorial Linux repository management