Bagaimana cara membuat repositori lokal menggunakan apt-mirror dan mirrorkit?

9

Memiliki repositori lokal bisa sangat berguna. Dimungkinkan untuk digunakan rsyncuntuk membuat mirror repositori, tetapi ini menghasilkan semua rilis yang diunduh, bahkan yang lebih lama dan akan menyertakan file untuk arsitektur yang mungkin tidak diperlukan.

apt-mirrormemungkinkan seseorang memilih bagian repositori secara selektif. mirrorkitmemberikan front-end ke apt-mirror.

Apa cara terbaik untuk membuat mirror repositori lokal untuk bagian-bagian tertentu dari arsip Ubuntu?

Misalnya, orang mungkin ingin memasukkan:

  • Main, Restricted, Universe, Multiverse, All Ubuntu dan Lubuntu tetapi tidak termasuk turunan lainnya, seperti Kubuntu dan Xubuntu.

  • Hanya AMD64 dan i386 tetapi tidak termasuk arsitektur lainnya.

  • Hanya Trusty Tahr, tapi bukan Precise Penguin atau Unicorn Utopik.

Orang mungkin ingin mengkonfigurasi proses sehingga itu diunduh dari mirror lokal, daripada arsip utama.

Bagaimana saya bisa membuat repositori lokal menggunakan apt-mirrordan mirrorkituntuk arsitektur, rilis, atau varian Ubuntu yang dipilih?

pengguna75798
sumber
Kecualikan Kubuntu? Maksud Anda mengecualikan ISO Kubuntu atau mengecualikan paket apa pun yang digunakan oleh Kubuntu?
muru
Kecualikan Kubuntu dan ISO Xubuntu, misalnya. Mungkin ada banyak sekali dari mereka (Precise Kubuntu ARM, Precise Kubuntu i386, Quantal Kubuntu ARM, Quantal Kubuntu i386 ...) dan unduhan mirror awal dapat diselesaikan lebih cepat tanpa ISO tersebut. Tetapi jika itu hanya beberapa Gigabytes lagi, mungkin itu tidak terlalu penting.
user75798
1
ISO di-host secara terpisah dari paket. Jadi Anda dapat menggunakan apt-mirror seperti yang biasa Anda lakukan untuk mencerminkan repositori paket, dan menggunakan beberapa alat lain untuk ISO. Pertanyaannya kemudian menjadi menemukan filter kecualikan yang sesuai untuk alat itu (katakanlah rsync)
muru
"Anda dapat menggunakan apt-mirror seperti biasanya" Maaf, saya tidak tahu bagaimana cara melakukannya. Inilah yang ingin saya jelaskan.
user75798

Jawaban:

9

Repositori CD dan repositori perangkat lunak adalah dua komponen yang berbeda (mereka bahkan memiliki halaman Launchpad yang terpisah: cdmirrors dan archivemirrors ). Oleh karena itu, pencerminannya adalah dua tugas berbeda. Lebih lanjut, sementara berbagai rasa memiliki folder yang berbeda pada repositori CD, mereka merasakan berbagi repositori perangkat lunak. Jadi Anda dapat secara selektif mencerminkan gambar per rasa, tetapi tidak pada perangkat lunaknya. Untuk repositori perangkat lunak, Anda dapat melakukan mirroring secara selektif berdasarkan:

  • melepaskan ( trusty, precise, dll)
  • arsitektur ( amd64, i386, dll)
  • jenis paket (biner [ deb] vs sumber [ deb-src])
  • saluran ( trusty, trusty-updates, trusty-backports, dll)
  • bagian ( main, multiverse, dll)

Untuk mencerminkan repositori perangkat lunak, gunakan apt-mirror.

apt-mirrordikonfigurasi menggunakan /etc/apt/mirror.list. Ini memiliki format yang sangat mirip sources.list. File konfigurasi yang diinstal oleh paket memiliki beberapa opsi berkomentar yang berisi daftar default-nya. Jika mau, Anda dapat menghapus komentar dan mengubahnya.

Untuk mencerminkan repositori, Anda perlu menambahkan baris mirror.listseperti yang Anda inginkan untuk sources.list:

deb http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe

Standarnya adalah hanya mencerminkan arsitektur host, jadi jika Anda menggunakan Ubuntu 64-bit, hanya amd64akan dicerminkan. Anda perlu menambahkan baris lain dari formulir:

deb-i386 http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe

Dan untuk paket-paket sumber:

deb-src http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe

Jika Anda mencari cermin yang cukup lengkap, garis-garis ini akan menjadi minimum (saya juga akan merekomendasikan -updatessaluran):

deb http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe
deb http://us.archive.ubuntu.com/ubuntu trusty-security main multiverse restricted universe
deb-i386 http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe
deb-i386 http://us.archive.ubuntu.com/ubuntu trusty-security main multiverse restricted universe

Terakhir, Anda perlu menambahkan cleanbaris agar paket yang tidak lagi tersedia di repositori difilter untuk dihapus:

clean http://us.archive.ubuntu.com/ubuntu

Katakanlah variabel Anda dengan demikian (default):

set base_path    /var/spool/apt-mirror
set mirror_path  $base_path/mirror
set skel_path    $base_path/skel
set var_path     $base_path/var
set cleanscript $var_path/clean.sh

Kemudian:

  • Repositori akan dicerminkan ke $mirror_path/parent-hostname/directory(jadi /var/spool/apt-mirror/mirror/us.archive.ubuntu.com/ubuntu)
  • The clean.sh(yang akan menjadi set rmperintah untuk menghapus paket usang dan direktori) akan /var/spool/apt-mirror/var/clean.sh.
  • Log akan pergi ke /var/spool/apt-mirror/var.

The apt-mirrorpaket menginstal sebuah tugas cron ( /etc/cron.d/apt-mirror), yang harus Anda edit untuk mengaktifkan (oleh uncommenting baris yang berisi /usr/bin/apt-mirror). Anda juga harus menambahkan pekerjaan cron untuk menjalankan clean.sh(saya menjalankannya setiap minggu).

Tentu saja, Anda harus mengganti http://us.archive.ubuntu.com./ubuntudengan cermin mana yang Anda inginkan.

muru
sumber
1
Benarkah deb-amd64atau deb arch=amd64? Saya hanya dapat menemukan yang terakhir di halaman manual
Anwar
1
@ Anwar yang pertama. Yang terakhir adalah untuk sources.list, yang memiliki format serupa tetapi tidak identik. Lihat manpages.ubuntu.com/manpages/trusty/en/man1/apt-mirror.1.html , di mana deb-powerpcada dalam contoh.
muru
Oh! Saya tidak punya pengalaman dengan apt-mirror. Kupikir itu untuk sources.list. Terima kasih
Anwar
2

Saya merekomendasikan apt-cacher untuk mereka yang memiliki ruang terbatas atau mereka yang memiliki harga internet selangit di negara mereka.

apt-mirror, konon, membutuhkan setidaknya 15GB untuk setiap rasa (32/64 bit) dari distro yang Anda inginkan. apt-cacher hanya menggunakan paket yang telah Anda instal.

Baca Buat Repositori Ubuntu Lokal menggunakan Apt-Mirror dan Apt-Cacher untuk detail / instruksi lebih lanjut.

nyxee
sumber