Ceritanya biasa aja sebenarnya. Aku lagi kerja seperti biasa di MacBook, ngetik beberapa perintah di terminal, terus muncul pesan kecil yang sering aku lewatin gitu aja:
To upgrade your installed ports, you should run
port upgrade outdated
You haven't run 'sudo port reclaim' in two weeks. It's recommended you run this regularly to reclaim disk space. Would you like to run it now? [Y/n]:
Aku ketik n.
Bukan males, tapi refleks lama: kalau ada perintah yang bakal ngehapus-hapus sesuatu, mending lihat dulu apa yang mau dihapus, baru eksekusi. Kebiasaan ini kebentuk dari sering ngoprek Linux belakangan ini—takut kebiasaan asal Y terus kebawa ke server production, hehe.
Tapi rasa penasaran itu jalan terus. Akhirnya sore itu jadi sesi bongkar-bongkar kecil-kecilan sama MacPorts di MacBook Pro Mid 2012 kesayanganku.
MacBook Tua, Tapi Masih Jadi Tempat Kerja Utama
Laptop ini udah lumayan berumur kalau dibanding standar sekarang. Tapi ya masih jadi andalan sehari-hari buat kerjaan: SEO, ngoprek WordPress, PHP, Laravel, database, sampai eksperimen server administration dan belajar Linux.
Environment development-nya aku bangun di atas MacPorts—package manager yang cukup dekat dengan gaya Unix, banyak hal bisa diatur dari terminal. Enaknya gitu, tapi konsekuensinya juga jelas: makin lama dipakai, makin banyak paket numpuk. Versi baru datang, versi lama nggak otomatis ilang, dependency saling tumpuk, distfiles dan build cache juga ikut menggendut pelan-pelan.
Dry Run Dulu, Baru Yakin
Daripada langsung sudo port reclaim, aku coba simulasiin dulu:
sudo port reclaim -n
Flag -n ini bikin MacPorts cuma nunjukkin apa yang akan dibersihkan, tanpa benar-benar menghapus apa pun.
Dari situ muncul daftar port berstatus unrequested, di antaranya:
python313
boost188
cmake
libarchive
bison
snappy
python_select-313
python3_select-313
libcxx
libb2
libfmt12
bison-runtime
Waktu ditanya mau diuninstall atau nggak, aku pilih n lagi.
Ternyata “unrequested” itu bukan berarti “nggak kepakai”. Artinya cuma: paket itu nggak diminta secara eksplisit sama user, tapi masih bisa jadi dependency dari paket lain. Jadi kalau nekat hapus manual berdasarkan daftar ini doang, bisa-bisa malah ganggu paket lain yang justru aktif kepakai.
Bagian yang Lebih Masuk Akal: Inactive Ports
Setelah bagian unrequested, MacPorts lanjut nunjukkin daftar inactive ports—versi lama yang udah nggak jadi versi aktif setelah upgrade. Contohnya:
php82 @8.2.30
mariadb-10.11 @10.11.13
nginx @1.28.3
python314 @3.14.6
curl @8.19.0
Di sistemku sendiri, versi-versi ini emang udah ada penggantinya yang lebih baru dan aktif—PHP-nya udah di 8.2.33, Nginx di 1.30.4, MariaDB di 10.11.18. Nah, bagian ini yang emang enak buat dibersihkan.
Sebelum lanjut, aku juga cek dulu apa aja yang bener-bener aku anggap “dipakai” lewat:
port installed requested
Muncul nginx, mariadb-10.11, php82, python313, python314, nodejs20, npm10, git, rclone, ffmpeg, ImageMagick—komponen inti kerjaan sehari-hari. Aman.
Ngecek PHP dan Python, Ternyata Ada yang Nyempil
Iseng-iseng cek PHP selector:
port select --list php
Hasilnya php82 yang aktif. Cocok sama daftar port yang muncul: php82 @8.2.33 aktif, versi 8.2.30 yang lama.
Yang bikin aku sempat mikir agak lama itu Python. MacPorts nunjukkin dua versi terpasang, python313 dan python314. Tapi pas aku cek langsung:
python3 --version
Keluarnya Python 3.9.6. Terus which python3 mengarah ke /usr/bin/python3—Python bawaan macOS, bukan yang dari MacPorts.
Baru sadar kalau punya MacPorts nggak otomatis jadi yang dipanggil pas ngetik python3 di terminal. Ada lapisan lain: Python sistem, Python MacPorts, selector-nya, sama PATH shell—empat hal yang beda-beda meski kelihatannya nyambung.
MariaDB Nggak Lagi Jalan, Tapi Paketnya Tetap Ada
Cek juga proses MariaDB:
pgrep -fl mariadbd
Nggak keluar apa-apa, artinya prosesnya emang lagi nggak jalan saat itu. Tapi paketnya sendiri, mariadb-10.11 dan mariadb-10.11-server, tetap ada di daftar port aktif. Jadi ya wajar aja—terpasang, aktif sebagai paket, tapi service-nya kebetulan lagi mati. Tiga hal yang beda: installed, active, sama running.
Eksekusi Reclaim
Cek ukuran folder dulu sebelum bersih-bersih:
du -sh /opt/local/var/macports/distfiles # 494M
du -sh /opt/local/var/macports/build # 13M
Baru deh jalanin beneran:
sudo port reclaim
Bagian unrequested tetap aku skip (n), tapi bagian inactive ports dan cache aku biarin MacPorts bersihin. Hasilnya:
Found 20 files (total 334.85 MiB) that are no longer needed and can be deleted.
Setelah selesai, cek lagi ukurannya:
distfiles: 494 MB → 156 MB
build: 13 MB → 0 B
Total sekitar 350 MB kebebasin. Angkanya nggak spektakuler, tapi lumayan buat rutinitas maintenance ringan.
Cek Storage, Ternyata Masih Longgar Banget
df -h /
Size Used Avail Capacity
477Gi 29Gi 308Gi 9%
Masih ada 308 GB kosong. Jadi bukan situasi darurat storage, ini murni bersih-bersih rutin aja, bukan panik karena disk penuh.
Sanity Check Terakhir
port installed active
Outputnya panjang banget, tapi intinya semua komponen penting masih (active)—nginx, mariadb-10.11, php82, python313, python314, nodejs20, npm10, git, rclone, ffmpeg, ImageMagick, dan sederet dependency lain. Nggak ada yang ilang gara-gara reclaim.
Sempat Kepikiran Soal Xcode
Di tengah-tengah proses, sempat muncul pesan:
Error: The installed version of Xcode, none, is not supported by MacPorts.
Awalnya kedengeran serius. Tapi setelah dicek:
xcode-select -p
hasilnya /Library/Developer/CommandLineTools—jadi Command Line Tools-nya ada, cuma full Xcode.app yang emang nggak terpasang. Dicek lagi versinya lewat pkgutil --pkg-info=com.apple.pkg.CLTools_Executables, keluar versi 14.2, yang masih termasuk versi yang didukung. Jadi ya, dibiarin aja, nggak perlu buru-buru install Xcode segala.
Penutup
Segitu aja sebenarnya ceritanya. Nggak ada drama besar, cuma sesi bersih-bersih MacPorts sore itu yang berujung ngulik beberapa hal kecil: bedanya unrequested sama unused, kenapa inactive ports lebih aman dibersihin, kenapa Python di MacPorts belum tentu sama dengan python3 yang jalan di terminal, dan beda antara installed, active, sama running.
Hasil akhirnya: ~350 MB kebebasin, nggak ada broken port, semua service inti tetap aktif. MacBook 2012 ini masih jalan, dan aku juga masih di sini, ngoprek pelan-pelan.
Checklist yang sekarang aku pakai kalau mau maintenance MacPorts lagi:
port outdated— lihat dulu apa yang ketinggalan versisudo port upgrade outdated— upgrade kalau memang perlusudo port reclaim -n— simulasi dulu sebelum hapus beneran- Perhatikan unrequested ports, jangan buru-buru dihapus
- Bersihin inactive ports
- Cek ukuran
distfilesdanbuildsebelum & sesudah port installed activebuat verifikasi akhir

Tidak ada komentar