Cara menggunakan stow gnu untuk mengelola program yang diinstal dari sumber dan dotfile

Cara menggunakan stow gnu untuk mengelola program yang diinstal dari sumber dan dotfile

Objektif

Mudah mengelola program yang diinstal dari sumber dan dotfiles menggunakan GNU Stow

Persyaratan

  • Izin root

Kesulitan

MUDAH

Konvensi

  • # - mensyaratkan perintah linux yang diberikan untuk dieksekusi dengan hak istimewa root
    langsung sebagai pengguna root atau dengan menggunakan sudo memerintah
  • $ - mensyaratkan perintah Linux yang diberikan untuk dieksekusi sebagai pengguna biasa

Perkenalan

Terkadang kita harus menginstal program dari sumber: mungkin mereka tidak tersedia melalui saluran standar, atau mungkin kita menginginkan versi tertentu dari perangkat lunak. GNU Stow sangat bagus Pabrik Symlinks program yang banyak membantu kami dengan menjaga file tetap teratur.

Mendapatkan stow

Repositori distribusi Anda sangat mungkin mengandung stow, Misalnya di Fedora, yang harus Anda lakukan untuk menginstalnya adalah:

# DNF Instal Stow

Atau di Ubuntu/Debian Anda dapat menginstal Stow dengan mengeksekusi:

# tepat instal stow 

Dalam beberapa distribusi, stow tidak tersedia dalam repositori standar, tetapi dapat dengan mudah diperoleh dengan menambahkan beberapa sumber perangkat lunak tambahan (misalnya EPEL dalam kasus RHEL dan Centos7) atau, sebagai pilihan terakhir, dengan menyusunnya dari sumber: itu membutuhkan sedikit ketergantungan.

Mengkompilasi Stow dari Sumber

Versi Stow terbaru yang tersedia adalah 2.2.2: Tarball tersedia untuk diunduh di sini: https: // ftp.gnu.org/gnu/stow/.

Setelah Anda mengunduh sumbernya, Anda harus mengekstrak tarball. Arahkan ke direktori tempat Anda mengunduh paket dan cukup jalankan:

$ tar -xvpzf stow -2.2.2.ter.GZ

Setelah sumber diekstraksi, navigasikan di dalam Stow-2.2.2 direktori, dan untuk mengkompilasi program cukup jalankan:

$ ./Konfigurasikan $ Make 

Akhirnya, untuk menginstal paket:

# buat instal

Secara default paket akan diinstal di /usr/lokal/ direktori, tetapi kita dapat mengubah ini, menentukan direktori melalui --awalan opsi skrip konfigurasi, atau dengan menambahkan awalan = "/Anda/dir" Saat menjalankan buat instal memerintah.

Pada titik ini, jika semua bekerja seperti yang diharapkan kita harus miliki stow dipasang di sistem kami

Bagaimana cara kerja Stow?

Konsep utama di balik stow itu dijelaskan dengan sangat baik dalam manual program:

Pendekatan yang digunakan oleh Stow adalah menginstal setiap paket ke pohonnya sendiri, kemudian menggunakan tautan simbolik untuk membuatnya tampak seolah -olah file diinstal di pohon umum. 

Untuk lebih memahami kerja paket, mari kita analisis konsep -konsep kuncinya:

Direktori Stow

Direktori Stow adalah direktori root yang berisi semua Paket Stow, masing -masing dengan subtree pribadi mereka sendiri. Direktori Stow yang khas adalah /usr/lokal/stow: di dalamnya, setiap subdirektori mewakili a kemasan

Paket Stow

Seperti yang dikatakan di atas, Direktori Stow berisi "paket", masing -masing dalam subdirektori terpisahnya sendiri, biasanya dinamai sesuai dengan program itu sendiri. Paket tidak lebih dari daftar file dan direktori yang terkait dengan perangkat lunak tertentu, dikelola sebagai entitas.

Direktori Target Stow

