Difference between revisions of "Rocky9 Local Repo Server"

From Notes_Wiki
Line 42: Line 42:


== Enable RPM Caching ==
== Enable RPM Caching ==
Edit <code>/etc/dnf/dnf.conf</code> and add:
Edit /etc/dnf/dnf.conf and add:


<pre>
<pre>
Line 56: Line 56:
This ensures every installed package leaves a cached <code>.rpm</code> under:
This ensures every installed package leaves a cached <code>.rpm</code> under:


<code>/var/cache/dnf/&lt;repo-id&gt;-*/packages/</code>
/var/cache/dnf/&lt;repo-id&gt;-*/packages/


== Create Local Repo ==
== Create Local Repo ==

Revision as of 05:12, 22 September 2025

Home > Rocky Linux or CentOS > Rocky Linux 9.x > Rocky9 Local Repo Server


Rocky9 Local Repo Server Setup (Server = 172.30.14.58)

Enable Repositories

Edit file: /etc/yum.repos.d/rocky.repo

# rocky.repo
#
# The mirrorlist system uses the connecting IP address of the client and the
# update status of each mirror to pick current mirrors that are geographically
# close to the client. You should use this for Rocky updates unless you are
# manually picking other mirrors.
#
# If the mirrorlist does not work for you, you can try the commented out
# baseurl line instead.

[baseos]
name=Rocky Linux $releasever - BaseOS
mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=BaseOS>
#baseurl=http://dl.rockylinux.org/$contentdir/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
countme=1
metadata_expire=6h
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9

[appstream]
name=Rocky Linux $releasever - AppStream
mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=AppStr>
#baseurl=http://dl.rockylinux.org/$contentdir/$releasever/AppStream/$basearch/o>
gpgcheck=1
enabled=1
countme=1
metadata_expire=6h
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9

(Other sections like debuginfo , source and crb can be left disabled.)

Enable RPM Caching

Edit /etc/dnf/dnf.conf and add:

[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=True
skip_if_unavailable=False
keepcache=1

This ensures every installed package leaves a cached .rpm under:

/var/cache/dnf/<repo-id>-*/packages/

Create Local Repo

Copy cached RPMs to your repo directory:

sudo mkdir -p /var/www/html/dnf/localrepo
sudo cp /var/cache/dnf/*/packages/*.rpm /var/www/html/dnf/localrepo/

If Apache serves /var/www/html/, then symlink:

sudo ln -s /var/cache/dnf/ /var/www/html/rocky

Generate repository metadata:

sudo createrepo /var/www/html/dnf/localrepo/

Fix Permissions

sudo chown -R apache:apache /var/www/html/dnf/
sudo chmod -R 755 /var/www/html/dnf/
sudo systemctl restart httpd

Now your repo is available at:

http://172.30.14.58/dnf

Configure Client

On the client machine, disable all other repos in /etc/yum.repos.d/. Create /etc/yum.repos.d/local.repo:

[local-repo]
name=Local Repository
baseurl=http://172.30.14.58/dnf/localrepo/
enabled=1
gpgcheck=0

Test on Client

sudo dnf clean all
sudo dnf makecache
sudo dnf install package-name



Home > Rocky Linux or CentOS > Rocky Linux 9.x > Rocky9 Local Repo Server