Я знаю, что это немного поздно, но этот пост в настоящее время является одним из самых популярных поисковых запросов, связанных с поиском альтернатив в Debian.
Проблема с использованием update-alternatives
здесь в том, что он покажет вам только установленные параметры, насколько я могу судить (его справочная страница довольно скудна).
Чтобы ответить на вопрос, изложенный в заголовке, то есть найти все доступные пакеты, которые предоставляют альтернативу (независимо от того, установлена она или нет), вы можете использовать:
aptitude search '?provides(pattern)'
который также может быть сокращен до:
aptitude search '~Ppattern'
где pattern
находится вся или часть альтернативы, которую вы ищете. В конкретном случае vi
это действительно не работает. Если вы проверите пакеты nvi
и vim
с помощью aptitude show
или apt-cache show
, вы увидите, что ни один из них не перечисляет «vi» в разделе «Обеспечивает:». На самом деле, в описании nvi этот раздел полностью отсутствует.
Тем не менее, он работает достаточно хорошо для других альтернатив, таких как 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)
Несмотря на то, что это не идеально, он aptitude
обладает невероятно гибкими возможностями поиска , которые часто позволяют вам обойти проблему с неправильным перечислением пакетов, в которых указаны альтернативы, которые они предоставляют, например, использование "~seditors ~dvi\s"
в качестве шаблона поиска приведет к перечислению всех пакетов в разделе «редакторы», чьи описание содержит строку "vi".
Другой вариант - использовать веб-сайт пакетов Debian , где похожие пакеты перечислены в разделе справа.
aps ~Peditor
? Еслиaps
это предназначено для краткого описания способностей, хорошо, но, пожалуйста, не используйте это в ответе, это просто смущает всех. Кроме того, если вы считаете, что отсутствуют предложения, вы можете отправить отчет об ошибке в соответствующий пакет (ы).aps
должно стоятьaptitude search
. Но вы должны использовать это явно. Тем не менее, я не думаю, что это выполнимый ответ, во всяком случае - возможно, он будет работать с некоторым уточнением.aptitude search -Pvi
дает массу ненужных вещей. Я предполагаю, что он ищет все описание пакета.aptitude search ~P
(обратите внимание на тильду) поиск только вProvides
, ноvi
соответствует другимProvides
записям; вам нужно указать точное соответствие сaptitude search '~P^vi$'
. Этот пример подчеркивает фундаментальное ограничение этого подхода: хотя естьvi
альтернатива,vi
виртуального пакета не существует ...Это зависит Существуют некоторые альтернативы, такие как x-www-browser, которые не используют пакет и добавляются через сценарии сопровождающего к альтернативам update:
Есть и другие, которые используют один метапакет для установки любой версии того же самого двоичного файла (на ум приходят также пакеты Java / OpenJRE
init
). Другие используют виртуальный пакет, заполняя «Обеспечивает» (обычно это происходит с обновлением альтернативной базы данных DPKG), и в этом случае любой из этих пакетов должен предоставлять тот же двоичный файл.Итак, как найти все пакеты, которые предоставляют определенный файл? Я бы использовал Provides, если вы знаете пакет, который делает, и
apt-file search file
для всего остального.источник
editor
.Виртуальные пакеты и система альтернатив Debian (в которую входят двоичные файлы) связаны, но не совпадают. Для виртуальных пакетов вы можете использовать,
apt-cache
чтобы найти, какие (реальные) пакеты «предоставляют» его:Для менеджеров отображения виртуальный пакет
x-display-manager
:Как
update-alternatives
показывает ответ Брайама, система альтернатив обрабатывается вызовами в сценариях сопровождающего, а остальная часть системы упаковки, к счастью, об этом не знает. ЭтаProvides
область также является более общей, чем альтернативы, поскольку пакет может предоставлять другую с точки зрения предлагаемых услуг или библиотек, а не только через двоичные файлы.Без сопровождающих пакетов, добавляющих информацию об альтернативах в
Provides
поле (и создающих виртуальные пакеты для всех конечных точек альтернатив - напримерvi
), и без проверки самих пакетов, в настоящее время нет общего способа определить, какой пакет может предоставить альтернативу.источник
Строго связано с вопросом, чтобы найти альтернативу vi :
Выход:
Или:
Выход:
источник
В Ubuntu пакет
command-not-found
содержит базу данных, содержащую также много альтернатив. После установки его можно запросить/usr/lib/command-not-found --no-failure-msg --ignore-installed mail
(перечислить альтернативы дляmail
).Осторожно, если вы не хотите, чтобы автоматические предложения по отсутствующим командам в bash, напишите
unset -f command_not_found_handle
в ~ / .bashrc или удалите определение глобально в/etc/bash.bashrc
. (Делай подобное для зш.)В Debian этот инструмент использует только apt-файл для создания базы данных, поэтому альтернативы не известны (не проверены). Там это говорит так же, как
apt-file search ...
.Источник Ubuntu: https://launchpad.net/command-not-found
источник
/usr/lib/command-not-found /usr/bin/mail
похоже на какой-то рецепт, но я не понимаю, что он должен делать. Объяснение было бы полезно./usr/bin/
из команды, так как это не работает.# /usr/lib/command-not-found mail Command 'mail' is available in '/usr/bin/mail' mail: command not found
,mail
уже установлено. Эта проверка может быть пропущена с опцией--ignore-installed
. Но также после этого вы не получите больше информации (в Debian), чем изapt-file search mail
.