lifelong learner — urip iku urup, currently working on accenture.

Deleted /usr/local/bin

0
Degananda.com -

OSX Deleted /usr/local/bin

Hari ini kami mengalami sesuatu yang sial yakni secara tidak sengaja melakukan delete pada /usr/local/bin. Awalnya kami memindah isi dari /usr/local/bin ini ke folder lain. Namun setelah itu tidak sengaja mendelete folder yang didalamnya terdapat /usr/local/bin. Dan parahnya kami tidak menyadari bahwa /usr/local/bin tersebut ada didalam folder tersebut sehingga terlanjur melakukan restart dan folder telah terhapus dari trash / recycle in 🙁

Ini adalah perintah yang saya eksekusi (saat mencoba menginstall nodejs binding untuk imagemagick)

sudo ln -s `ls /usr/lib/\`uname -p\`-linux-gnu/ImageMagick-*/bin-Q16/Magick++-config | head -n 1` /usr/local/bin/

perintah petunjuk installasi diatas tidaklah salah , yang salah adalah saya selaku user yang menggunakan perintah tersebut tanpa mengerti apa yang sebenarnya dilakukan oleh perintah diatas. Sebenarnya perintah diatas hanyalah memindah /usr/local/bin ke direktori saat itu. Namun bodohnya saya adalah mendelete folder tersebut dengan rm -rf karena mengira itu adalah hasil copy. dan BOOM ternyata itu adalah folder asli yang terlinking dengan perintah “ln -s”. Folder /usr/local/bin hilang karena saya menggunakan rm -rf untuk menghapusnya seharusnya untuk melakukan hapus pada link cukup dengan perintah

unlink ./path

/usr/local/bin ini dibutuhkan untuk melakukan terminal command. Program-program dengan GUI(Graphical user interfaces) tidak terkena dampaknya. Untungnya yang terdelete hanyalah /usr/local/bin which is hanya digunakan pada terminal bukan pada /usr/bin yang merupakan folder untuk menyimpan konfigurasi aplikasi ataupun sistem operasi osx itu sendiri. Jika yang terdelete /usr/bin solusinya hanyalah melakukan reinstall terhadap osx.  Kondisi /usr/bin

kondisi /usr/local/bin

sangat mengenaskan bukan, tidak ada yang tersisa di folder “bin” tersebut. Kami tidak dapat melakukan perintah-perintah yang digunakan dalam commandline. Namun package – package bawaan mac seperti java tidak terkena dampaknya. Ionic, angular , mongo dan aplikasi lain yang saya tidak tahu apa saja yang menggunakan /usr/local/bin tidak dapat dijalankan pada terminal.

Kami mencoba menjalankan mongo melalui terminal

kemudian kami mengecek salah satu aplikasi paling berharga bagi kami yakni XAMPP dimana didalamnya terdapat berbagai jenis project php yang kami buat semenjak kuliah/sma. Dan alhamdulillah masih dapat dibuka. Mungkin karena xampp ini adalah aplikasi gui yang tidak menggunakan /usr/local/bin sehigga tidak terpengaruh.

selanjutnya adalah database mysqlnya. Kami mencoba mengkases mysql melalui terminal.

dan seperti yang kita duga bahwa mysql tidak dapat diakses dengan menggunakan terminal. Namun bukan berarti mysql ini “rusak” karena instancesnya masih berjalan.

sehingga kami putuskan untuk mencoba mengakes mysql melalui phpmyadmin (apache). Dan hasilnya alhamdulillah database masih dapat diakses oleh karena itu data-data aman.

Solusi

Setelah melakukan googling maka untuk menyelesaikan permasalahan terdeletenya “/usr/local/bin” ini yakni dengan melakukan install kembali aplikasi / library tersebut. Contohnya mongo seperti pada gambar diatas tadi tidak berjalan sehingga kita harus melakukan install kembali mongodb tersebut. Tentunnya ini akan menyita banyak sekali waktu tergantung dari jumlah aplikasi yang biasa kita akses dengan menggunakan terminal. Untuk aplikasi GUI (tidak memerlukan terminal) tidak menjadi masalah serius.

olehkarena itu maka kami melakukan reinstall terhadap

  1. homebrew
  2. mongodb
  3. angular-cli
  4. ionic
  5. nodejs
  6. cordova

dan finally ! mongo , ionic , angular dan nodejs telah berhasil digunakan kembali pada commandline.

dan tidak ada database yang hilang dikarenakan mekanisme yang kami lakukan hanyalah seperti “mengupdate/mengupgrade” suatu aplikasi. Namun muncul masalah baru yakni “shell and server version do not match” ya ini akibat kami menginstall mongodb tanpa mematikan instaces mongodb. Pertama kita lihat apakah instances mongodb berjalan dengan

brew services list

setelah itu kita dapat menjalankan mongodb tersebut dengan perintah

brew services start mongodb

maka warning”version do not match” tidak ada lagi saat kita menjalankan “mongo” pada terminal.

Mendapatkan daftar aplikasi

Jika anda menggunakan homebrew dan mengalami kejadian seperti yang kami alami maka kita dapat mendapatkan daftar aplikasi yang kita install dengan homebrew melalui terminal. Buka /usr/local/Cellar maka akan terdapat daftar(list) package-package yang kita install menggunakan homebrew. Ini setidaknya akan sedikit membantu mengenai aplikasi apa saja yang harus kita re-install.

Pelajaran

kami mendapatkan pelajaran yang sangat penting yaitu setiap perintah yang menggunakan “sudo” pastikan kita benar-benar tahu apa yang dilakukan oleh perintah tersebut.