Cara menggunakan GNU Stow untuk menguruskan program yang dipasang dari sumber dan dotfiles

Cara menggunakan GNU Stow untuk menguruskan program yang dipasang dari sumber dan dotfiles

Objektif

Menguruskan program dengan mudah dari sumber dan dotfiles menggunakan GNU Stow

Keperluan

  • Keizinan akar

Kesukaran

Mudah

Konvensyen

  • # - Memerlukan arahan Linux yang diberikan dengan keistimewaan akar sama ada
    secara langsung sebagai pengguna akar atau dengan menggunakan sudo perintah
  • $ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak

Pengenalan

Kadang -kadang kita perlu memasang program dari sumber: mungkin mereka tidak tersedia melalui saluran standard, atau mungkin kita mahukan versi tertentu perisian. Gnu Stow sangat bagus Kilang Symlinks program yang banyak membantu kami dengan menyimpan fail yang dianjurkan dengan cara yang sangat bersih dan mudah untuk mengekalkan cara.

Mendapatkan stow

Repositori pengedaran anda sangat mungkin mengandungi Stow, Contohnya di Fedora, yang perlu anda lakukan untuk memasangnya ialah:

# DNF memasang stow

atau di Ubuntu/Debian anda boleh memasang Stow dengan melaksanakan:

# sesuai memasang stow 

Dalam sesetengah pengagihan, simpan ia tidak terdapat dalam repositori standard, tetapi ia dapat diperoleh dengan mudah dengan menambahkan beberapa sumber perisian tambahan (contohnya Epel dalam hal Rhel dan Centos7) atau, sebagai usaha terakhir, dengan menyusunnya dari sumber: memerlukan sedikit ketergantungan.

Menyusun stow dari sumber

Versi stow terbaru yang tersedia ialah 2.2.2: Tarball tersedia untuk dimuat turun di sini: https: // ftp.gnu.org/gnu/stow/.

Sebaik sahaja anda telah memuat turun sumber, anda mesti mengeluarkan tarball. Navigasi ke direktori di mana anda memuat turun pakej dan hanya lari:

$ tar -xvpzf stow -2.2.2.tar.Gz

Selepas sumber telah diekstrak, navigasi di dalam stow-2.2.2 direktori, dan untuk menyusun program hanya dijalankan:

$ ./konfigurasikan $ membuat 

Akhirnya, untuk memasang pakej:

# buat pemasangan

Secara lalai pakej akan dipasang di /usr/tempatan/ direktori, tetapi kita boleh mengubahnya, menyatakan direktori melalui --awalan pilihan skrip konfigurasi, atau dengan menambah awalan = "/anda/dir" Semasa menjalankan buat pemasangan perintah.

Pada ketika ini, jika semua bekerja seperti yang diharapkan Stow dipasang pada sistem kami

Bagaimana Stow berfungsi?

Konsep utama di belakang Stow ia dijelaskan dengan baik dalam manual program:

Pendekatan yang digunakan oleh Stow adalah untuk memasang setiap pakej ke dalam pokoknya sendiri, kemudian gunakan pautan simbolik untuk menjadikannya kelihatan seolah -olah fail dipasang di pokok biasa. 

Untuk lebih memahami kerja pakej, mari kita menganalisis konsep utamanya:

Direktori Stow

Direktori Stow adalah direktori root yang mengandungi semua pakej stow, masing -masing dengan subtree peribadi mereka sendiri. Direktori stow biasa adalah /usr/local/stow: di dalamnya, setiap subdirektori mewakili a pakej

Pakej stow

Seperti yang dikatakan di atas, direktori Stow mengandungi "pakej", masing -masing dalam subdirektori berasingannya sendiri, biasanya dinamakan sempena program itu sendiri. Pakej tidak lebih daripada senarai fail dan direktori yang berkaitan dengan perisian tertentu, diuruskan sebagai entiti.

Direktori Sasaran Stow

