Menambah Custom PATH Permanen di GNU/Linux

Mengapa menambah custom PATH?

Telah menjadi rutinitas, tiap hari saya selalu membaca kabar seputar dunia teknologi informasi (TI) dari RSS situs langganan. Nyeleneh, mungkin begitu kata orang Jawa, mengingat saya tidaklah berkecimpung di dunia TI dan dunia kuli yang kini ditekuni pun jarang menyentuh ranah TI. Namun seperti kata para pujangga, "tidak perlu alasan untuk menyukai", demikian halnya kegemaran saya terhadap dunia teknologi informasi. Seperti orang yang tergila-gila memancing ikan, sering tidak masuk akal, namun mungkin itulah konsekuensi dari hobi.

Dan kali ini, saya menemukan hal yang baru. Sebuah penyunting teks. Entah memang baru dikembangkan, atau hanya baru saya ketahui. Orang bilang untuk apa membuat penyunting teks baru? Tidakkah cukup banyak penyunting teks yang kini bertebaran di dunia FLOSS (free and libre open source software)?

Memang benar bahwasanya penyunting teks di dunia FLOSS lumayan melimpah. Dari gedit yang elegan, geany yang spartan, atau vi(m) yang elitis.
Saya telah lama memakai gedit, hingga suatu saat ia tersedak ketika mesti membuka sebuah berkas minified CSS/js berukuran beberapa MB. Saya juga pernah mencoba vi(m). The hell is this shit? Lebih banyak waktu terbuang untuk mencari tahu bagaimana untuk melakukan ini dan itu dibanding untuk menulis. Pernah juga mencoba sublime yang lumayan mengagumkan. Namun sayangnya saya tidak merasakan "kehangatan hati" dalam menggunakan sublime. Selain tidak terbuka, ia juga terus-menerus mengingatkan untuk membelinya. 70 dollar Amerika untuk sebuah penyunting teks adalah terlalu mewah bagi saya. Akhirnya, untuk penyunting teks GUI saya berlabuh di geany hingga kini. Tampilannya biasa saja malah GTK2-nya cenderung ketinggalan zaman. But it's get the works done. Easily. Sementara untuk penyunting teks CLI saya mengandalkan nano.

Kembali ke penyunting teks yang beritanya baru saya baca tadi. Namanya adalah micro. Semacam permainan kata dari penyunting teks sebelumnya. Menurut hikayat, nano adalah penerus dari pico. Dan micro ini digadang sebagai penerus dari nano. Mungkin di masa datang akan ada penyunting teks bernama centi atau mili.
Jarang-jarang saya tertarik mencoba piranti lunak baru. Namun micro lumayan mendapat sambutan hangat di reddit, yang kemudian membangkitkan minat saya untuk mencobanya.
Repo GitHub-nya menyediakan biner yang telah dikompilasi, ukurannya kecil tidak mencapai 4MB. Tidak ada ruginya untuk mencoba.

Sekilas setelah mencoba micro, bisa dikata, saya terkesan. Yang paling membuat terkesan adalah keybinding-nya yang jamak digunakan pada mayoritas piranti lunak. Apa yang terbayang pada benak Anda ketika hendak menyimpan berkas? Tentunya CTRL+S. Membuka berkas? CTRL+O. Membatalkan sesuatu? CTRL+Z. Demikian juga pada micro. Beda misalnya dengan nano, yang menggunakan CTRL+O untuk menyimpan berkas dan CTRL+SHIFT+V untuk menyisipkan (paste) clipboard. Selain common keybinding, fitur lain yang saya sukai dari micro adalah syntax highlight. Bukannya penyunting lain tidak memiliki syntax highlighter, namun pada micro fitur ini telah berjalan secara default.

Rencananya saya akan mencoba lebih kerap memakai micro. Namun bagaimana cara memanggilnya? Untuk memanggil nano kan kita tinggal ketik saja nano di dalam terminal. Masa iya setiap kali hendak menggunakan micro saya mesti berpindah direktori ke tempat biner micro berada? Sementara menyimpan manual biner ke /usr/local/bin tidak begitu disarankan.
Nah, untuk menjawab pertanyaan seperti inilah artikel kali ini ditulis. Meski bahasan awalnya ngaler-ngidul, sebenarnya saya hendak menulis cara menambah custom PATH di GNU/Linux. Anggap saja paragraf di atas sebagai warming-up, untuk lebih memahamkan mengapa kita perlu custom PATH.

