Merawat, Bukan Mengganti: Kenapa MacBook 2012 Ini Masih Setia

merawat macbook 2012 macports

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:

  1. port outdated — lihat dulu apa yang ketinggalan versi
  2. sudo port upgrade outdated — upgrade kalau memang perlu
  3. sudo port reclaim -n — simulasi dulu sebelum hapus beneran
  4. Perhatikan unrequested ports, jangan buru-buru dihapus
  5. Bersihin inactive ports
  6. Cek ukuran distfiles dan build sebelum & sesudah
  7. port installed active buat verifikasi akhir

 

Tidak ada komentar