Untuk menjalankan versi formula Homebrew terinstal yang berbeda sebagai layanan latar belakang macOS, hentikan layanan formula saat ini, jalankan formula berversi berdasarkan namanya sendiri, lalu konfirmasikan layanan mana yang sedang berjalan. Misalnya, jika postgresql@16 dan postgresql@17 sama-sama terinstal, gunakan brew services stop postgresql@16 diikuti oleh brew services start postgresql@17. Pengelola layanan Homebrew menggunakan launchd macOS; tanpa sudo, pengelola ini mendaftarkan layanan untuk dijalankan saat Anda login. Panduan brew(1) Homebrew
1. Temukan nama formula yang terinstal
Gunakan catatan Homebrew sendiri untuk memeriksa apa saja yang terinstal dan bagaimana nama formula tersebut dieja:
brew list --versions
brew info postgresql@16
brew info postgresql@17
Ganti contoh tersebut dengan nama formula layanan Anda. Formula berversi adalah formula Homebrew terpisah, yang umumnya ditulis dengan akhiran @; ini bukan perintah untuk memilih versi historis arbitrer dari suatu formula. Formula berversi yang tersedia bergantung pada apa yang saat ini disediakan oleh Homebrew. Homebrew juga menjelaskan bahwa formula berversi memiliki jumlah terbatas, dan beberapa di antaranya mungkin akan dihapus seiring waktu. Versi Formula Homebrew
Sebelum beralih, periksa output brew info dari masing-masing formula untuk melihat rincian layanannya dan catatan migrasi apa pun. Nama formula baru tidak menjamin bahwa layanan tersebut dapat menggunakan kembali direktori data atau konfigurasi versi lama. Perangkat lunak basis data dan server mungkin memiliki persyaratan pemutakhiran (upgrade) atau penurunan versi (downgrade) khusus aplikasi; ikuti proses migrasi terdokumentasi dari perangkat lunak tersebut sebelum memulai versi lain terhadap data yang ada.
2. Hentikan layanan salah satu formula dan jalankan yang lain
Jalankan perintah layanan tanpa sudo untuk layanan yang dimulai saat Anda login:
brew services stop postgresql@16
brew services start postgresql@17
brew services list
Gunakan token formula yang sebenarnya terinstal untuk menggantikan contoh PostgreSQL. brew services stop dan start menerima nama formula, jadi langkah ini memilih layanan yang terkait dengan formula target. Perintah list memungkinkan Anda memeriksa status layanan yang dilaporkan Homebrew setelahnya. Panduan ini mendokumentasikan pengelolaan layanan melalui launchd dan mencatat bahwa konfigurasi non-sudo menggunakan ~/Library/LaunchAgents, sehingga cakupannya terbatas pada login pengguna saat ini. Panduan brew(1) Homebrew
Jika versi target sudah terinstal tetapi layanannya belum berjalan, jalankan langsung. Jika ingin memulai ulang untuk formula yang sama, perintah brew services restart FORMULA telah terdokumentasi; saat mengganti versi, menghentikan formula lama secara eksplisit dan memulai formula baru memperjelas transisi yang diinginkan. Jangan gunakan brew services restart --all untuk pengalihan satu layanan karena hal ini memengaruhi setiap layanan Homebrew.
3. Pahami perbedaan antara pemilihan layanan dan pemilihan perintah
Menjalankan formula berversi sebagai layanan tidak serta-merta menjadikan alat baris perintahnya sebagai default di Terminal. Homebrew menginstal setiap formula ke dalam keg Cellar yang berversi. Menautkan (linking) formula akan membuat symlink di direktori awalan bersama (shared prefix) Homebrew, sementara beberapa formula berversi ditandai sebagai keg-only dan tidak ditautkan di sana secara default. Panduan brew(1) Homebrew, FAQ Homebrew: Apa arti “keg-only”?
Periksa brew info FORMULA untuk mengetahui apakah formula tersebut keg-only dan panduan PATH apa pun yang disediakan. Jika Anda hanya memerlukan layanan latar belakang untuk menggunakan versi lain, kelola layanannya berdasarkan nama formula; jangan berasumsi bahwa mengubah tautan (link) itu wajib. Hindari brew link --force sebagai langkah pengalihan umum: Homebrew memperingatkan bahwa memaksa formula keg-only masuk ke direktori bersama dapat menimbulkan konflik. Panduan dependensi keg-only Homebrew
4. Jika layanan target gagal dimulai
Pertama, periksa brew services list dan output brew info dari formula target. Konfirmasikan bahwa layanan lama telah berhenti dan formula baru benar-benar menyediakan definisi layanan; dukungan layanan Homebrew bergantung pada formula yang memiliki konfigurasi layanan. Formula Cookbook Homebrew
Selanjutnya, periksa log dan konfigurasi aplikasi itu sendiri. Suatu layanan dapat gagal bahkan saat formula telah terinstal—misalnya, karena konfigurasinya mengarah ke direktori data yang berbeda, port sudah digunakan, atau suatu versi tidak dapat membuka data yang ada. Ini adalah kemungkinan-kemungkinan di tingkat aplikasi, bukan perbaikan yang dijamin oleh Homebrew; gunakan dokumentasi resmi aplikasi sebelum mengubah atau menghapus data.
Gunakan sudo brew services hanya jika Anda memang sengaja memerlukan layanan di seluruh sistem yang dimulai saat boot. Homebrew mendokumentasikan mode ini beroperasi di /Library/LaunchDaemons, sedangkan layanan pengguna default dijalankan saat login. Sebagian besar layanan pengembangan pribadi harus dikelola di bawah akun pengguna yang memiliki file-file tersebut. Panduan brew(1) Homebrew
Oleh karena itu, pengalihan yang berhasil memiliki dua pemeriksaan: Homebrew melaporkan formula yang dimaksud sedang berjalan, dan aplikasi itu sendiri merespons seperti yang diharapkan. Status layanan saja tidak memvalidasi kompatibilitas data atau membuktikan bahwa klien baris perintah sekarang mengarah ke versi formula tersebut.
Sumber
Dokumentasi Homebrew: brew(1) – The Package Manager for Everywhere — Homebrew
Dokumentasi Homebrew: Formulae Versions — Homebrew
Dokumentasi Homebrew: FAQ — Homebrew
Dokumentasi Homebrew: Building Software with Homebrew Keg-Only Dependencies — Homebrew
Dokumentasi Homebrew: Formula Cookbook — Homebrew