Direktori Sasaran Stow adalah konsep yang sangat mudah untuk dijelaskan. Ia adalah direktori di mana fail pakej mesti kelihatan dipasang. Secara lalai direktori sasaran stow dianggap sebagai yang di atas direktori di mana stow dipanggil dari. Tingkah laku ini dapat diubah dengan mudah dengan menggunakan -t pilihan (pendek untuk sasaran), yang membolehkan kita menentukan direktori alternatif.

Contoh praktikal

Saya percaya contoh yang baik adalah bernilai 1000 perkataan, jadi mari kita tunjukkan bagaimana stow berfungsi. Katakan kita mahu menyusun dan memasang libx264. Mari klon repositori git yang mengandungi sumbernya:

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

Beberapa saat selepas menjalankan arahan, direktori "x264" akan diwujudkan, dan ia akan mengandungi sumber -sumber, bersedia untuk disusun. Kami kini menavigasi di dalamnya dan menjalankan konfigurasikan skrip, menyatakan direktori/usr/local/stow/libx264 sebagai --awalan:

$ cd x264 && ./Konfigurasi --Prefix =/usr/local/stow/libx264

Kemudian kami membina program dan memasangnya:

$ membuat # membuat pemasangan 

Direktori x264 sepatutnya dibuat di dalam direktori stow: ia mengandungi semua barangan yang biasanya dipasang di dalam sistem secara langsung. Sekarang, yang perlu kita lakukan, adalah untuk menggunakan Stow. Kita mesti menjalankan arahan sama ada dari dalam direktori stow, dengan menggunakan -d pilihan untuk menentukan secara manual jalan ke direktori stow (lalai adalah direktori semasa), atau dengan menentukan sasaran dengan -t Seperti yang dikatakan sebelum ini. Kita juga harus memberikan nama pakej yang akan disimpan sebagai hujah. Dalam kes ini kita menjalankan program dari direktori Stow, jadi semua yang kita perlukan untuk menaip adalah:

# Stow libx264

Semua fail dan direktori yang terkandung dalam pakej libx264 kini telah disimpang dalam direktori induk (/usr/tempatan) yang mana stow telah dipanggil, supaya, sebagai contoh, binari libx264 yang terkandung dalam /usr/local/stow/x264/bin kini disimpang di /usr/tempatan/bin, fail yang terkandung dalam /usr/local/stow/x264/etc kini disimpang di /usr/local/etc dan sebagainya. Dengan cara ini ia akan kelihatan kepada sistem yang dipasang oleh fail secara normal, dan kami dapat menjejaki setiap program yang kami buat dengan mudah. Untuk mengembalikan tindakan, kami hanya menggunakan -D pilihan:

# Stow -D libx264

Ia dilakukan! Symlinks tidak wujud lagi: Kami hanya "menyahpasang" pakej stow, menjaga sistem kami dalam keadaan yang bersih dan konsisten. Pada ketika ini harus jelas mengapa simpan ia juga digunakan untuk menguruskan dotfiles. Amalan biasa adalah untuk mempunyai semua fail konfigurasi khusus pengguna di dalam repositori git, untuk menguruskannya dengan mudah dan mempunyai mereka tersedia di mana-mana, dan kemudian menggunakan stow untuk meletakkannya di mana sesuai, di direktori rumah pengguna.

Stow juga akan menghalang anda daripada mengatasi fail secara tidak sengaja: ia akan menolak untuk membuat pautan simbolik jika fail destinasi sudah ada dan tidak menunjuk ke pakej ke dalam direktori stow. Keadaan ini dipanggil konflik dalam terminologi stow.

Itu sahaja! Untuk senarai pilihan yang lengkap, sila rujuk Manpage Stow dan jangan lupa untuk memberitahu kami pendapat anda tentangnya dalam komen.

Tutorial Linux Berkaitan:

  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Tetapkan semula tetapan desktop gnome ke lalai kilang di Ubuntu ..
  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Ubuntu 20.04 Trik dan Perkara yang Anda Tidak Tahu
  • Bolehkah linux mendapat virus? Meneroka kelemahan Linux ..
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
  • Perintah Linux: Top 20 Perintah Paling Penting yang Anda Perlu ..
  • Menguasai Gelung Skrip Bash
  • Muat turun linux