GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara membuat server repositori Ubuntu

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

Persyaratan Perangkat Lunak dan Konvensi Baris Perintah Linux
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

  1. 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 HTTP

    Kemudian 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 ini www-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.

  2. 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
    
  3. 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 opsi set 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 /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.

    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.list

    Selanjutnya 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/
    
  4. 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.

  5. 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

  1. 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 server

    CATATAN

    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 dengan deb-src dan berisi bionic-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 ganti archive.ubuntu.com string dengan 10.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.

  2. 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.


Ubuntu
  1. Cara Menginstal PostgreSQL di Ubuntu 18.04

  2. Cara Membuat Cadangan

  3. Cara Instal Zimbra 8.6 di Server Ubuntu 14.04

  1. Cara Membuat Pengguna Sudo di Ubuntu

  2. Cara Menginstal MySQL di Ubuntu 18.04

  3. Cara menggunakan Mattermost di Ubuntu 18.04

  1. Cara Mengatur Server OpenVPN di Ubuntu 18.04

  2. Cara Memasang Server Minecraft di Ubuntu 18.04

  3. Cara Menginstal Nginx di Ubuntu 20.04