Sé que esto es un poco tarde, pero esta publicación es actualmente uno de los principales resultados de búsqueda relacionados con la búsqueda de alternativas en Debian.
El problema con el uso update-alternatives
aquí es que solo le mostrará las opciones instaladas hasta donde puedo decir (su página de manual es bastante escasa).
Para responder la pregunta tal como se plantea en el título, es decir, encontrar todos los paquetes disponibles que ofrecen una alternativa (ya sea instalada o no), puede usar:
aptitude search '?provides(pattern)'
que también se puede abreviar para:
aptitude search '~Ppattern'
¿Dónde pattern
está todo o parte de la alternativa que está buscando? En el caso específico de vi
, esto realmente no funciona. Si inspecciona los paquetes nvi
y vim
con aptitude show
o apt-cache show
, verá que ninguno enumera "vi" en su sección "Proporciona:". De hecho, en la descripción de nvi falta esa sección por completo.
Sin embargo, funciona razonablemente bien para otras alternativas, como 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)
Aunque esto no es perfecto, aptitude
tiene capacidades de búsqueda increíblemente flexibles que a menudo le permitirán solucionar el problema de que los paquetes no enumeren correctamente las alternativas que ofrecen, por ejemplo, el uso "~seditors ~dvi\s"
como patrón de búsqueda enumerará todos los paquetes en la sección "editores" La descripción contiene la cadena "vi".
Otra opción es utilizar el sitio web de paquetes de Debian , donde se enumeran paquetes similares en la sección de la derecha.
aps ~Peditor
? Siaps
está destinado a ser un atajo para la aptitud, está bien, pero no lo use en una respuesta, simplemente confundirá a todos. Además, si cree que faltan ofertas, puede presentar un informe de error contra los paquetes correspondientes.aps
debe ser sinónimoaptitude search
. Pero deberías usar eso explícitamente. Sin embargo, no creo que sea una respuesta viable, independientemente de que tal vez funcione con cierto refinamiento.aptitude search -Pvi
da una carga de cosas irrelevantes. Supongo que busca en la descripción completa del paquete.aptitude search ~P
(tenga en cuenta la tilde) solo buscaProvides
, perovi
coincide con otrasProvides
entradas; debes especificar una coincidencia exacta conaptitude search '~P^vi$'
. Sin embargo, este ejemplo resalta una limitación fundamental con este enfoque: si bien existe unavi
alternativa, no hayvi
un paquete virtual ...Esto depende Hay algunas alternativas, como x-www-browser, que no usan un paquete y se agregan mediante scripts de mantenedor a las alternativas de actualización:
Hay otros que usan un metapaquete único para instalar cualquier versión del mismo binario (también me vienen a la mente los paquetes Java / OpenJRE
init
). Otros usan un paquete virtual, rellenando los "Proporciona" (esto normalmente viene con una actualización de la base de datos alternativa DPKG) en cuyo caso, cualquiera de esos paquetes debe proporcionar el mismo binario.Entonces, ¿cómo encontrar todos los paquetes que proporcionan un archivo específico? Usaría los Provides si conoces un paquete que lo haga, y
apt-file search file
para todo lo demás.fuente
editor
.Los paquetes virtuales y el sistema de alternativas de Debian (que es donde entran en juego los binarios) están relacionados pero no son lo mismo. Para los paquetes virtuales, puede usar
apt-cache
para encontrar qué paquetes (reales) lo "proporcionan":Para los administradores de pantallas, el paquete virtual es
x-display-manager
:El sistema de alternativas se maneja mediante llamadas a
update-alternatives
scripts de mantenedor, como lo muestra la respuesta de Braiam, y el resto del sistema de empaque no lo sabe. ElProvides
campo también es más general que las alternativas, ya que un paquete puede proporcionar otro en términos de servicios o bibliotecas ofrecidos, no simplemente a través de binarios.Sin los mantenedores de paquetes agregando información sobre alternativas al
Provides
campo (y creando paquetes virtuales para todos los puntos finales de alternativas, comovi
) y sin inspeccionar los paquetes en sí, no hay una forma general en la actualidad de determinar qué paquete podría proporcionar una alternativa.fuente
Estrictamente relacionado con la pregunta, para encontrar la alternativa vi :
Salida:
O:
Salida:
fuente
En Ubuntu , el paquete
command-not-found
contiene una base de datos que también contiene muchas alternativas. Después de la instalación, se puede consultar con/usr/lib/command-not-found --no-failure-msg --ignore-installed mail
(para enumerar alternativas paramail
).Cuidado, cuando no desee las sugerencias automáticas sobre los comandos que faltan en bash, escriba
unset -f command_not_found_handle
su ~ / .bashrc o elimine la definición globalmente/etc/bash.bashrc
. (Hacer similar para zsh.)En Debian , esta herramienta usa solo apt-file para crear la base de datos, por lo que no se conocen alternativas (no probadas). Ahí dice lo mismo que
apt-file search ...
.Fuente de Ubuntu: https://launchpad.net/command-not-found
fuente
/usr/lib/command-not-found /usr/bin/mail
parece una especie de receta, pero no entiendo lo que se supone que debe hacer. Una explicación sería útil./usr/bin/
del comando ya que esto no funciona.# /usr/lib/command-not-found mail Command 'mail' is available in '/usr/bin/mail' mail: command not found
.mail
ya está instalado. Esta verificación se puede omitir con la opción--ignore-installed
. Pero también después de esto, no obtendrá más información (en debian) que deapt-file search mail
.