Saya tahu ini agak terlambat, tetapi posting ini saat ini adalah salah satu hit pencarian teratas yang terkait dengan mencari alternatif di Debian.
Masalah dengan menggunakan di update-alternatives
sini adalah bahwa itu hanya akan menunjukkan kepada Anda opsi yang diinstal sejauh yang saya tahu (halaman manualnya cukup jarang).
Untuk menjawab pertanyaan sebagaimana diajukan dalam judul, yaitu menemukan semua paket yang tersedia yang memberikan alternatif (apakah diinstal atau tidak), Anda dapat menggunakan:
aptitude search '?provides(pattern)'
yang juga bisa disingkat menjadi:
aptitude search '~Ppattern'
di mana pattern
semua atau sebagian dari alternatif yang Anda cari. Dalam kasus khusus vi
, ini tidak benar-benar berfungsi. Jika Anda memeriksa paket nvi
dan vim
dengan aptitude show
atau apt-cache show
, Anda akan melihat bahwa tidak ada yang mencantumkan "vi" di bagian "Menyediakan:". Bahkan, deskripsi nvi tidak ada bagian itu sepenuhnya.
Namun, ini bekerja dengan cukup baik untuk alternatif lain, seperti editor
:
$ aptitude search '~Peditor'
p deutex - composition tool for doom-style WAD files
p edbrowse - /bin/ed-alike webbrowser written in C
p emacs24 - GNU Emacs editor (with GTK+ GUI support)
p emacs24-lucid - GNU Emacs editor (with Lucid GUI support)
p emacs24-nox - GNU Emacs editor (without GUI support)
p fte-console - Text editor for programmers - console edi
p fte-terminal - Text editor for programmers - version for
p fte-xwindow - Text editor for programmers - X Window Sy
p jed - editor for programmers (textmode version)
p jove - Jonathan's Own Version of Emacs - a compa
p jupp - user friendly full screen text editor
p le - Text editor with block and binary operati
p ledit - line editor for interactive programs
p levee - very small vi clone
p mg - microscopic GNU Emacs-style editor
p nano - small, friendly text editor inspired by P
p nano-tiny - small, friendly text editor inspired by P
p ne - easy-to-use and powerful text editor
p pluma - official text editor of the MATE desktop
p rlfe - Front-end using readline to "cook" input
p rlwrap - readline feature command line wrapper
p scite - Lightweight GTK-based Programming Editor
p vigor - nvi with the evil paperclip
p vile - VI Like Emacs - vi work-alike
p vim - Vi IMproved - enhanced vi editor
p vim-athena - Vi IMproved - enhanced vi editor - with A
p vim-gnome - Vi IMproved - enhanced vi editor - with G
i vim-gtk - Vi IMproved - enhanced vi editor - with G
p vim-nox - Vi IMproved - enhanced vi editor - with s
i vim-tiny - Vi IMproved - enhanced vi editor - compac
p xjed - editor for programmers (x11 version)
p xul-ext-password-editor - edit password manager entries in Mozilla
p xvile - VI Like Emacs - vi work-alike (X11)
Meskipun ini tidak sempurna, aptitude
memiliki kemampuan pencarian yang sangat fleksibel yang akan sering membuat Anda mengatasi masalah paket yang tidak mencantumkan alternatif mana yang mereka sediakan - misalnya menggunakan "~seditors ~dvi\s"
sebagai pola pencarian akan mencantumkan semua paket di bagian "editor" yang memiliki deskripsi berisi string "vi".
Pilihan lain adalah menggunakan situs web paket Debian , di mana paket serupa tercantum di bagian di sebelah kanan.
aps ~Peditor
? Jikaaps
dimaksudkan sebagai jalan pintas untuk bakat, baik-baik saja, tapi tolong jangan gunakan itu dalam jawaban, itu hanya akan membingungkan semua orang. Selain itu, jika Anda merasa ada persediaan yang hilang, Anda dapat mengajukan laporan bug terhadap paket yang sesuai.aps
harus berdiri untukaptitude search
. Tetapi Anda harus menggunakannya secara eksplisit. Namun, saya tidak berpikir itu jawaban yang bisa diterapkan, terlepas - mungkin itu akan bekerja dengan beberapa perbaikan.aptitude search -Pvi
memberi banyak hal yang tidak relevan. Saya kira itu mencari seluruh deskripsi paket.aptitude search ~P
(perhatikan tilde) hanya mencari diProvides
, tetapivi
cocok denganProvides
entri lain ; Anda harus menentukan kecocokan persis denganaptitude search '~P^vi$'
. Contoh ini menyoroti keterbatasan mendasar dengan pendekatan ini: sementara adavi
alternatif, tidak adavi
paket virtual ...Ini tergantung. Ada beberapa alternatif, seperti x-www-browser, tidak menggunakan paket dan ditambahkan melalui skrip pengelola ke pembaruan-alternatif:
Ada yang lain yang menggunakan metapackage tunggal untuk menginstal versi biner yang sama (paket Java / OpenJRE terlintas dalam pikiran, juga
init
). Lainnya menggunakan paket virtual, dengan mengisi "Menyediakan" (ini biasanya dilengkapi dengan pembaruan ke basis data DPKG alternatif) dalam hal ini, salah satu paket tersebut harus menyediakan biner yang sama.Jadi, bagaimana menemukan semua paket yang menyediakan file tertentu? Saya akan menggunakan Provides jika Anda tahu paket mana yang melakukannya, dan
apt-file search file
untuk semua yang lainnya.sumber
editor
.Paket virtual dan sistem alternatif Debian (yang merupakan tempat binari berperan) terkait tetapi tidak sama. Untuk paket virtual, Anda dapat menggunakan
apt-cache
untuk menemukan paket mana ("nyata") yang menyediakannya:Untuk manajer tampilan, paket virtual adalah
x-display-manager
:Sistem alternatif ditangani oleh panggilan ke
update-alternatives
skrip pengelola seperti yang ditunjukkan jawaban Braiam, dan sisanya dari sistem pengemasan tidak menyadari hal ini. TheProvides
lapangan juga lebih umum daripada alternatif, karena paket dapat memberikan lain dalam hal layanan atau perpustakaan yang ditawarkan, tidak hanya melalui binari.Tanpa pengelola paket menambahkan informasi tentang alternatif ke
Provides
lapangan (dan membuat paket virtual untuk semua titik akhir dari alternatif - sepertivi
) dan tanpa memeriksa paket sendiri, tidak ada cara umum saat ini untuk sampai paket mana yang mungkin memberikan alternatif.sumber
Terkait erat dengan pertanyaan, untuk menemukan vi alternatif:
Keluaran:
Atau:
Keluaran:
sumber
Di Ubuntu , paket
command-not-found
berisi database yang berisi banyak alternatif. Setelah instalasi, dapat ditanyakan dengan/usr/lib/command-not-found --no-failure-msg --ignore-installed mail
(untuk daftar alternatif untukmail
).Hati-hati, ketika Anda tidak ingin saran otomatis pada perintah yang hilang di bash, tulis
unset -f command_not_found_handle
di ~ / .bashrc Anda atau hapus definisi secara global di/etc/bash.bashrc
. (Lakukan serupa untuk zsh.)Di Debian , alat ini hanya menggunakan file apt untuk membuat database, jadi tidak ada alternatif yang diketahui (tidak diuji). Itu menceritakan hal yang sama seperti
apt-file search ...
.Sumber Ubuntu: https://launchpad.net/command-not-found
sumber
/usr/lib/command-not-found /usr/bin/mail
terlihat seperti semacam resep, tetapi saya tidak mengerti apa yang seharusnya dilakukan. Penjelasan akan sangat membantu./usr/bin/
dari perintah karena ini tidak berfungsi.# /usr/lib/command-not-found mail Command 'mail' is available in '/usr/bin/mail' mail: command not found
.mail
sudah diinstal. Pemeriksaan ini dapat dilewati dengan opsi--ignore-installed
. Tetapi juga setelah ini, Anda tidak akan mendapatkan informasi lebih banyak (dalam bahasa debian) daripada dariapt-file search mail
.