APTは同じ名前の別のプログラムをどのように処理しますか?

APTは同じ名前の別のプログラムをどのように処理しますか?

私はついにviを学ぶことにしましたが、そうしたときにviが私が期待どおりに機能しないことに気づきました。私は別の記事で、これはvim-tinyがUbuntuにデフォルトでインストールされているためであることを学びました。

そのことがわかったら、次のコマンドを使用してvimのフルバージョンをインストールすることにしました。

sudo apt-get install vim

この仕事をしているので、たくさんのことが気になります。

  1. viコマンドとvimコマンドは、vim-tinyではなくvimフルバージョンに関連付けられていることを確認しました。どうやってこれが起こったのですか? (つまり、名前検索はどのように機能しますか?)
  2. vim-tinyを明示的に実行する方法、またはいっぱいウィム?
  3. Linux/Ubuntu/aptは、名前が競合するライブラリと実行ファイルをどのように管理しますか?他のバージョンはどうですか?

私はUbuntu Server 12.04 LTSを使用しています。

答え1

Debian 派生製品では、代替システムによって処理されます。

$ ls -l /usr/bin/vim
lrwxrwxrwx 1 root root 21 Jun 11  2010 /usr/bin/vim -> /etc/alternatives/vim
$ ls -l /etc/alternatives/vim
lrwxrwxrwx 1 root root 18 Jun 11  2010 /etc/alternatives/vim -> /usr/bin/vim.gnome

パッケージのインストール後のスクリプト(dpkgが「パッケージX構成」と言うときに実行されるスクリプト)は、代替システムにvimの新しい代替案を伝えます。新しい選択肢はより高い優先順位を持つため選択されます。

、などvim.tinyを直接実行できますvim.fullvim.gnome

このコマンドを使用してデフォルト値を上書きできますupdate-alternatives

(実際にはvim.tinyは、スペースが足りない場合や実際に使用する意図ではないので、やや特別なケースだと思います。少なくともここでは代替としてマークされていません。)

関連情報