Wiem, że to trochę za późno, ale ten post jest obecnie jednym z najlepszych wyników wyszukiwania związanych ze znajdowaniem alternatyw w Debianie.
Problem z używaniem update-alternatives
tutaj polega na tym, że pokaże ci tylko zainstalowane opcje, o ile mi wiadomo (strona podręcznika jest dość rzadka).
Aby odpowiedzieć na pytanie zawarte w tytule, tj. Znaleźć wszystkie dostępne pakiety, które stanowią alternatywę (zainstalowaną lub nie), możesz użyć:
aptitude search '?provides(pattern)'
który może być również skrócony do:
aptitude search '~Ppattern'
gdzie pattern
jest cała alternatywa, której szukasz, lub jej część. W konkretnym przypadku vi
tak naprawdę nie działa. Jeśli sprawdzisz paczki nvi
i vim
przy pomocy aptitude show
lub apt-cache show
, zobaczysz, że żadne z nich nie wymienia „vi” w sekcji „Zapewnia:”. W rzeczywistości w opisie nvi brakuje tej sekcji całkowicie.
Działa jednak dość dobrze w przypadku innych alternatyw, takich jak 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)
Mimo że nie jest to idealne, aptitude
ma niewiarygodnie elastyczne funkcje wyszukiwania, które często pozwalają obejść problem nieprawidłowego wyświetlania pakietów, które zawierają alternatywne opcje - na przykład użycie "~seditors ~dvi\s"
jako wzorca wyszukiwania spowoduje wyświetlenie wszystkich pakietów w sekcji „redaktorzy” opis zawiera ciąg „vi”.
Inną opcją jest skorzystanie z witryny pakietów Debiana , gdzie podobne pakiety są wymienione w sekcji po prawej stronie.
aps ~Peditor
? Jeśliaps
ma to być skrót do umiejętności, w porządku, ale proszę, nie używaj tego w odpowiedzi, to tylko dezorientuje wszystkich. Ponadto, jeśli uważasz, że brakuje pakietów, możesz zgłosić raport o błędzie dla odpowiednich pakietów.aps
musi to oznaczaćaptitude search
. Ale powinieneś tego wyraźnie użyć. Jednak nie sądzę, że jest to wykonalna odpowiedź, niezależnie od tego - może zadziała z pewnym dopracowaniem.aptitude search -Pvi
daje mnóstwo nieistotnych rzeczy. Zgaduję, że przeszukuje cały opis pakietu.aptitude search ~P
(zwróć uwagę na tyldy) wyszukuje tylko wProvides
, alevi
dopasowuje inneProvides
wpisy; musisz określić dokładne dopasowanie doaptitude search '~P^vi$'
. Ten przykład podkreśla jednak podstawowe ograniczenie tego podejścia: chociaż istniejevi
alternatywa, nie mavi
wirtualnego pakietu ...To zależy. Istnieje kilka alternatyw, takich jak x-www-browser, nie używaj pakietu i są one dodawane za pomocą skryptów opiekuna do aktualizacji-alternatywy:
Są inni, którzy używają jednego metapakietu do instalowania dowolnej wersji tego samego pliku binarnego (przychodzą też na myśl pakiety Java / OpenJRE
init
). Inni używają wirtualnego pakietu, wypełniając „Provides” (zwykle zawiera aktualizację alternatywnej bazy danych DPKG), w którym to przypadku każdy z tych pakietów powinien dostarczyć ten sam plik binarny.Jak znaleźć wszystkie pakiety, które zawierają określony plik? Chciałbym skorzystać z Provides, jeśli znasz pakiet, który to robi, i
apt-file search file
do wszystkiego innego.źródło
editor
.Pakiety wirtualne i system alternatyw Debiana (czyli tam, gdzie wchodzą w grę pliki binarne) są powiązane, ale nie takie same. W przypadku pakietów wirtualnych możesz użyć,
apt-cache
aby znaleźć, które (prawdziwe) pakiety „zapewniają”:W przypadku menedżerów wyświetlania pakiet wirtualny to
x-display-manager
:System alternatyw jest obsługiwany przez wywołania
update-alternatives
skryptów opiekuna, jak pokazuje odpowiedź Braiam, a reszta systemu pakowania jest błogo nieświadoma.Provides
Pole jest również bardziej ogólne niż alternatyw, ponieważ opakowanie może przewidywać inny pod względem oferowanych usług i bibliotek, a nie tylko za pomocą plików binarnych.Bez opiekunów pakietów dodających informacje o alternatywach do
Provides
pola (i tworzących wirtualne pakiety dla wszystkich punktów końcowych alternatyw - jakvi
) i bez sprawdzania samych pakietów, obecnie nie ma ogólnego sposobu na sprawdzenie, który pakiet może stanowić alternatywę.źródło
Ściśle związany z pytaniem, aby znaleźć alternatywę vi :
Wynik:
Lub:
Wynik:
źródło
W Ubuntu pakiet
command-not-found
zawiera bazę danych zawierającą również wiele alternatyw. Po instalacji można zapytać za pomocą/usr/lib/command-not-found --no-failure-msg --ignore-installed mail
(aby wyświetlić listę alternatyw dlamail
).Ostrożnie, jeśli nie chcesz automatycznych sugestii dotyczących brakujących poleceń w bash, napisz
unset -f command_not_found_handle
w swoim ~ / .bashrc lub usuń definicję globalnie w/etc/bash.bashrc
. (Zrób to samo dla zsh.)W Debianie to narzędzie używa tylko apt-file do utworzenia bazy danych, więc nie są znane żadne alternatywy (nie testowane). Tam mówi to samo co
apt-file search ...
.Źródło Ubuntu: https://launchpad.net/command-not-found
źródło
/usr/lib/command-not-found /usr/bin/mail
wygląda jak jakiś przepis, ale nie rozumiem, co powinien zrobić. Wyjaśnienie byłoby pomocne./usr/bin/
z polecenia, ponieważ to nie działa.# /usr/lib/command-not-found mail Command 'mail' is available in '/usr/bin/mail' mail: command not found
.mail
jest już zainstalowany. To sprawdzenie można pominąć za pomocą opcji--ignore-installed
. Ale również po tym nie otrzymasz więcej informacji (w debianie) niż odapt-file search mail
.