โšก dalam.web.id

Skrip nixos-mirror.sh: Atur Mirror Tercepat untuk NixOS

NixOS menggunakan file nix.conf untuk mengatur substituter (mirror repositori). Dengan menambahkan mirror yang lebih cepat, kita bisa mempercepat proses seperti nix-env dan nixos-rebuild. Skrip ini akan mengotomatiskan proses tersebut.

Peringatan Penting: Jalankan skrip ini dengan hak akses sudo karena akan mengubah file sistem di /etc/nix/nix.conf. Selain itu, pastikan Anda mengganti placeholder trusted-public-keys dengan kunci publik yang valid dari mirror yang Anda gunakan.

Kode Skrip

Skrip ini akan secara otomatis membuat backup dari file konfigurasi Anda yang ada, lalu menambahkan substituter baru.

#!/bin/bash
# nixos-mirror.sh โ€” atur substituter mirror tercepat NixOS
set -e
CONF_FILE="/etc/nix/nix.conf"
BACKUP="/etc/nix/nix.conf.backup.$(date +%F)"
echo "[INFO] Membackup konfigurasi lama ke $BACKUP ..."
sudo cp "$CONF_FILE" "$BACKUP"
echo "[INFO] Menambahkan substituter mirror..."
sudo tee -a "$CONF_FILE" >/dev/null <<'EOF'
# Tambahan substituter mirror cepat
substituters = https://cache.nixos.org https://mirror.sjtu.edu.cn/nix-channels/store
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= mirror.sjtu.edu.cn-1:PASTE_PUBLIC_KEY_HERE
EOF
echo "[INFO] Update channel..."
nix-channel --update
echo "[DONE] Substituter NixOS berhasil ditambahkan. Silakan verifikasi file $CONF_FILE."

Cara Menggunakan

  1. Simpan skrip di atas sebagai file, misalnya nixos-mirror.sh.
  2. Temukan kunci publik yang benar untuk mirror yang ingin Anda tambahkan (misalnya, mirror.sjtu.edu.cn). Ganti PASTE_PUBLIC_KEY_HERE di dalam skrip dengan kunci yang valid.
  3. Berikan izin eksekusi pada skrip: chmod +x nixos-mirror.sh.
  4. Jalankan skrip dengan hak akses root: sudo ./nixos-mirror.sh.

Setelah selesai, proses build dan update NixOS Anda seharusnya akan berjalan lebih cepat dengan memanfaatkan mirror tambahan tersebut.