Terkadang, Anda harus menginstal beberapa program dengan mengkompilasi secara manual dari sumber. Karena, mereka mungkin tidak tersedia di repositori resmi atau pihak ketiga, jadi Anda tidak dapat menginstalnya menggunakan pengelola paket biasa. Seperti yang mungkin sudah Anda ketahui, ketika Anda menginstal program dari sumber, file paket akan disalin ke beberapa lokasi, seperti /usr/local/bin
, /usr/local/etc/
, pada sistem file. Jika program yang diinstal dari sumber tidak memiliki uninstaller bawaan, akan menjadi tugas yang membosankan untuk menghapus paket saat Anda tidak membutuhkannya lagi. Anda mungkin perlu menghabiskan beberapa (atau beberapa) menit untuk menemukan file paket tersebut dan menghapusnya secara manual. Inilah yang telah saya lakukan sampai saya menemukan utilitas bernama "GNU Stow" . Untungnya, Stow memiliki cara mudah untuk mengelola program yang diinstal dari sumber dengan mudah.
Mengutip situs resminya,
Sederhananya, Stow membantu Anda mengatur file paket dengan cara yang mudah dikelola. Dalam metode ini, file tidak akan disalin ke beberapa lokasi. Sebagai gantinya, semua file disimpan dalam folder tertentu, biasanya di bawah nama program itu sendiri, dan Stow membuat tautan simbolis ke semua file program ke tempat yang sesuai. Misalnya, /usr/local/bin
dapat berisi symlink ke file dalam /usr/local/stow/vim/bin
, /usr/local/stow/python/bin
dll., dan juga secara rekursif untuk subdirektori lain seperti .../share
, .../man
, dan seterusnya. Dalam tutorial ini, saya akan menunjukkan cara mudah mengelola program yang diinstal dari sumber menggunakan Stow dengan contoh praktis. Baca terus.
Instal GNU Stow di Linux
GNU Stow tersedia di repositori default sistem operasi Linux populer.
Di Linux Arch dan variannya, jalankan perintah berikut untuk menginstal Stow.
$ sudo pacman -S stow
Di Debian , Ubuntu , Linux Mint , OS Pop :
$ sudo apt install stow
Di Fedora :
$ sudo dnf install stow
Di RHEL/CentOS , AlmaLinux , dan Linux Rocky :
$ sudo dnf install epel-release
$ sudo dnf install stow
Hapus program yang diinstal dari sumber menggunakan Stow di Linux
Seperti yang telah saya sebutkan sebelumnya, semua file program dari sebuah paket akan disimpan di folder root yang terletak di /usr/local/stow/
. Di bawah direktori root atau induk ini, setiap paket akan disimpan di sub-direktori pribadinya sendiri. Misalnya, jika kita memasang Vim editor dari sumber, semua file program dan direktori yang terkait dengan Vim akan disimpan di bawah /usr/local/stow/vim
map. Jika Anda memasang python dari sumber, semua file yang terkait dengan python akan disimpan di bawah /usr/local/stow/python
dan seterusnya.
Biarkan saya menginstal program, misalnya halo , dari sumber.
Download terlebih dahulu tarball program 'halo'.
$ wget http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz
Ekstrak tarball yang telah diunduh menggunakan perintah:
$ tar -zxvf hello-2.10.tar.gz
Perintah di atas akan membuat direktori bernama 'hello-2.10' di direktori kerja saat ini dan mengekstrak semua konten di dalamnya.
Beralih ke direktori yang diekstrak:
$ cd hello-2.10/
Jalankan perintah berikut dengan opsi --prefix.
$ ./configure --prefix=/usr/local/stow/hello
Perintah di atas akan menyimpan file build di lokasi yang ditentukan yaitu /usr/local/stow/hello
dalam kasus kami.
Terakhir, buat dan instal program hello menggunakan perintah berikut:
$ make
$ sudo make install
Itu dia. Program hello telah diinstal di /usr/local/stow/hello/
lokasi. Anda dapat memverifikasinya dengan perintah 'ls' seperti yang ditunjukkan di bawah ini.
$ ls /usr/local/stow/hello/ bin share
Terakhir, buka /usr/local/stow/
direktori dan jalankan perintah berikut untuk menghasilkan symlink yang diperlukan.
$ cd /usr/local/stow/
$ sudo stow hello
Semua selesai!
Yang baru saja terjadi adalah semua file dan direktori yang terdapat dalam paket hello telah di-symlink ke direktori /usr/local/
. Dengan kata lain, /usr/local/stow/hello/bin
telah disinkronkan ke /usr/local/bin
dan /usr/local/stow/hello/share
telah disinkronkan ke /usr/local/share
dan /usr/local/stow/hello/share/man
telah disinkronkan ke /usr/local/share/man
dan seterusnya.
Anda dapat memverifikasinya menggunakan 'ls'
perintah:
$ ls /usr/local/bin/ hello
Mari kita periksa apakah program hello berfungsi atau tidak menggunakan perintah:
$ hello Hello, world!
Ya, berhasil!!
Demikian pula, Anda dapat menginstal program seperti dijelaskan di atas di bawah sub-direktori sendiri.
Berikut adalah isi dari direktori root Stow:
$ tree /usr/local/stow/

Lihat? Program hello diinstal di "/usr/local/stow/hello/"
lokasi. Seperti bijaksana, semua paket akan disimpan di bawah direktori mereka sendiri.
Di sinilah bagian utama. Mari kita hapus program halo. Untuk melakukannya, buka /usr/local/stow/
direktori:
$ cd /usr/local/stow/
..dan jalankan perintah berikut:
$ sudo stow --delete hello

Program halo baru saja dihapus. Anda dapat memverifikasi apakah itu benar-benar dihapus atau tidak dengan perintah:
$ hello -bash: /usr/local/bin/hello: No such file or directory

Lihat? Halo program dihapus!
Harap dicatat bahwa Stow telah menghapus symlink saja. Semua file program dan direktori yang terkait dengan program hello masih tersedia di /usr/local/stow/hello
map. Jadi, Anda dapat menginstal program hello lagi tanpa harus mendownload file sumber yang sebenarnya.
Jika Anda tidak menginginkan program hello lagi, cukup hapus foldernya.
$ sudo rm -fr /usr/local/stow/hello/
Untuk mengetahui detail lebih lanjut tentang Stow, lihat halaman manual.
$ man stow
Kesimpulan
GNU Stow membantu Anda untuk menghapus program semudah Anda menginstalnya. Jika Anda bertanya-tanya bagaimana cara efektif mengelola banyak program yang diinstal dari sumber, GNU Stow adalah salah satu program yang membuat tugas ini jauh lebih mudah. Cobalah, Anda tidak akan kecewa.