Memanfaatkan Mirror Protocol repo Ubuntu
Tulisan ini akan sedikit menjelaskan tentang bagaimana menggunakan mirror protocol untuk repo Ubuntu. Sedikit cerita, saya sebenarnya sangat menyukai CentOS dalam hal konfigurasi repository, terutama karena adanya pengaya fastestmirror. Dengan adanya pengaya tersebut saat kita melakukan yum update maupun saat melakukan instalasi paket, sistem akan secara otomatis memilihkan cermin repository terdekat, dan bahkan ketika suatu cermin (mirror) gagal digunakan yum akan secara otomatis mengulangi unduhan dengan repo lain. Ini sangat menarik, tentunya terlepas dari isu terkini yaitu CentOS 8 akan mulai menjadi hulu bagi RedHat yang menyebabkan banyak orang merasa kecewa karenanya.
Oke, kembali ke pembahasan. Konfigurasi repository distro berbasis Debian, termasuk Ubuntu umumnya formatnya adalah sebagai berikut (dalam berkas /etc/apt/sources.list):
#deb [url] [repo/rilis] [komponen] deb http://buaya.klas.or.id/ubuntu/ bionic main restricted deb http://buaya.klas.or.id/ubuntu/ bionic-updates main restricted deb http://buaya.klas.or.id/ubuntu/ bionic universe deb http://buaya.klas.or.id/ubuntu/ bionic-updates universe deb http://buaya.klas.or.id/ubuntu/ bionic multiverse deb http://buaya.klas.or.id/ubuntu/ bionic-updates multiverse deb http://buaya.klas.or.id/ubuntu/ bionic-backports main restricted universe multiverse deb http://security.ubuntu.com/ubuntu bionic-security main restricted deb http://security.ubuntu.com/ubuntu bionic-security universe deb http://security.ubuntu.com/ubuntu bionic-security multiverse
Nah, konfigurasi repo tersebut statis. Artinya kita akan mengambil paket dari repo yang telah kita tentukan (dan ini perlu secara manual kita masukkan ke) dalam berkas sources.list tersebut. Keuntungannya, kita dapat memilih repo mana yang akan kita gunakan. Saat kita lakukan update dan install, semua paket akan mengambil dari URL repositori tersebut. Misalnya kita lakukan update:
$ sudo apt update Hit:1 http://dl.google.com/linux/chrome/deb stable InRelease Hit:2 http://buaya.klas.or.id/ubuntu bionic InRelease Hit:3 http://buaya.klas.or.id/ubuntu bionic-updates InRelease Hit:4 https://linux.teamviewer.com/deb stable InRelease Hit:5 http://buaya.klas.or.id/ubuntu bionic-backports InRelease Hit:6 http://security.ubuntu.com/ubuntu bionic-security InRelease Fetched 3.023 B in 1s (2.213 B/s) Reading package lists... Done Building dependency tree Reading state information... Done 238 packages can be upgraded. Run 'apt list --upgradable' to see them.
Kalo kita eksekusi apt update berkali-kali, tentu saja kita akan menggunakan URL repo yang sama.
Sekarang kita coba ubah konten berkas sources.list sebagai berikut:
deb mirror://mirrors.ubuntu.com/mirrors.txt bionic main restricted deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-updates main restricted deb mirror://mirrors.ubuntu.com/mirrors.txt bionic universe deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-updates universe deb mirror://mirrors.ubuntu.com/mirrors.txt bionic multiverse deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-updates multiverse deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-backports main restricted universe multiverse
Lalu coba lakukan update beberapa kali:
root@nacita-labX:~# apt update Get:1 http://mirrors.ubuntu.com/mirrors.txt Mirrorlist [644 B] Hit:2 http://mirror.telkomuniversity.ac.id/ubuntu bionic InRelease Get:4 http://mirror.unej.ac.id/ubuntu bionic-backports InRelease [74.6 kB] Get:3 http://kebo.pens.ac.id/ubuntu bionic-updates InRelease [88.7 kB] Get:5 http://kebo.pens.ac.id/ubuntu bionic-updates/main i386 Packages [1172 kB] Get:6 http://kebo.pens.ac.id/ubuntu bionic-updates/main amd64 Packages [1789 kB] Get:6 http://kebo.pens.ac.id/ubuntu bionic-updates/main amd64 Packages [1789 kB] Get:6 http://kebo.pens.ac.id/ubuntu bionic-updates/main amd64 Packages [1789 kB] Get:6 http://kebo.pens.ac.id/ubuntu bionic-updates/main amd64 Packages [1789 kB] Get:6 http://kebo.pens.ac.id/ubuntu bionic-updates/main amd64 Packages [1789 kB] Get:6 http://kebo.pens.ac.id/ubuntu bionic-updates/main amd64 Packages [1789 kB] Get:6 http://kebo.pens.ac.id/ubuntu bionic-updates/main amd64 Packages [1789 kB] Get:6 http://kebo.pens.ac.id/ubuntu bionic-updates/main amd64 Packages [1789 kB] Get:6 http://kebo.pens.ac.id/ubuntu bionic-updates/main amd64 Packages [1789 kB] Fetched 3126 kB in 5s (628 kB/s) Reading package lists... Done Building dependency tree Reading state information... Done 28 packages can be upgraded. Run 'apt list --upgradable' to see them. root@nacita-labX:~# apt update Get:1 http://mirrors.ubuntu.com/mirrors.txt Mirrorlist [644 B] Get:4 http://kartolo.sby.datautama.net.id/ubuntu bionic-backports InRelease [74.6 kB] Hit:3 https://mirror.jagoanhosting.com/ubuntu/ubuntu bionic-updates InRelease Hit:2 https://suro.ubaya.ac.id/ubuntu bionic InRelease Fetched 75.2 kB in 2s (38.6 kB/s) Reading package lists... Done Building dependency tree Reading state information... Done 28 packages can be upgraded. Run 'apt list --upgradable' to see them. root@nacita-labX:~# apt update Get:1 http://mirrors.ubuntu.com/mirrors.txt Mirrorlist [644 B] Hit:4 http://kartolo.sby.datautama.net.id/ubuntu bionic-backports InRelease Hit:3 https://mirror.jagoanhosting.com/ubuntu/ubuntu bionic-updates InRelease Hit:2 http://kebo.pens.ac.id/ubuntu bionic InRelease Fetched 644 B in 3s (203 B/s) Reading package lists... Done Building dependency tree Reading state information... Done 28 packages can be upgraded. Run 'apt list --upgradable' to see them. root@nacita-labX:~# apt update Get:1 http://mirrors.ubuntu.com/mirrors.txt Mirrorlist [644 B] Get:3 http://kambing.ui.ac.id/ubuntu bionic-updates InRelease [88.7 kB] Get:4 http://mirror.telkomuniversity.ac.id/ubuntu bionic-backports InRelease [74.6 kB] Hit:2 https://mirror.papua.go.id/ubuntu bionic InRelease Fetched 164 kB in 2s (87.1 kB/s) Reading package lists... Done Building dependency tree Reading state information... Done 28 packages can be upgraded. Run 'apt list --upgradable' to see them.
Coba juga install salah satu paket/aplikasi:
root@nacita-labX:~# apt install debootstrap Reading package lists... Done Building dependency tree Reading state information... Done Suggested packages: ubuntu-archive-keyring The following NEW packages will be installed: debootstrap 0 upgraded, 1 newly installed, 0 to remove and 28 not upgraded. Need to get 35.3 kB of archives. After this operation, 275 kB of additional disk space will be used. Get:1 http://mirrors.ubuntu.com/mirrors.txt Mirrorlist [644 B] Get:2 http://mirror.labkom.id/ubuntu bionic-updates/main amd64 debootstrap all 1.0.95ubuntu0.8 [35.3 kB] Fetched 36.0 kB in 1s (25.6 kB/s) Selecting previously unselected package debootstrap. (Reading database ... 105967 files and directories currently installed.) Preparing to unpack .../debootstrap_1.0.95ubuntu0.8_all.deb ... Unpacking debootstrap (1.0.95ubuntu0.8) ... Setting up debootstrap (1.0.95ubuntu0.8) ... Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Bahkan, saat melakukan update dan instalasi aplikasi diambil dari URL yang berbeda.
Oke, sebenarnya apa yang terjadi? saya juga gak tau, heheheā¦. Tapi dari pengujian yang telah kita lakukan tadi, kita bisa berkesimpulan bahwa dengan menggunakan mirror protocol (bisa kita lihat pada awalan/prefix mirror:// pada URL tadi) kita tidak perlu lagi repot memilih URL mana yang akan kita gunakan untuk repo kita. Karena apt akan secara otomatis memilihkan alamat repo yang paling dekat cepat pada saat dieksekusi. Coba kita lihat isi dari berkas mirrors.txt itu apa:
# wget -qO - mirrors.ubuntu.com/mirrors.txt http://buaya.klas.or.id/ubuntu/ http://kambing.ui.ac.id/ubuntu/ http://mirror.labkom.id/ubuntu/ https://repo.dinamika.ac.id/ubuntu/ https://mirror.jagoanhosting.com/ubuntu/ubuntu/ http://mirror.deace.id/ubuntu/ http://mirror.telkomuniversity.ac.id/ubuntu/ http://kebo.pens.ac.id/ubuntu/ http://mirror.unej.ac.id/ubuntu/ http://mirror.biznetgio.com/ubuntu/ https://mirror.papua.go.id/ubuntu/ http://kebo.vlsm.org/ubuntu/ http://suro.ubaya.ac.id/ubuntu/ https://mirror.gi.co.id/ubuntu/ http://kartolo.sby.datautama.net.id/ubuntu/ https://pinguin.dinus.ac.id/iso/ubuntu/repo/ http://mirror.poliwangi.ac.id/ubuntu/ http://archive.ubuntu.com/ubuntu/
Oiya, bisa juga diakses melalui peramban http://mirrors.ubuntu.com/mirrors.txt
Jika temen-temen perhatikan, saat kita melakukan apt update, baris pertama akan muncul seperti ini:
Get:1 http://mirrors.ubuntu.com/mirrors.txt Mirrorlist [644 B]
Bisa jadi, pertama si apt mengambil daftar URL repo yang tersedia, sebelum akhirnya digunakan untuk mengunduh paket. Dengan begini repositori yang kita gunakan akan sangat dinamis.
Sekian dulu catatan kali ini ya gaes, maap kalo agak panjang dan sedikit bikin pusing. Ya, setidaknya setelah Anda baca catatan ini saya jadi punya teman pusing.