Menambah custom PATH di GNU/Linux

Apa itu PATH?

PATH adalah sebuah environment variable yang berisi letak (path) direktori tempat executable binary. perhatikan perbedaan penggunaan huruf besar pada PATH dan huruf kecil pada path.

Coba Anda buka terminal dan ketikkan echo $PATH. Maka akan tampil sederet path yang mirip seperti berikut:

/home/iza/.local/share/applications:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games  

Ketika kita mengetikkan suatu program di shell, maka shell akan mencari letak berkas biner program di tempat yang tersimpan dalam PATH.

Misalkan kita mengunduh berkas biner micro dan menyimpannya di $HOME/Download/micro-1.3.3-linux64/micro-1.3.3/micro, maka tiap kali kita hendak menjalankan micro kita mesti berpindah ke direktori $HOME/Download/micro-1.3.3-linux64/micro-1.3.3/. Merepotkan. Itu karena $HOME/Download/micro-1.3.3-linux64/micro-1.3.3 tidak termasuk dalam PATH.
Di sinilah gunanya custom PATH. Kita bisa menambahkan letak (path) direktori tertentu ke dalam PATH kita, dan semua yang ada dalam direktori tersebut dapat dipanggil langsung dari shell, kapanpun dan di manapun.

Berikut cara saya menata berkas skrip dan biner piranti lunak yang tidak ada dalam repo dan memasukkannya ke dalam PATH agar mudah diakses.

  • Simpan berkas skrip dan biner dalam direktori tertentu. Saya sendiri menyimpan skrip-skrip di $HOME/Software/scripts dan biner di $HOME/Software/bin, jadi saya akan contohkan direktori-direktori itu saja dalam contoh di bawah ini. Misal berkas biner micro saya simpan di $HOME/Software/bin.
  • Sunting berkas $HOME/.profile dan masukkan PATH direktori pada langkah di atas. Misal:

    if [ -d "$HOME/Software/scripts" ] ; then
      PATH="$HOME/Software/scripts:$PATH"
    fi
    if [ -d "$HOME/Software/bin" ] ; then
      PATH="$HOME/Software/bin:$PATH"
    fi
    

    Jika tidak terdapat $HOME/.profile, coba cari $HOME/.bash_profile atau $HOME/.bash_login. Jika ternyata ketiganya tidak ada (sepertinya tidak mungkin), silakan buat saja salah satunya.

  • Logout kemudian login ulang.
  • Periksa apakah kini dalam PATH telah termaktub direktori yang kita tambah kan di atas:

    echo $PATH
    

    Hasilnya akan mirip seperti ini:

    /home/iza/Software/bin:/home/iza/.local/share/applications:/home/iza/Software/scripts:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/iza/Software/bin  
    

    Seperti yang tampak, $HOME/Software/bin dan $HOME/Software/scripts kini telah masuk ke dalam PATH. Ini berarti kini kita telah bisa memanggil skrip-skrip di $HOME/Software/scripts dan piranti lunak (misal micro yang kita simpan) di $HOME/Software/bin langsung dari terminal, tanpa memandang sedang di manakah current working directory kita berada.

O ya, cara menambah PATH di atas adalah bersifat lokal. Artinya PATH tersebut path-nya hanya bisa diakses oleh akun Anda.
Jika menginginkan system wide custom PATH yang bisa diakses oleh akun-akun lain, maka berkas yang mesti disunting adalah /etc/environment atau /etc/profile. Untuk lebih jelasnya silakan rujuk laman How to permanently set $PATH on Linux? di StackOverflow. Dan pastikan direktori biner atau skrip jangan disimpan di $HOME akun tertentu, agar bisa diakses semua akun.

Okay, that's it for now. Hope you find it usefull...