[Linux] How to Create a Local Repository From a RPM File
Posted On 2019-10-19
- OS Version: Redhat 7.5
Usually we will create a local repository for our intranet machines to use. So your mirror repository machine can connect to the internet, but sometimes we just want to create a offline repository to use what should we do?
Step1 Get RPM File & Install
Supposed you already have a local repository which is running by apache2 or nginx. Like the example below:
1 2 3 4 5 |
/repo/mirror/ ├── 3rdparty │ ├── nginx │ │ └── repodata |
You can see we put single 3rdparty’s rpm to each folder. For example you can see nginx folder.
First you need to download the rpm file you want.
1 2 3 4 5 6 7 8 9 |
# Nginx http://nginx.org/packages/rhel/7Server/x86_64/RPMS/ # or http://nginx.org/packages/mainline/rhel/7Server/x86_64/RPMS/ wget http://nginx.org/packages/mainline/rhel/7Server/x86_64/RPMS/nginx-1.17.4-1.el7.ngx.x86_64.rpm mkdir /repo/mirror/3rdparty/nginx mv nginx-1.17.4-1.el7.ngx.x86_64.rpm /repo/mirror/3rdparty/nginx createrepo -v /repo/mirror/3rdparty/nginx ll /repo/mirror/3rdparty/nginx |
Then you will see your local repository have a new repository for nginx.
1 2 |
http://www.example.com/mirror/3rdparty/nginx/ |
Step2 Create REPO file for the machine you need
1 2 3 4 5 6 7 8 9 10 |
# Command vim /etc/yum.repos.d/nginx.repo # Content [Nginx] name=Nginx Local Repository baseurl=http://www.example.com/mirror/3rdparty/nginx/ enabled=1 gpgcheck=0 |
Now, you can install the package you need.
1 2 |
yum install nginx |
That’s all.
Reference
Understanding Red Hat Content Delivery Network Repositories and their usage with Satellite 6