アップデートがソースからビルドされたVimを上書きするのはなぜですか?

アップデートがソースからビルドされたVimを上書きするのはなぜですか?

ソースからVimをビルドしてcheckinstallすぐにインストールしました。ソフトウェアとアップデートVimのアップデートについて警告します。しかし、インストール後にVimパスが変更され、他のビルドが置き換えられ、私のソースビルドが消えました。何が起こったのか知っていますか?

答え1

Vimをビルドしてカスタムディレクトリにインストールしました。私は次のように設定を呼び出します。

configure --prefix=/usr/local/mybuild/vim --mandir=/usr/local/mybuild/vim/share/man --without-local-dir ...

だから私はやる

make
make test
make install

その後、実行可能ファイルは/usr/local/mybuild/vim/bin/vim

代替リンクを更新するために、次のことを行いました。これは一度だけ必要であり、その後毎回必要ではありませんmake install

update-alternatives --install /usr/bin/editor editor /usr/local/mybuild/vim/bin/vim 1200
update-alternatives --install /usr/bin/eview eview /usr/local/mybuild/vim/bin/vim 1200
update-alternatives --install /usr/bin/evim evim /usr/local/mybuild/vim/bin/vim 1200
update-alternatives --install /usr/bin/ex ex /usr/local/mybuild/vim/bin/vim 1200
update-alternatives --install /usr/bin/gview gview /usr/local/mybuild/vim/bin/vim 1200
update-alternatives --install /usr/bin/gvim gvim /usr/local/mybuild/vim/bin/vim 1200
update-alternatives --install /usr/bin/gvimdiff gvimdiff /usr/local/mybuild/vim/bin/vim 1200
update-alternatives --install /usr/bin/rgview rgview /usr/local/mybuild/vim/bin/vim 1200
update-alternatives --install /usr/bin/rgvim rgvim /usr/local/mybuild/vim/bin/vim 1200
update-alternatives --install /usr/bin/rview rview /usr/local/mybuild/vim/bin/vim 1200
update-alternatives --install /usr/bin/rvim rvim /usr/local/mybuild/vim/bin/vim 1200
update-alternatives --install /usr/bin/vi vi /usr/local/mybuild/vim/bin/vim 1200
update-alternatives --install /usr/bin/view view /usr/local/mybuild/vim/bin/vim 1200
update-alternatives --install /usr/bin/vim vim /usr/local/mybuild/vim/bin/vim 1200
update-alternatives --install /usr/bin/vimdiff vimdiff /usr/local/mybuild/vim/bin/vim 1200

システムのインストール時にリンクが置き換えられないように、高い優先順位(1200)を選択しました。

Vimはへ/usr/bin/vimのリンクで/etc/alternatives/vimあり、へのリンクです/usr/local/mybuild/vim/bin/vim。だから呼び出しはvimVimプライベートビルドを開始します。

vimの代替案がどのように構成されているかを確認するには、マイupdate-alternatives --display vimコンピュータで次の出力を生成します。

$ update-alternatives --display vim
vim - auto mode
  link best version is /usr/local/mybuild/vim/bin/vim
  link currently points to /usr/local/mybuild/vim/bin/vim
  link vim is /usr/bin/vim
/usr/bin/vim.basic - priority 30
/usr/bin/vim.gtk3 - priority 50
/usr/local/mybuild/vim/bin/vim - priority 1200

答え2

2つのうちの1つが発生しました。

  1. ディストリビューションと同じ名前のパッケージを使用していますが、ディストリビューション更新パッケージのバージョンが高くなります。そのため、パッケージマネージャはカスタムビルドを展開バージョンに「アップグレード」することを嬉しく思います。回避策:配布パッケージを削除し、ローカルパッケージに別の名前を使用します(例local-vim:)。同じ名前を使用する必要がある場合(たとえば、依存関係のため)、より高いバージョンを使用してください。たとえば、Debianでは時代を追加できます。

  2. vim-from-sourceを にインストールし、/usr配布パッケージのファイルは同じ名前を使用します。したがって、ファイルが上書きされます。可能性は低いですが、多くのパッケージマネージャはこれについて話します...回避策は、別のパス(または/opt/usr/localを使用したり、distroパッケージをインストールしたりしないことです。

関連情報