데비안 배포판에는데비안 대체 시스템. 위키에서:
데비안 대체 시스템은 동시에 설치된 대체 구현과 동일하거나 유사한 기능을 구현하지만 하나의 특정 구현을 기본값으로 지정하는 여러 프로그램을 나열하는 방법을 만듭니다. 예를 들어, 많은 시스템에는 동시에 여러 개의 텍스트 편집기가 설치되어 있습니다. vi 프로그램은 편집기의 전형적인 예이며 nvi, elvis, vim 등과 같은 많은 구현이 있지만 기본 구현으로 지정해야 하는 것은 무엇입니까?
일반적으로 데비안에는 특정 대안을 제공하는 여러 패키지가 있습니다. 데비안 저장소에 있는 모든 패키지의 전체 목록을 어떻게 얻을 수 있나요? vi 대안을 예로 들어보겠습니다.
참고: 설치된 패키지 목록에 대해 이러한 쿼리를 수행하는 것은 쉽지만 이 질문에서는 이에 대해 묻는 것이 아닙니다.
답변1
가상 패키지그리고데비안 대체 시스템(여기서 바이너리가 작동합니다.) 관련되어 있지만 동일하지는 않습니다. 가상 패키지의 경우 apt-cache
다음을 사용하여 이를 "제공"하는 (실제) 패키지를 찾을 수 있습니다.
$ apt-cache showpkg awk
Package: awk
Versions:
Reverse Depends:
base-files,awk
base-files,awk
Dependencies:
Provides:
Reverse Provides:
mawk:i386 1.3.3-17ubuntu2
gawk:i386 1:4.0.1+dfsg-2.1ubuntu2
original-awk 2012-12-20-1
mawk 1.3.3-17ubuntu2
gawk 1:4.0.1+dfsg-2.1ubuntu2
디스플레이 관리자의 경우 가상 패키지는 다음과 같습니다 x-display-manager
.
$ apt-cache showpkg x-display-manager
Package: x-display-manager
Versions:
Reverse Depends:
utf8-migration-tool,x-display-manager
razorqt,x-display-manager
lxde,x-display-manager
numlockx,x-display-manager
ltsp-client-core,x-display-manager
Dependencies:
Provides:
Reverse Provides:
gdm 3.10.0.1-0ubuntu3.1
lightdm 1.10.6-0ubuntu1
kdm 4:4.11.11-0ubuntu0.2
xdm 1:1.1.11-1ubuntu1
wdm 1.28-16
slim 1.3.4-2.1
lxdm 0.4.1-0ubuntu6
kdm 4:4.11.8-0ubuntu6
gdm 3.10.0.1-0ubuntu3
lightdm 1.10.0-0ubuntu3
Braiam의 답변에서 알 수 있듯이 교체 시스템은 update-alternatives
관리자 스크립트를 호출하여 처리되며 나머지 래핑 시스템은 이를 전혀 인식하지 못합니다. 이 Provides
영역은 또한 하나의 패키지가 바이너리뿐만 아니라 제공된 서비스나 라이브러리를 통해 다른 패키지를 제공할 수 있기 때문에 대안보다 더 일반적입니다.
패키지 관리자가 Provides
필드에 대안에 대한 정보를 추가하지 않고(예를 들어 대안의 모든 끝점에 대해 더미 패키지를 생성하지 않고 vi
) 패키지 자체를 검사하지 않는 경우 현재 어떤 패키지가 대안을 제공하는지 확인할 수 있는 일반적인 방법이 없습니다. .
답변2
조금 늦었다는 건 알지만, 이 기사는 현재 데비안에서 대안을 찾는 것과 관련된 최고의 검색 히트 중 하나입니다.
여기에서 사용할 때의 문제점 update-alternatives
은 내가 아는 한 설치된 옵션만 표시한다는 것입니다(매뉴얼 페이지가 매우 드물다).
제목에 제시된 질문에 답하려면 다음을 찾아보세요.모두 사용 가능대체 패키지를 제공하려면(설치 여부에 관계없이) 다음을 사용할 수 있습니다.
aptitude search '?provides(pattern)'
다음과 같이 단축할 수도 있습니다.
aptitude search '~Ppattern'
pattern
당신이 찾고 있는 대안의 전부 또는 일부는 어디에 있습니까? 특정 경우에는 vi
실제로 작동하지 않습니다. 또는 패키지 nvi
와 를 사용하여 확인하면 "제공:" 섹션에 "vi"가 나열되어 있지 않음을 알 수 있습니다. 사실, nvi의 설명에는 그 부분이 완전히 빠졌습니다.vim
aptitude show
apt-cache show
그러나 다음과 같은 다른 대안에서는 매우 잘 작동합니다 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" 문자열이 포함된 "편집기" 섹션의 모든 패키지가 나열됩니다.
또 다른 옵션은 다음을 사용하는 것입니다.데비안 패키지 웹사이트, 유사한 패키지가 오른쪽 섹션에 나열되어 있습니다.
답변3
때에 따라 다르지. 패키지를 사용하지 않지만 유지 관리자 스크립트를 통해 대안을 업데이트하기 위해 추가되는 x-www-browser와 같은 몇 가지 대안이 있습니다.
/var/lib/dpkg/info/iceweasel.postinst: update-alternatives --install /usr/bin/x-www-browser \
/var/lib/dpkg/info/iceweasel.postinst: update-alternatives --remove mozilla /usr/bin/iceweasel
/var/lib/dpkg/info/iceweasel.postinst: update-alternatives --install /usr/bin/gnome-www-browser \
/var/lib/dpkg/info/iceweasel.prerm: update-alternatives --remove x-www-browser /usr/bin/iceweasel
/var/lib/dpkg/info/iceweasel.prerm: update-alternatives --remove gnome-www-browser /usr/bin/iceweasel
/var/lib/dpkg/info/chromium.postinst: update-alternatives --install /usr/bin/x-www-browser \
/var/lib/dpkg/info/chromium.postinst: update-alternatives --install /usr/bin/gnome-www-browser \
/var/lib/dpkg/info/chromium.prerm: update-alternatives --remove x-www-browser /usr/bin/chromium
/var/lib/dpkg/info/chromium.prerm: update-alternatives --remove gnome-www-browser /usr/bin/chromium
단일 메타 패키지를 사용하여 동일한 바이너리의 모든 버전을 설치하는 다른 패키지도 있습니다(Java/OpenJRE 패키지도 고려됩니다 init
). 다른 사람들은 다음을 채워서 더미 패키지를 사용합니다."공급"(이것은 일반적으로 대체 DPKG 데이터베이스에 대한 업데이트와 함께 제공됩니다.) 이 경우 이러한 패키지는 모두 동일한 바이너리를 제공해야 합니다.
그렇다면 특정 파일을 제공하는 모든 패키지를 어떻게 찾을 수 있을까요? Provide 및 기타 모든 것을 사용하는 패키지를 알고 있다면 apt-file search file
Provide를 사용하겠습니다.
답변4
문제와 밀접하게 관련되어 있음을 찾으십시오.육선택하다:
update-alternatives --list editor
산출:
/bin/ed
/bin/nano
/usr/bin/mcedit
/usr/bin/vim.basic
/usr/bin/vim.tiny
또는:
update-alternatives --config vi
산출:
There are 2 choices for the alternative vi (providing /usr/bin/vi).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/vim.basic 30 auto mode
1 /usr/bin/vim.basic 30 manual mode
2 /usr/bin/vim.tiny 10 manual mode
Press enter to keep the current choice[*], or type selection number: