GNU/Linux >> Belajar Linux >  >> Linux

Pengantar perintah alternatif di Linux

Abstraksi dapat membantu pengguna karena banyak pengguna tidak peduli bagaimana komputer mereka menyelesaikan tugas selama itu tepat sasaran. Faktanya, bahkan aplikasi tidak selalu peduli bagaimana sesuatu dicapai selama semua panggilan sistemnya dijawab dengan benar. Secara teori, sysadmin Linux dapat menawarkan banyak alat sistem menurut fungsi daripada nama persis dari executable, tetapi itu sering membutuhkan banyak symlinking dan pelacakan versi. Kecuali itu, Anda menggunakan alternatives perintah.

alternatives perintah memulai hidupnya sebagai, yang menarik, sebuah alternatif. Awalnya, ini adalah utilitas kenyamanan, yang ditulis dalam Perl, dari proyek Debian Linux, yang disebut update-alternatives . Red Hat menulis ulang perintah tanpa Perl, dan telah disebarkan ke seluruh distribusi berbasis Fedora seperti Red Hat dan CentOS, serta distribusi lain yang menggunakan Red Hat untuk definisi fungsional Basis Standar Linux (LSB).

Kapan menggunakan perintah alternatif

Contoh sederhana dan realistis:Anda memiliki perintah di sistem Anda yang disebut em , yang meluncurkan editor teks sederhana. Ini telah menjadi editor masuk untuk basis pengguna Anda selama bertahun-tahun, banyak orang memiliki alur kerja berbasis di sekitarnya dan beberapa mempertahankan konfigurasi yang sangat disesuaikan untuk itu. Namun, basis pengguna Anda baru-baru ini menjelaskan kepada Anda bahwa mereka tidak dapat bertahan lebih lama lagi tanpa dukungan emoji di editor terminal dan em mereka. tidak mendukung Unicode.

Anda menemukan garpu em . yang diaktifkan Unicode disebut nem , tetapi Anda tahu bahwa 99% pengguna Anda terbiasa dengan em , memiliki skrip yang memanggil em , dan akan terus menganggap aplikasi pengganti sebagai em tidak peduli apa yang Anda lakukan. Solusi mudah untuk situasi ini, dan banyak contoh lain yang serupa, adalah dengan menunjuk nem baru biner sebagai alternatif pilihan untuk em biner ketika em perintah yang digunakan.

Membuat symlink secara manual mungkin tampak menggoda, tetapi itu tidak tahan terhadap pembaruan dari pengelola paket, juga tidak terpusat.

alternatives perintah paling berguna saat mengelola nama aplikasi "generik". Tentu saja di dunia UNIX, "generik" tidak selalu generik seperti halnya "Kleenex" atau "Xerox" di dunia nyata, jadi istilah seperti java , (x)emacs(-nox) , (n)vi(m) , whois , dan iptables seringkali merupakan orang pertama yang memiliki alternatif yang ditentukan untuk mereka. Untuk istilah yang benar-benar umum, seperti EDITOR dan CC , alternatives perintah tidak dianggap sebagai solusi yang tepat. Untuk istilah tersebut, karena merupakan variabel lingkungan dan harus didefinisikan dalam /etc atau $HOME/.profile .

Membuat alternatif baru

Melanjutkan contoh skenario biner lama yang disebut em digantikan oleh varian baru nem , mudah untuk membuat entri alternatif. Dalam contoh ini, Anda harus mengganti nama perintah asli, meskipun dalam kasus lain ini tidak diperlukan karena perintah tersebut tidak persis seperti yang orang pikirkan (java , misalnya, jarang ditemukan di /usr/bin secara langsung). Jika Anda perlu mengubah nama biner, cara yang tepat untuk melakukannya adalah dalam file spesifikasi RPM-nya, sehingga RPM menginstal perintah menyediakan biner dengan nama baru.

Dalam keadaan darurat, terutama jika Anda tetap menghapus perintah secara bertahap, Anda dapat menghapus perintah dari manajemen paket sistem dan tetap menyediakan versi kustom dari perintah lama /opt atau serupa.

Untuk contoh ini, anggap Anda telah mengganti nama editor asli em2 (menunjukkan nomor versi terbarunya).

Sekarang Anda memiliki dua binari (em2 dan nem ) untuk dikaitkan dengan satu perintah:em . Untuk membantu menjaga agar perbedaan peran terminologi tetap jelas, asumsikan bahwa em dan nem keduanya editor mikro gaya Emacs. Dalam hal ini, istilah yang sangat umum untuk alternatif yang sedang dibuat mungkin adalah µemacs (menggunakan simbol yang berarti "mikro") atau uemacs untuk kesederhanaan.

Buat alternatif untuk yang asli dengan memberikan:

  • lokasi untuk symlink "generik"
  • nama alternatif (saya telah memutuskan uemacs , untuk memperjelas bahwa ini adalah nama referensi dan bukan biner tertentu)
  • biner yang akan dieksekusi ketika symlink ini dipanggil
  • tingkat prioritas untuk menunjukkan alternatif mana yang lebih disukai
$ sudo alternatives --install /usr/bin/em uemacs /opt/em-legacy/em2 1

Buat alternatif untuk biner baru, dengan prioritas tinggi karena biner pilihan Anda:

$ sudo alternatives --install /usr/bin/em uemacs /usr/local/bin/nem 99

Perintah ini membuat symlink baru, /usr/bin/em , menunjuk ke /etc/alternatives/em , yang pada gilirannya dapat Anda tunjuk ke salah satu dari /opt/em-legacy/em2 atau /usr/local/bin/nem . Referensi ramah manusia untuk bundel alternatif ini adalah uemacs , yang telah dipilih secara sewenang-wenang oleh administrator sistem karena deskriptif dan mudah diingat. Anda dapat memilih tujuan symlink alternatif menggunakan --config pilihan:

$ sudo alternatives --config uemacs
[sudo] password for seth: 

There are 2 programs which provide 'uemacs'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/local/bin/nem
   2           /opt/em-legacy/em2

Menghapus alternatif

Terkadang alternatif adalah solusi jangka panjang, dan terkadang hanya untuk membantu pengguna atau admin melakukan transisi ke sesuatu yang baru. Jika Anda perlu menghapus alternatif karena alasan apa pun, Anda dapat melakukannya dengan --remove-all pilihan, diikuti dengan nama "generik" dari alternatif tersebut. Dalam contoh ini, itu uemacs :

$ sudo alternatives --remove-all uemacs

Ini menghapus semua tentang uemacs dari alternatives subsistem:symlink di /usr/bin dan /etc/alternatives . Jika Anda hanya ingin menghapus satu pilihan dari alternatif, gunakan --remove pilihan, memberikan nama alternatif (uemacs dalam contoh ini) dan jalur pilihan yang ingin Anda jatuhkan:

$ sudo alternatives --remove uemacs /opt/em-legacy/em2

Alternatif

alternatives command memiliki lebih banyak fitur, termasuk kemampuan untuk menghubungkan komponen dependen ketika alternatif tertentu dipilih. Selain menangani banyak pekerjaan berat, alternatives membuat inkonsistensi Anda terpusat. Anda dapat memeriksa alternatif apa yang ada, jadi Anda tidak perlu mengingat dari hari ke hari bahwa emacs sebenarnya emacs-26.3 , atau java . itu bukan java-1.8 tapi /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0 , dan seterusnya:

$ alternatives --list

Linux adalah tentang pilihan dan fleksibilitas, dan alternatives command adalah contoh bagaimana pengguna dan admin bisa mendapatkan keuntungan dari beberapa sulap pintar.

Ingin mencoba Red Hat Enterprise Linux? Unduh sekarang secara gratis.


Linux
  1. Pengenalan perintah chmod Linux

  2. Pengantar perintah chown Linux

  3. Pengantar perintah diff

  1. Pengantar menggunakan tcpdump di baris perintah Linux

  2. 5 Contoh Praktis Perintah dd di Linux

  3. Perintah cari di Linux

  1. Kuasai perintah Linux ls

  2. Pengantar Sistem File Linux

  3. Batalkan perintah sampah Linux