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:

Bash
 
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, sed hanya 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 s di awal berarti Substitute (ganti).

    • Teks di bagian tengah (seperti archive.ubuntu.com atau security.ubuntu.com) adalah teks lama yang menjadi target pencarian.

    • Teks setelahnya (sg.archive.ubuntu.com) adalah teks baru sebagai penggantinya. (Anda bisa mengganti sg dengan kode negara lain sesuai lokasi VPS Anda, misalnya id untuk Indonesia).

    • Huruf g di 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.list dan /etc/apt/sources.list.d/ubuntu.sources. Mengapa dua? Ubuntu versi lama menggunakan format sources.list, sementara rilis terbaru seperti Ubuntu 24.04 (Noble Numbat) mulai menggunakan format ubuntu.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:

  1. Perintah pertama mengubah alamat server pembaruan utama.

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

Scroll to Top