Direktori Target Stow adalah konsep yang sangat sederhana untuk dijelaskan. Itu adalah direktori di mana file paket harus tampak diinstal. Secara default direktori target stow dianggap sebagai yang di atas direktori di mana stow dipanggil dari. Perilaku ini dapat dengan mudah diubah dengan menggunakan -T opsi (pendek untuk -target), yang memungkinkan kami menentukan direktori alternatif.

Contoh praktis

Saya percaya contoh yang dilakukan dengan baik bernilai 1000 kata, jadi mari kita tunjukkan cara kerja Stow. Misalkan kita ingin mengkompilasi dan menginstal libx264. Mari kita klon repositori git yang berisi sumbernya:

$ git clone git: // git.Videolan.org/x264.git

Beberapa detik setelah menjalankan perintah, direktori "x264" akan dibuat, dan akan berisi sumber, siap untuk dikompilasi. Kami sekarang menavigasi di dalamnya dan menjalankan Konfigurasikan skrip, menentukan direktori/usr/local/stow/libx264 as --awalan:

$ CD x264 && ./configure --prefix =/usr/local/stow/libx264

Kemudian kami membangun program dan menginstalnya:

$ Make # Make Install 

Direktori X264 seharusnya dibuat di dalam direktori Stow: Ini berisi semua barang yang biasanya dipasang di sistem secara langsung. Sekarang, yang harus kita lakukan, adalah memohon Stow. Kita harus menjalankan perintah baik dari dalam direktori stow, dengan menggunakan -D Opsi untuk menentukan secara manual jalur ke direktori STOW (default adalah direktori saat ini), atau dengan menentukan target dengan -T seperti dikatakan di atas. Kami juga harus memberikan nama paket yang akan disimpan sebagai argumen. Dalam hal ini kami menjalankan program dari Direktori Stow, jadi yang perlu kami ketik adalah:

# stow libx264

Semua file dan direktori yang terkandung dalam paket libx264 kini telah disimpulkan di direktori induk (/usr/lokal) dari yang dari mana stow telah dipanggil, sehingga, misalnya, binari Libx264 yang terkandung di dalam /usr/local/stow/x264/bin sekarang symlink /usr/lokal/bin, file yang terkandung di /usr/local/stow/x264/dll sekarang symlink /usr/lokal/dll dan seterusnya. Dengan cara ini akan muncul ke sistem tempat file diinstal secara normal, dan kami dapat dengan mudah melacak setiap program yang kami kompilasi dan instal. Untuk mengembalikan aksinya, kami hanya menggunakan -D pilihan:

# stow -d libx264

Itu selesai! Symlink tidak ada lagi: kami hanya "menghapus" paket stow, menjaga sistem kami dalam keadaan yang bersih dan konsisten. Pada titik ini harus jelas mengapa stow juga digunakan untuk mengelola dotfile. Praktik umum adalah memiliki semua file konfigurasi khusus pengguna di dalam repositori git, untuk mengelolanya dengan mudah dan menyediakannya di mana-mana, dan kemudian menggunakan Stow untuk menempatkannya di tempat yang sesuai, di direktori rumah pengguna.

Stow juga akan mencegah Anda dari mengesampingkan file secara tidak sengaja: ia akan menolak untuk membuat tautan simbolik jika file tujuan sudah ada dan tidak menunjuk ke paket ke direktori STOW. Situasi ini disebut konflik dalam terminologi stow.

Itu dia! Untuk daftar opsi lengkap, silakan berkonsultasi dengan STOW MANPAGE dan jangan lupa untuk memberi tahu kami pendapat Anda tentang hal itu di komentar.

Tutorial Linux Terkait:

  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Setel ulang Pengaturan Desktop Gnome ke Factory Default di Ubuntu…
  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Ubuntu 20.04 trik dan hal -hal yang mungkin tidak Anda ketahui
  • Can Linux mendapatkan virus? Menjelajahi kerentanan Linux…
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Mint 20: Lebih baik dari Ubuntu dan Microsoft Windows?
  • Perintah Linux: 20 perintah terpenting teratas yang Anda butuhkan untuk…
  • Menguasai loop skrip bash
  • Unduh Linux