Mengatasi apt-get update Stuck di VPS Ubuntu: Bedah Perintah ‘sed’ untuk Ganti Mirror
Pernahkah Anda mengalami proses instalasi paket atau apt-get update yang macet tanpa henti? Masalah tertahan di status “Waiting for headers” adalah kendala klasik saat mengonfigurasi server VPS sewa yang baru.
Penyebab utamanya seringkali sepele: server VPS Anda mencoba mengunduh pembaruan dari server repositori pusat Ubuntu (archive.ubuntu.com) yang jarak geografisnya sangat jauh atau rute jaringannya sedang bermasalah.
Jika VPS Anda berlokasi di region tertentu (misalnya Singapura), solusi paling jitu adalah mengarahkan repositori tersebut ke mirror lokal terdekat, seperti sg.archive.ubuntu.com.
Alih-alih repot membuka file konfigurasi secara manual menggunakan text editor seperti nano atau vim, kita bisa mengeksekusinya dalam hitungan detik menggunakan perintah sed.
Berikut adalah dua baris perintah sakti yang bisa langsung Anda jalankan di terminal:
sed -i 's/archive.ubuntu.com/sg.archive.ubuntu.com/g' /etc/apt/sources.list /etc/apt/sources.list.d/ubuntu.sources 2>/dev/null
sed -i 's/security.ubuntu.com/sg.archive.ubuntu.com/g' /etc/apt/sources.list /etc/apt/sources.list.d/ubuntu.sources 2>/dev/null
Bagi seorang sistem administrator, mengeksekusi perintah yang tidak dipahami sepenuhnya adalah sebuah risiko. Mari kita bedah anatomi perintah di atas agar kita tahu persis apa yang sedang terjadi di dalam server.
Membedah Anatomi Perintah sed
Secara garis besar, perintah di atas berfungsi sebagai fitur “Find and Replace” (Cari dan Ganti) otomatis di dalam file konfigurasi sistem.
Berikut adalah fungsi dari masing-masing komponennya:
sed(Stream Editor): Ini adalah tool bawaan Linux yang sangat powerful untuk memodifikasi, menyaring, dan memanipulasi teks secara langsung melalui command line.-i(in-place): Parameter ini sangat krusial. Tanpa-i,sedhanya akan menampilkan hasil ubahannya di layar terminal Anda. Dengan menambahkan-i, kita memerintahkan sistem untuk langsung menyimpan hasil perubahannya ke dalam file aslinya.'s/archive.../sg.archive.../g': Ini adalah rumus inti pencariannya.Huruf
sdi awal berarti Substitute (ganti).Teks di bagian tengah (seperti
archive.ubuntu.comatausecurity.ubuntu.com) adalah teks lama yang menjadi target pencarian.Teks setelahnya (
sg.archive.ubuntu.com) adalah teks baru sebagai penggantinya. (Anda bisa menggantisgdengan kode negara lain sesuai lokasi VPS Anda, misalnyaiduntuk Indonesia).Huruf
gdi akhir berarti Global. Artinya, jika dalam satu baris terdapat lebih dari satu kata yang cocok, sistem akan mengganti semuanya, bukan hanya kata yang pertama kali ditemukan.
Target File (
/etc/apt/...): Kita menargetkan dua file sekaligus, yaitu/etc/apt/sources.listdan/etc/apt/sources.list.d/ubuntu.sources. Mengapa dua? Ubuntu versi lama menggunakan formatsources.list, sementara rilis terbaru seperti Ubuntu 24.04 (Noble Numbat) mulai menggunakan formatubuntu.sources. Dengan menyertakan keduanya, skrip ini menjadi aman digunakan di berbagai versi Ubuntu.2>/dev/null: Ini adalah trik agar tampilan terminal tetap bersih. Perintah ini mengalihkan (redirect) semua pesan error ke “tempat sampah” Linux (/dev/null). Jadi, seandainya VPS Anda hanya memiliki salah satu dari dua file target di atas, sistem tidak akan memunculkan peringatan error yang mengganggu.
Kesimpulan
Dengan mengeksekusi dua baris perintah sed di atas:
Perintah pertama mengubah alamat server pembaruan utama.
Perintah kedua mengubah alamat server untuk security patch.
Setelah menjalankannya, jangan lupa untuk membersihkan cache lama dengan rm -rf /var/lib/apt/lists/* && apt-get clean, lalu jalankan kembali apt-get update.
Kini, server VPS Anda tidak perlu lagi jauh-jauh mengunduh data dari server pusat. Proses update dan instalasi paket (seperti Docker atau Nginx) dijamin akan melesat jauh lebih cepat!