Debian ディストリビューションではDebian 代替システム。ウィキから:
Debian 代替システムは、同時にインストールされた代替実装と同じまたは類似の機能を実装しますが、1 つの特定の実装をデフォルトとして指定する複数のプログラムを一覧表示する方法を作成します。たとえば、多くのシステムには複数のテキストエディタが同時にインストールされています。 viプログラムはエディタの典型的な例であり、nvi、elvis、vimなどの多くの実装がありますが、デフォルトの実装として指定する必要があるものは何ですか?
通常、Debian には特定の選択肢を提供するいくつかのパッケージがあります。 Debianリポジトリのすべてのパッケージの完全なリストをどのように入手できますか? viの代替案を例に挙げましょう。
注:インストールされているパッケージのリストに対してこれらのクエリを実行するのは簡単ですが、この質問はそれについて尋ねるものではありません。
答え1
仮想パッケージそしてDebian 代替システム(ここではバイナリが動作します。)関連していますが、同じではありません。仮想パッケージの場合は、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
領域は、1つのパッケージがバイナリだけでなく、提供されたサービスまたはライブラリを介して別のパッケージを提供できるため、代替よりも一般的です。
パッケージマネージャがProvides
フィールドに代替情報を追加せずに(たとえば、代替のすべてのエンドポイントに対してダミーパッケージを作成せずにvi
)パッケージ自体をチェックしない場合、現在どのパッケージが代替を提供しているかを確認する一般的な方法ありません。 。
答え2
少し遅れていることは知っていますが、この記事は現在Debianで代替を見つけることに関連する最高の検索ヒットの1つです。
ここで使用するときの問題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」文字列を含む「エディタ」セクションのすべてのパッケージが一覧表示されます。
別のオプションは、次のものを使用することです。Debian パッケージのウェブサイト、同様のパッケージが右のセクションにリストされています。
答え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: