Skip to Content
Bootstrap

Bootstrap Mesin Baru

Dokumen ini untuk mesin macOS yang masih kosong, belum ada Homebrew, belum ada repositori, belum ada konfigurasi apa pun. Kalau mesinmu sudah punya repositori ini, cukup ikuti SETUP.md saja.

Prasyarat

  • Mac dengan macOS 13 atau lebih baru
  • Akses administrator
  • Koneksi internet
  • Kredensial git untuk repositori ini (repo privat, jadi git clone tanpa kredensial akan gagal)
  • Layout keyboard US, bukan nonlocalized, karena xcode-select --install menampilkan tombol berbahasa Inggris

Perintah Tunggal

git clone <repo-url> ~/Developer/dotfiles cd ~/Developer/dotfiles bash scripts/bootstrap.sh

<repo-url> sengaja dibiarkan sebagai placeholder, sama seperti di README.md. Ganti dengan URL repositorimu.

Jalankan skrip sebagai pengguna biasa, jangan sudo. Homebrew menolak dipasang sebagai root.

Pratinjau Dulu

Skrip ini mengubah mesin secara nyata, jadi pratinjau selalu lebih aman:

DRY_RUN=1 bash scripts/bootstrap.sh

Dry-run mencetak rencana tiap langkah tanpa menyentuh filesystem: tidak memanggil xcode-select --install, tidak memasang Homebrew, tidak meng-clone, tidak menjalankan brew bundle.

Yang Perlu Diketahui Sebelum Menjalankan

Pada mesin yang benar-benar kosong, Xcode Command Line Tools belum ada. Langkah 1 memicu dialog sistem yang harus kamu tekan sendiri, lalu skrip berhenti dan meminta kamu mengulang perintahnya. Installer Homebrew sendiri juga butuh Command Line Tools, jadi melanjutkan di tengah dialog itu hanya akan menghasilkan error yang membingungkan.

Jadi di mesin kosong, jalankan perintahnya dua kali. Di mesin yang sudah punya Command Line Tools, sekali saja cukup.

Enam Langkah

#LangkahYang Terjadi
1Xcode Command Line ToolsCek xcode-select -p. Kalau kosong, jalankan xcode-select --install lalu berhenti dan minta diulang.
2HomebrewPaket manager dari brew.sh. Prefix ditentukan arsitektur: /opt/homebrew untuk Apple Silicon, /usr/local untuk Intel.
3Clone repositoriClone ke ~/Developer/dotfiles kalau direktori itu belum ada. Kalau sudah ada, dilewati tanpa perubahan.
4Paket dari Brewfilebrew bundle memasang semua entri Brewfile.
5Git hooksmake hooks memasang pre-commit hook.
6Symlink dotfilesmake install menyambungkan konfigurasi ke beranda.

Semua langkah idempotent. Menjalankan skrip berulang kali aman: yang sudah beres akan dilewati, bukan dipasang ulang.

Non-Interactive dan CI

Kalau variabel CI terisi, instalasi Homebrew berjalan dengan NONINTERACTIVE=1 supaya tidak berhenti menunggu jawaban.

Skrip ini tetap tidak cocok untuk CI, karena langkah 1 memerlukan seseorang menekan tombol Install di dialog sistem. Pada runner tanpa sesi GUI, dialog itu tidak pernah tampil. Untuk CI, pasang Command Line Tools lebih dulu lewat paket resmi yang diunduh atau machine image, pastikan xcode-select -p sudah mengembalikan path, baru jalankan skrip tanpa DRY_RUN=1.

Verifikasi

cd ~/Developer/dotfiles make verify # cek symlink make lint # cek kualitas repo

make verify akan mencetak satu baris untuk tiap entri di scripts/lib/symlinks.sh. Semua harus bertanda OK.

Yang Tidak Dilakukan Skrip Ini

  • Tidak menerapkan setelan animasi macOS. Jalankan make macos.
  • Tidak memasang tool di luar Homebrew seperti uv dan ty. Lihat TOOLCHAIN.md.
  • Tidak mengedit aplikasi yang dipasang manual lewat DMG, seperti Dia dan Writer. Lihat APPLICATIONS.md.
  • Tidak menyentuh file profil shell. Kalau brew tidak ada di PATH setelah instalasi, skrip memberi perintah untuk menambahkannya sendiri.

Pemecahan Masalah

Clone gagal

Repo ini privat. Pilih salah satu, lalu ulangi:

# Pakai SSH ssh-keygen -t ed25519 -C "email-kamu" ssh-add ~/.ssh/id_ed25519 REPO_URL=git@github.com:aderamdani/dotfiles bash scripts/bootstrap.sh

brew tidak ditemukan di PATH

eval "$(/opt/homebrew/bin/brew shellenv)" # Apple Silicon eval "$(/usr/local/bin/brew shellenv)" # Intel

Supaya permanen, tambahkan baris yang sama ke ~/.zprofile.

brew bundle gagal

Pesan Homebrew menyebut paket mana yang bermasalah. Perbaiki manual:

cd ~/Developer/dotfiles brew bundle check --verbose # lihat yang belum terpasang brew bundle --file=Brewfile

Direktori repo sudah ada tapi bukan repositori dotfiles yang benar

Skrip tidak pernah menghapus atau menimpa direktori itu. Pindahkan manual lalu ulangi:

mv ~/Developer/dotfiles ~/Developer/dotfiles.lama bash scripts/bootstrap.sh

make install gagal karena file asli sudah ada

install.sh mencadangkan file yang sudah ada ke ~/.dotfiles-backup/<timestamp>/ sebelum menimpanya. Kalau muncul error lain, jalankan make install DRY_RUN=1 untuk melihat rencana tanpa mengubah apa pun.

Dialog Install tidak muncul

xcode-select --install kadang diam-diam tidak menampilkan dialog bila instalasi sudah berjalan. Periksa:

xcode-select -p

Kalau path tetap kosong, unduh Command Line Tools manual dari developer.apple.com/downloads dan pasang lewat dmg-nya.

Last updated on