Panduan ini akan menunjukkan cara mengkonfigurasi server repositori lokal berdasarkan Ubuntu Bionic, tetapi dapat disesuaikan dengan versi Ubuntu sebelumnya atau bahkan untuk distribusi apa pun menggunakan Aptitude sebagai sistem manajemen paket utama, seperti Debian atau Mint. Anda mungkin biasanya ingin menyiapkan repositori lokal untuk menghemat bandwidth Internet.
Dalam tutorial ini Anda akan mempelajari:
- Cara menginstal perangkat lunak yang diperlukan di server
- Cara memilih repositori mana yang akan dicerminkan di server
- Cara mencerminkan pemilihan repositori secara lokal di server
- Cara mengkonfigurasi klien Linux untuk menggunakan server repositori lokal
Seperti yang dinyatakan di atas, kami tidak mempertimbangkan cermin publik atau negara untuk tutorial ini, tetapi jika Anda ingin menerapkannya, pertimbangkan bahwa:
- Bandwidth jaringan Anda menjadi sangat penting
- Anda perlu mendaftarkan repositori ke daftar mirror Ubuntu
- Anda harus menyinkronkan cermin setidaknya empat kali sehari
- Karena Anda harus mencerminkan semua versi sebelumnya, Anda mungkin memerlukan ruang disk 2 TB atau lebih
Memperbarui daftar paket dari repo lokal.
Persyaratan dan Konvensi Perangkat Lunak yang Digunakan
Kategori | Persyaratan, Konvensi, atau Versi Perangkat Lunak yang Digunakan |
---|---|
Sistem | Ubuntu 18.04.2 (Bionic Beaver) LTS |
Perangkat Lunak | Apache http 2.x, apt-mirror |
Lainnya | Akses istimewa ke sistem Linux Anda sebagai root atau melalui sudo perintah, Minimum 200 GB ruang disk untuk repositori |
Konvensi | # – membutuhkan perintah linux yang diberikan untuk dieksekusi dengan hak akses root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah$ – membutuhkan perintah linux yang diberikan untuk dieksekusi sebagai pengguna biasa yang tidak memiliki hak istimewa |
Cara membuat server repositori Ubuntu langkah demi langkah
- Menginstal perangkat lunak yang diperlukan di server.
Sebagai langkah pertama kita perlu menginstal Apache HTTP Server yang berada di bawah paket bernama
apache2
, dengan perintah:$ sudo apt install apache2
Menginstal Apache HTTPKemudian pastikan layanan berjalan saat startup:
$ sudo systemctl enable apache2
Jika semuanya baik-baik saja, kita akan pindah ke Direktori DocumentRoot default (yaitu /var/www/html).
Di sana kita dapat membuat sub-direktori/var/www/html/ubuntu
dan tetapkan ke pemilik yang sesuai, dalam hal iniwww-data
( pengguna yang menjalankan Apache HTTP ).$ sudo mkdir -p /var/www/html/ubuntu $ sudo chown www-data:www-data /var/www/html/ubuntu
Sangat disarankan bahwa DocumentRoot atau setidaknya subfolder ubuntu berada pada sistem file yang termasuk dalam volume logis; dengan cara ini kita dapat memperbesarnya secara online, tanpa downtime.
Pada saat pengujian saya 171,5 GiB adalah ruang minimum mutlak yang diperlukan jika juga mencerminkan paket src; jadi untuk merencanakan masa depan, disarankan untuk memiliki setidaknya 300 GiB ruang disk.Ini terutama merupakan perkiraan jika memilih satu versi Ubuntu; jika diperlukan untuk mencerminkan paket untuk versi yang berbeda, kebutuhan ruang akan meningkat pesat.
- Alat utama yang memungkinkan kita membuat repositori lokal adalah
apt-mirror
, untuk menginstalnya jalankan:$ sudo apt install apt-mirror
Jika paket tidak ditemukan, pastikan untuk me-refresh daftar paket terlebih dahulu dengan:
$ sudo apt update
- Memilih repositori mana yang akan dicerminkan di server.
Setelah apt-mirror diinstal, kita dapat membuat salinan cadangan dari file konfigurasinya
/etc/apt/mirror.list
, setelah itu pastikan baris yang berisi opsiset base_path
menunjuk ke jalur yang benar untuk repositori kita (secara default adalah /var/spool/apt-mirror ).$ sudo cp /etc/apt/mirror.list /etc/apt/mirror.list.org
Jadi sekarang Anda dapat menggunakan editor favorit Anda (vi atau nano misalnya) untuk mengubah opsi base_path di file mirror.list menjadi
file konfigurasi mirror.list/var/www/html/ubuntu
; Anda juga perlu menentukan bahwa Anda mencerminkan repo distro bionik (ubah sesuai jika Anda memiliki versi Ubuntu yang berbeda), selalu di file konfigurasi mirror.list.Jika Anda tidak memiliki banyak ruang pada disk, Anda dapat memilih untuk tidak mencerminkan paket src; jadi Anda akan mengomentari baris relatif:
file konfigurasi mirror.listSelanjutnya kamu copy script penting ke
/var/www/html/ubuntu/var/
$ sudo mkdir -p /var/www/html/ubuntu/var $ sudo cp /var/spool/apt-mirror/var/postmirror.sh /var/www/html/ubuntu/var/
- Mencerminkan repositori yang dipilih secara lokal di server.
Sekarang saatnya untuk membuat mirror lokal, perlu diingat bahwa mirroring awal (dari
archive.ubuntu.com
hanya untuk tutorial ini) dapat memakan banyak waktu dan memperlambat koneksi Anda, jadi saya sarankan Anda memulai pekerjaan ini di malam hari.
Untuk mulai mencerminkan paket repo jarak jauh ke server lokal cukup jalankan perintah:$ sudo apt-mirror
Jika perlu, Anda dapat menghentikan proses ini ( dengan kombinasi klasik CTRL+C ) dan memulai kembali nanti; itu akan dilanjutkan dari tempat yang tersisa.
Pada akhirnya kita akan sampai pada titik ketika script clean.sh dan postmirror.sh dijalankan, itu tandanya proses mirroring telah selesai.
Akhir dari proses pencerminan. - Mengonfigurasi proses sinkronisasi otomatis dengan menggunakan penjadwal cron.
Setelah sinkronisasi pertama kami selesai, kami perlu membuat tugas cron untuk memastikan bahwa kami memiliki repositori lokal yang diperbarui secara otomatis; misalnya kami ingin tugas ini dijalankan setiap malam pada pukul 2:00 pagi dan oleh karena itu:
$ sudo crontab -e
Kemudian kita edit crontab untuk menambahkan baris berikut:
00 02 * * * /usr/bin/apt-mirror
Dan simpan dan keluar (menggunakan vi, nano atau editor apa pun yang disetel).
Mengonfigurasi klien Linux untuk menggunakan server repositori lokal
- Mengonfigurasi daftar repositori lokal.
Di setiap klien yang akan menggunakan repositori lokal kita, kita perlu mengedit file konfigurasi
/etc/apt/sources.list
menentukan repo lokal kami dan menonaktifkan repo jarak jauh.Dalam kasus kami, repositori berikut telah diunduh:
Repositori lokal serverCATATAN
Disarankan untuk mengomentari baris apa pun di
/etc/apt/sources.list
file yang merujuk ke repositori yang tidak dicerminkan di server kami, misalnya, dalam hal ini, baris apa pun yang dimulai dengandeb-src
dan berisibionic-backports
telah dikomentari.Jika Anda tidak melakukannya, Anda mungkin mendapatkan kesalahan
Release file has not been found
saat menjalankan perintah apt update pada klien.Pertama-tama kami mengganti string apa pun archive.ubuntu.com dengan IP mirror lokal kami, dalam hal ini 10.0.0.42. Tentu saja alamat IP lokal Anda bisa berbeda.
$ sudo sed -i.bak0 "s/archive\.ubuntu\.com/10\.0\.0\.\42/g" /etc/apt/sources.list
Perintah ini akan membuat file cadangan
/etc/apt/sources.list.bak0
dan gantiarchive.ubuntu.com
string dengan10.0.0.42
.Penyesuaian lebih lanjut berjalan lagi dengan cara ini:
$ sudo sed -i.bak1 "s/ubuntu/ubuntu\/mirror\/archive\.ubuntu\.com\/ubuntu/g" \ /etc/apt/sources.list
Ini diperlukan karena apt-mirror menambahkan jalur
mirror/archive.ubuntu.com/ubuntu
ke jalur dasar kami. Disini akan dibuat file backup selanjutnya/etc/apt/sources.list.bak1.
Untuk tujuan tutorial ini, kami hanya mencerminkan paket atau repositori dari archive.ubuntu.com; tentu saja Anda dapat menambahkan repositori tidak resmi lainnya di file mirror.list di server, tetapi kemudian Anda harus menjalankan kembali apt-mirror di sana dan mengedit file sources.list yang sesuai di klien mana pun.
- Perbarui indeks repositori lokal.
Sekarang Anda perlu memastikan port 80 tidak diblokir oleh firewall klien dan kemudian Anda dapat menjalankan:$ sudo apt update
Dan Anda siap untuk pergi.
Memperbarui daftar paket dari repo lokal.
Kesimpulan
Menyiapkan repositori lokal di Ubuntu tidak sulit seperti yang terlihat dan bisa berguna asalkan Anda memiliki jaringan lokal dan sumber daya disk yang memadai.