5
Instalasi di Linux dan macOS
Di Linux dan macOS, pemasangan dijalankan dari Terminal. Ada dua jalur: memasang CLI bebasid ke /usr/local/bin/bebasid, atau langsung menimpa /etc/hosts dengan berkas hosts dari repository. README memakai wget untuk Linux dan curl untuk macOS, keduanya mengambil berkas yang sama dari direktori releases/. README.md:115-1291 README.md:137-1522
Dua jalur pemasangan
| Langkah | Linux | macOS |
|---|---|---|
| Unduh CLI | sudo wget https://raw.githubusercontent.com/bebasid/bebasid/master/releases/bebasid.sh -O /usr/local/bin/bebasid | sudo curl https://raw.githubusercontent.com/bebasid/bebasid/master/releases/bebasid.sh -o /usr/local/bin/bebasid |
| Beri izin eksekusi | sudo chmod +x /usr/local/bin/bebasid | sudo chmod +x /usr/local/bin/bebasid |
| Lihat bantuan | bebasid --help | bebasid --help |
| Hanya hosts | sudo wget https://raw.githubusercontent.com/bebasid/bebasid/master/releases/hosts -O /etc/hosts | sudo curl https://raw.githubusercontent.com/bebasid/bebasid/master/releases/hosts -o /etc/hosts |
Perbedaan keduanya hanya pada utilitas unduh dan huruf opsi: wget memakai -O huruf besar, curl memakai -o huruf kecil. README.md:115-1291 README.md:137-1522
dev/readme/USAGE.md menuliskan urutan yang sama dalam tiga langkah berkomentar: # Install:, # Kemudian berikan perizinan ke folder bash:, dan # Bantuan:. Bagian Linux memakai wget, bagian BSD / macOS memakai curl, dan masing-masing menyertakan alternatif "jika hanya ingin memasang file hosts". dev/readme/USAGE.md:53-713 dev/readme/USAGE.md:73-914
⚠️ Jalur "Hanya hosts" menimpa
/etc/hostsapa adanya. Cadangan/etc/hosts.bak-bebasidhanya dibuat olehbebasid hosts install, jadi penimpaan manual tidak menyisakan berkas yang bisa dipulihkan lewatbebasid hosts remove. releases/bebasid.sh:273-3165
Penanda hosts terpasang
pasang_hosts_bebasid tidak membaca isi /etc/hosts. Fungsi itu hanya memeriksa [ -e /etc/hosts.bak-bebasid ]. Bila berkas itu ada, script mencetak "Komputer ini telah terpasang BEBASID, silahkan uninstall BEBASID terlebih dahulu" lalu exit 1. releases/bebasid.sh:273-3165
stateDiagram-v2
[*] --> BelumTerpasang
BelumTerpasang --> Terpasang: "hosts install"
Terpasang --> Terpasang: "hosts update"
Terpasang --> BelumTerpasang: "hosts remove"
Terpasang --> DitolakInstall: "hosts install ulang"
BelumTerpasang --> DitolakUpdate: "hosts update"
BelumTerpasang --> TanpaBackup: "hosts remove"
TanpaBackup --> [*]: "kembalikan_hosts"
DitolakInstall --> [*]: "exit 1"
DitolakUpdate --> [*]: "errorin"
style Terpasang fill:#2d7d46,color:#fff
style BelumTerpasang fill:#336791,color:#fff
style TanpaBackup fill:#f59e0b,color:#000
style DitolakInstall fill:#dc2626,color:#fff
style DitolakUpdate fill:#dc2626,color:#fff
%% fig: Transisi kondisi hosts di Linux dan macOS
%% desc: Penanda terpasang adalah keberadaan /etc/hosts.bak-bebasid, sehingga install, update, dan remove bercabang mengikuti ada atau tidaknya cadangan itu.Percabangan yang sama dipakai dua subperintah lain. perbarui_hosts_bebasid menghapus /etc/hosts lalu memanggil ambil_hosts_bebasid bila cadangan ada, dan memanggil errorin "hosts bebasid belum terpasang, silakan pasang hosts bebasid terlebih dahulu" bila tidak. releases/bebasid.sh:317-3296
hapus_hosts_bebasid menghapus /etc/hosts dan /etc/hosts-own, memulihkan cadangan dengan sudo mv /etc/hosts.bak-bebasid /etc/hosts, lalu menjalankan memulai_ulang_network. releases/bebasid.sh:331-3537
Bila cadangan tidak ada, fungsi itu meminta konfirmasi "Apakah anda yakin ingin menggunakan konfigurasi hosts bawaan Linux? (Y/N)" lalu memanggil kembalikan_hosts. releases/bebasid.sh:331-3537 releases/bebasid.sh:603-6178
⚠️
kembalikan_hostsmenulis templat khas Linux, termasuk127.0.1.1 $(hostname)dan::1 ip6-localhost ip6-loopback, lalu mencetak "Berhasil memasang hosts bawaan Linux" — juga saat dijalankan di macOS. releases/bebasid.sh:603-6178
Perpindahan berkas saat hosts dipasang
pasang_hosts_bebasid memindahkan hosts asli dengan sudo mv /etc/hosts /etc/hosts.bak-bebasid, menyalin isinya ke /etc/hosts-own di bawah penanda # Konfigurasi Asli dan # Konfigurasi Tambahan Pribadi, lalu memanggil ambil_hosts_bebasid. releases/bebasid.sh:273-3165
ambil_hosts_bebasid menetapkan dir=/etc/hosts lalu mengunduh releases/hosts ke sana. Bila unduhan berhasil, isi /etc/hosts-own ditempel dengan cat /etc/hosts-own >> /etc/hosts dan memulai_ulang_network dijalankan. Bila gagal, cadangan dikembalikan dengan sudo mv /etc/hosts.bak-bebasid /etc/hosts. releases/bebasid.sh:253-2729
graph LR
asli["/etc/hosts asli"] -->|"sudo mv"| bak["/etc/hosts.bak-bebasid"]
bak -->|"cat"| own["/etc/hosts-own"]
unduh["releases/hosts"] -->|"curl_wget"| baru["/etc/hosts BebasID"]
own -->|"cat >>"| baru
baru -->|"memulai_ulang_network"| net["Network Manager / mDNSResponder"]
style asli fill:#336791,color:#fff
style bak fill:#336791,color:#fff
style own fill:#8b5cf6,color:#fff
style baru fill:#8b5cf6,color:#fff
style unduh fill:#f59e0b,color:#000
style net fill:#2d7d46,color:#fff
%% fig: Perpindahan berkas saat hosts dipasang
%% desc: Hosts asli menjadi cadangan, isinya disalin ke /etc/hosts-own, lalu hosts unduhan ditambahi isi hosts-own sebelum network dimulai ulang.| Path | Ditulis oleh | Isi |
|---|---|---|
/usr/local/bin/bebasid | perintah pasang di README | script CLI bebasid.sh |
/etc/hosts.bak-bebasid | pasang_hosts_bebasid | hosts asli sebelum ditimpa, sekaligus penanda terpasang |
/etc/hosts-own | pasang_hosts_bebasid, lalu localhost_hosts | hosts asli plus bagian # Konfigurasi Tambahan Pribadi |
/etc/hosts | ambil_hosts_bebasid | hosts BebasID ditambah salinan /etc/hosts-own |
README.md:115-1291 releases/bebasid.sh:273-3165 releases/bebasid.sh:253-2729 releases/bebasid.sh:700-71810
Deteksi platform dan restart network
memulai_ulang_network memakai getUname=$(uname -s) dan bercabang pada pola Linux* dan Darwin*. Di Linux, fungsi itu menebak distribusi dari berkas penanda, lalu menjalankan perintah restart yang sesuai. releases/bebasid.sh:165-21411
| Deteksi | Berkas penanda | Perintah restart |
|---|---|---|
debian | /etc/debian_version, lalu source /etc/os-release | sudo /etc/init.d/network-manager restart |
ubuntu | $ID dari /etc/os-release | sudo service network-manager restart |
centos | /etc/centos-release | sudo systemctl restart NetworkManager.service |
fedora | /etc/fedora-release | sudo systemctl restart NetworkManager.service |
rockylinux | /etc/rockylinux-release | sudo systemctl restart NetworkManager.service |
arch | /etc/arch-release | sudo systemctl restart NetworkManager.service |
Darwin* | hasil uname -s | sudo killall -HUP mDNSResponder |
Bila tidak ada berkas penanda yang dikenali, fungsi mencetak "Tidak dapat memulai ulang Network Manager" dan menyarankan restart manual. releases/bebasid.sh:165-21411
Fungsi about mendaftar platform yang diuji: Debian, Ubuntu, Linux Mint, CentOS, Fedora, Arch Linux, Manjaro, dan MacOS Catalina. releases/bebasid.sh:60-6912
Prasyarat
curl_wget memilih curl bila tersedia, lalu wget; bila keduanya tidak ada, script berhenti dengan "Harap install cURL atau wget". releases/bebasid.sh:131-14013
Sebelum memasang hosts, cek_koneksi_dengan_internet melakukan ping -c 1 8.8.8.8; bila gagal, script berhenti dengan "Silahkan cek koneksi komputer dengan internet terlebih dahulu". releases/bebasid.sh:151-16414
Menambahkan entri localhost
dev/scripts/localhost.sh menawarkan empat pilihan: 1) MacOS localhost, 2) Linux localhost, 3) Android localhost, dan 4) Keluar. Script mencari baris yang memuat OPTIONAL] di /etc/hosts, mengambil nomor barisnya, lalu menyisipkan blok baru dengan sudo sed -i "${linenumber}a\...". Aturan macOS menyisipkan 127.0.0.1 localhost, 255.255.255.255 broadcasthost, ::1 localhost, dan fe80::1%lo0 localhost; aturan Linux menyisipkan 127.0.0.1 localhost $HOSTNAME beserta baris IPv6. dev/scripts/localhost.sh:5-2215
⚠️
linenumberberasal darigrep -n "OPTIONAL]" /etc/hosts. Kalau penanda itu tidak ada di hosts BebasID yang sedang terpasang, variabelnya kosong danseddijalankan tanpa nomor baris. dev/scripts/localhost.sh:5-2215
Untuk CLI, bebasid localhost [website] [ip] menambah entri ke /etc/hosts dan /etc/hosts-own, serta menyalinnya ke /etc/hosts.bak-bebasid supaya entri bertahan setelah bebasid hosts remove. releases/bebasid.sh:700-71810
Setelah pemasangan
Subperintah hosts, app, tunnel, block, unblock, dan localhost diurai oleh blok case $1 in di akhir script. Nama yang tidak dikenal dijawab "Perintah tidak dikenali, ketik bebasid --help untuk bantuan". releases/bebasid.sh:976-99016
Rincian tiap perintah ada di Referensi Perintah CLI bebasid. Mekanisme hosts sendiri dibahas di Cara Kerja Hosts File. Untuk Windows lihat Instalasi di Windows, dan untuk perangkat Android lihat Instalasi di Android dan Modul Magisk.