Custom YUM Repository
Sometimes
we need to create a Custom YUM Repository (handy when the VPS has no internet
connection). We can create a Custom YUM Repository from a desired number of
selected RPM package files. Custom YUM Repository only holds the RPM package
files we want to include in.
Step 1: Install
"createrepo"
To
create Custom YUM Repository we need to install additional software called
"createrepo" on our cloud server. We can install
"createrepo" by running the following command from console:
yum install createrepo
Step 2: Create
Repository directory
We
need to create a new directory that will be the location of our Custom YUM
Repository and will hold the desired RPM package files. We can do this with the
following command from console (choose a different /repository1 directory name
if you like):
mkdir /repository1
Step 3: Put RPM files
to Repository directory
If
RPM package files are not yet present on our VPS we need to transfer them to
our cloud server via FTP or SSH - use software like WinSCP (free SFTP client
and FTP) or similar. We can also download RPM package files directly to our VPS
(internet connection needed) with "wget" command from console (please
change HTTP link accordingly):
wget
ftp://my.barun.com/CentOS/6/os/i386/Packages/NetworkManager-0.8.1-43.el6.i686.rpm
If RPM files are already present on our VPS, we need to Copy or Move these files to the newly created directory from "Step 2". We can move RPM files with the following command from console (please change /path/to/rpm and /repository1 accordingly):
mv
/path/to/rpm /repository1
We can copy RPM files with the following command from console (please change /path/to/rpm and /repository1 accordingly):
cp /path/to/rpm
/repository1
Step 4: Run
"createrepo"
Createrepo
command reads through Custom YUM Repository directory from "Step 2"
and creates a new directory called "repodata" in it. Repodata
directory holds the metadata information for the newly created repository.
Every time we add additional RPM package files to our Custom YUM Repository, we
need to re-create Repository metadata with "createrepo" command. We
can create new repository metadata by running the following command from
console (please change /repository1 accordingly):
createrepo
/repository1
Step 5: Create YUM
Repository Configuration file
To
start using the newly created Custom YUM Repository, we must create the
corresponding YUM Repository Configuration file with .repo extension, which
must be placed to /etc/yum.repos.d/ directory. Instructions to create YUM
Repository Configuration file are covered in the first topic of this article
called "YUM Repository Configuration File".
Example Custom YUM
Repository Configuration file:
/etc/yum.repos.d/custom.repo
[customrepo]
name=Custom Repository
baseurl=file:///repository1/
enabled=1
gpgcheck=0
YUM Repository Configuration
File
We can install new software on
Red Hat/CentOS Linux with "yum install packagename" command from
console. Running this command first checks for existing YUM Repository
configuration files in /etc/yum.repos.d/ directory. It reads each YUM
Repository configuration file to get the information required to download and
install new software, resolves software dependencies and installs the required
RPM package files.
YUM Repository configuration files must:
YUM Repository configuration files must:
be located in /etc/yum.repos.d/ directory
have .repo extension, to
be recognized by YUM
Available YUM Repository configuration file options are:
Repository ID - One word
unique repository ID (example: [examplerepo])
Name - Human readable name
of the repository (example: name=Example Repository)
Baseurl - URL to the
repodata directory. You can use file://path if repository is located locally or ftp://link, http://link, https://link if
repository is located remotely - HTTP Authentication availablehttp://user:password@www.repo1.com/repo1 (example:
baseurl=http://mirror.cisp.com/CentOS/6/os/i386/)
Enabled -
Enable repository when performing updates and installs (example: enabled=1)
Gpgcheck -
Enable/disable GPG signature checking (example: gpgcheck=1)
Gpgkey -
URL to the GPG key (example: gpgkey=http://mirror.cisp.com/CentOS/6/os/i386/RPM-GPG-KEY-CentOS-6)
Exclude -
List of the packages to exclude (example: exclude=httpd,mod_ssl)
Includepkgs -
List of the packages to include (example: include=kernel)
Required YUM Repository configuration file options are:
Repository
ID
Name
Baseurl
Enabled
No comments:
Post a Comment