Mengunduh seluruh berkas dalam repositori Ubuntu

.. atau Debian .. atau BlankOn. Sama saja 🙂

Untuk menyalin sebuah repositori Debian (maupun turunannya) secara komplit, kita dapat menggunakan aplikasi rsync atau debmirror. Namun bagaimana jika kedua aplikasi tersebut tidak ada? Atau andai akses melalui rsync tidak diperkenankan?

Jawabannya adalah download saja dengan download manager kesukaan Anda!

Tentu saja download manager yang mampu membaca sebuah daftar berkas dalam bentuk URL dan mengunduh seluruh berkas yang terdaftar di sana. Saya biasa menggunakan wget, bagi Anda yang tukang download, pasti Anda tahu harus menggunakan apa 🙂

Namun, bagaimana cara mendapatkan daftar berkas tersebut? Mari kita pelajari caranya.

Dalam repositori Debian dan turunannya, terdapat sebuah berkas yang berperan sebagai daftar isi yang menyimpan seluruh informasi berkas/paket yang ada. Berkas ini bernama Packages dan Anda dapat menemui berkas ini dalam repositori pada direktori berikut.

http://server.repo/ubuntu/dists/[versi]/[komponen]/binary-[arsitektur]/Packages

Contohnya adalah

http://kambing.ui.edu/ubuntu/dists/intrepid/main/binary-i386/Packages

Ganti Packages menjadi Packages.gz kalau ingin mengunduh versi yang terkompresi dengan gzip.

Untuk mencari tahu versi, komponen, maupun arsitektur yang tersedia, buka saja direktori induknya. Nanti akan terlihat versi, komponen, dan arsitektur yang ada pada repositori tersebut. Misalnya untuk mencari tahu komponen yang ada pada Ubuntu Intrepid, Anda dapat membuka http://kambing.ui.edu/ubuntu/dists/intrepid dan melihat isinya. Ada empat buah subdirektori di saya, yaitu main, multiverse, restricted, dan universe.

Setelah mendapatkan berkas Packages, mari kita bongkar isinya untuk mendapatkan daftar berkas.

Berkas Packages adalah sebuah daftar isi paket yang ada dalam sebuah repositori. Setiap paket yang ada akan dituliskan deskripsinya di sana. Mulai dari nama paket, versi, ukuran berkas, lokasi berkas, sampai penjelasan (deskripsi) paket tertulis di sana. Kali ini, informasi yang kita butuhkan adalah lokasi berkas yang ditandai dengan Filename:

Setiap baris yang diawali dengan kata Filename: adalah informasi yang kita perlukan. Silakan gunakan fasilitas dalam teks editor yang Anda gunakan sehingga Anda dapat menghapus semua informasi/baris lain kecuali baris yang diawali dengan Filename:.

Jika sudah, Anda akan mendapatkan ratusan baris seperti contoh di bawah ini.

Filename: pool/main/a/abiword/abiword_2.6.4-4ubuntu4_i386.deb
Filename: pool/main/a/abiword/abiword-common_2.6.4-4ubuntu4_all.deb
...

Yang kita butuhkan adalah nama dan direktori berkas paket. Oleh karena itu, hapuslah kata Filename: pada awal baris dan sisakan nama berkas yang diawali oleh pool/.

Setelah itu, tambahkan alamat dasar repositori di depan nama direktori/berkas yang ada. Dua baris pada contoh di atas akan menjadi seperti berikut.

http://kambing.ui.edu/ubuntu/pool/main/a/abiword/abiword_2.6.4-4ubuntu4_i386.deb
http://kambing.ui.edu/ubuntu/pool/main/a/abiword/abiword-common_2.6.4-4ubuntu4_all.deb

Silakan gunakan repositori kesayangan Anda.

Selanjutnya? siapkan waktu luang dan pita Internet yang lapang untuk mengundung seluruh berkas pada repositori!

Oh iya, jangan lupa untuk mengunduh berkas dari seluruh komponen yang ada sehingga Anda dapat mendapatkan repositori yang lengkap. Untuk Ubuntu, Anda harus mengunduh berkas pada komponen main, universe, multiverse, dan restricted.

Oh iya lagi, cara yang ditulis ini hanya ditujukan jika Anda ingin mengunduh atau setidaknya mendapatkan seluruh nama berkas dalam sebuah repositori. Tidak ditujukan untuk membuat repositori lokal.

Jika Anda ingin membuat repositori lokal, aplikasi download manager yang Anda gunakan harus mampu merekonstruksi ulang direktori-direktori yang ada. Sehingga setiap berkas akan diletakkan pada direktorinya masing-masing sesuai dengan kondisi yang ada pada repositori. Selain itu, unduh juga berkas Packages dan letakkan pada direktori sesuai dengan yang ada pada repositori.

Jika aplikasi download manager Anda dapat melakukannya, maka selamat Anda telah membuat repositori lokal secara manual tanpa bantuan aplikasi khusus!

PS: Saya pernah membuat skrip kecil yang melakukan seluruh hal di atas secara otomatis. Silakan cek di arsip GitHub saya.

4 thoughts on “Mengunduh seluruh berkas dalam repositori Ubuntu”

Leave a Reply