Selasa, 03 Juni 2025

Create Local Repository via http services

Halo guys, Ridwan heres..
Come again with new notes update!

Mungkin banyak dari teman2 yang sudah menggunakan linux dan merasakan kemudahan dalam menginstall packages/apps hanya menggunakan packages manager seperti APT/YUM/DNF/Zypper atau lainnya, di mana sumber packages nya berasal dari internet repository.

Lalu, bagaimana kalau envirovment dari server linux kalian tidak memiliki internet ?

Memang benar, kita bisa menggunakan file installer seperti .deb/.rpm/.pkg atau lainnya,
tapi masalahnya ada beberapa services/daemon biasanya membutuhkan depedency dari packages lainnya. contohnya seperti gambar berikut :

Untuk menginstall NginX saja kita butuh library & dependency lainnya.
dan sangat tidak practice jika kita melakukan install packages tersebut secara manual satu persatu.
Jauh lebih mudah jika kita menggunakan packages manager seperti berikut :

 

Oleh karena itu, hal yang paling praktis adalah kita membuat repository server secara localy seperti repo yang ada pada internet.
Dan pada sisi client tidak perlu banyak config cukup arahkan alamat repo ke server yang sudah kita buat.

Penasaran cara membuat "Localy Repository via http" ?

Right away...  Let's jump !


1. Prerequisite

Pertama kita siapkan server yang akan menjadi media Repository nya.

Pada tulisan ini kita memiliki 3 VM ( 1 Repo, 2 Client = rhel8 & rhel9)

Kedua, Siapkan packages-packages Repository, kalian bisa ambil dari Full DVD

Disini saya menggunakan Full DVD/ISO dari rhel8 & rhel9,
karena di dalam nya sudah ada packages BaseOS & Appstream default dari Red Hat.

Atau kalian bisa menggunakan "reposync"
untuk download semua packages dari Repository internet, agar nanti dapat digunakan oleh server repo kalian.
**Tapi, pada tulisan ini kita tidak akan bahas reposync*


2. Installation

Pada Server repository, lakukan mounting file ISO/DVD tersebut, dengan command berikut :
# mount /dev/sr0 /mnt/rhel8/
# mount /dev/sr1 /mnt/rhel9/
------
# mount [Devices] [Mount-Directory]

Pada tulisan ini saya akan menyiapkan 2 media untuk repo RHEL-8 & RHEL-9.

Kemudian, install service http pada server, karena kita akan menggunakan service http untuk media repo nya

$ sudo dnf install httpd
$ sudo systemctl start httpd
$ sudo systemctl enable httpd

Buat directory pada http services tersebut.
$ sudo mkdir /var/www/html/rhel8
$ sudo mkdir /var/www/html/rhel9


Step terakhir, extract data dari ISO/DVD ke directory http (/var/www/html/rhel*)

$ sudo cd /mnt/rhel8
$ tar cvf - . | (cd /var/www/html/rhel8/;  tar xvf -)
$ ls -l /var/www/html/rhel8/

 
Pastikan semua isi dari ISO/DVD sudah tercopy ke directory http services kalian


3. Crete file .repo pada client

Pada step ini kita akan membuat 2 contoh file .repo :
1. via file/directory

2. via HTTP services

Buat file .repo tersebut pada sisi client, di alamat directory :
/etc/yum.repos.d/NAMING.repo

 

Kemudian ketik command berikut :
$ yum repolist

Lalu.. coba install sesuatu ~
$ yum install mysql nginx php


Pastikan repo yang digunakan mengarah pada server repo yang sudah kita buat.


Sekian untuk tulisan kali ini, semoga bermanfaat~

Best Regards
Rdw

Share: