Create a Local Yum Repository for Oracle Linux 6
July 12, 2016 Leave a comment
0. Just to note –repoid parameter has two dashes in front (- – repoid). Unfortunately wordpress makes it one dash. Please, do not blame me 🙂
1. Create OEL.repo file in /etc/yum.repos.d and add the following entry
# vi /etc/yum.repos.d/OEL.repo
[oraclerpms]
name=OracleEnterpriseLinux
baseurl=http://yum.oracle.com/repo/OracleLinux/OL6/latest/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
enabled=1
2. Install yum-utils and createrepo packages
# yum install yum-utils createrepo
3. It is better to add another disk and create repository there, do not use / disk(disk where OS is installed) for repository. It is just a best practice.
Create necessary folders:
# mkdir -p /OEL_repo/OEL6/latest
# mkdir -p /OEL_repo/logs
# mkdir -p /OEL_repo/scripts
4. Download rpms.
If you are using proxy you may need to set proxy parameters like  export http_proxy=http://proxy_server_ip:proxy_port/
/usr/bin/reposync –newest-only –repoid=oraclerpms -p /OEL_repo/OEL6/latest
5. After download completes create repository on downloaded rpms:
/usr/bin/createrepo /OEL_repo/OEL6/latest/oraclerpms/getPackage/
####################
The above steps should be done every time you want to update your local repository, so let’s create script and place all them in one file.
vi /OEL_repo/scripts/repo_sync.sh
#!/bin/bash
LOG_FILE=/OEL_repo/logs/repo_sync_$(date +%Y.%m.%d).log
# Delete old logs
find /OEL_repo/logs/repo_sync* -mtime +5 -delete; >> $LOG_FILE 2>&1#Clean cache
yum clean all# Sync repositories
/usr/bin/reposync /usr/bin/reposync –newest-only –repoid=oraclerpms -p /OEL_repo/OEL6/latest >> $LOG_FILE 2>&1/usr/bin/createrepo /OEL_repo/OEL6/latest/oraclerpms/getPackage/ >> $LOG_FILE 2>&1
2. Change permissions for the executable script:
# chmod u+x /OEL_repo/scripts/repo_sync.sh
3. Set up a CRON job to run the script on a daily basis. The following entry runs the script each day at 01:00.
0 1 * * * /OEL_repo/scripts/repo_sync.sh > /dev/null 2>&1
###############
1. Install the Apache HTTP servers, start it and make sure it restarts automatically on reboot.
# yum install httpd
# service httpd start
# chkconfig httpd on
2. Create directory and place link there
mkdir -p /var/www/html/OEL_repo/OEL6/latest
ln -s /OEL_repo/OEL6/latest/oraclerpms/getPackage/ /var/www/html/OEL_repo/OEL6/latest/x86_64# cd /var/www/html
# wget http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6Note: /var/www/html is the default DocumentRoot directory. To check yours(sysadmin may have changed it) please check /etc/httpd/conf/httpd.conf file and find the keyword DocumentRoot
##############
1. Configure clients
vi /etc/yum.repos.d/local-ol6.repo
[oraclerpms]
name=Oracle Linux $releasever Latest ($basearch)
baseurl=http://RepositoryServerHostname.domain.ge/OEL_repo/OEL6/latest/$basearch/
gpgkey=http://RepositoryServerHostname.domain.ge/RPM-GPG-KEY-oracle-ol6
gpgcheck=1
enabled=1
Now you are able to install packages on clients by
# yum install ntp