コンパイルされたプログラムは、一晩でrepoバージョンに置き換えられます。

コンパイルされたプログラムは、一晩でrepoバージョンに置き換えられます。

新しい端末を開いたり、コンピュータを再起動しなくても、Vimのバージョンが変わります。簡単に言うと、翌日私のコンピュータは以前にaptによって削除されたrepoバージョンを採用しました。

私はrepoバージョンでコンパイルされていないいくつかのオプションが必要だったので、ソースからvimをコンパイルしました。以前はこれを数回実行しましたが、XUbuntu 18.04LTSではシステムがコンパイルされたvimを忘れて、私が削除したrepoバージョンを何とか元に戻しましたが、少なくともそう思いました。コンパイルとコンパイル後の設定を正しく実行しているかどうかはわかりませんでした。このリンク。私はまた、前回vim8.2をプルバックするためにcheckinstallを使用しました。dpkg -i deb_nameここで、deb_nameはcheckinstallによって生成されたdebファイルの名前です。

vimのコンパイル済みバージョンが認識されない場合、そのインストール場所も利用できないことがわかりました。

~ $ sudo update-alternatives --install /usr/bin/editor editor /usr/local/bin/vim 1
update-alternatives: error: alternative path /usr/local/bin/vim doesn't exist
~ $ ls -l /usr/local/bin/ | grep vi
lrwxrwxrwx 1 root root      3 Mär 13  2018 ex -> vim
-rwxr-xr-x 1 root root    216 Feb 15  2019 pyvisa-info
-rwxr-xr-x 1 root root    218 Feb 15  2019 pyvisa-shell
lrwxrwxrwx 1 root root      3 Mär 13  2018 rview -> vim
lrwxrwxrwx 1 root root      3 Mär 13  2018 rvim -> vim
lrwxrwxrwx 1 root root      3 Mär 13  2018 view -> vim
lrwxrwxrwx 1 root root      3 Mär 13  2018 vimdiff -> vim

vimがコンパイルされた場所を私のシステムに知らせるためにこのコマンドを実行する必要があるので、これは本当に奇妙です。

場所はローカルドライブにあり、全体が論理/usrボリュームであるため、切断できません。

sudo apt remove vim vim-runtime gvim vim-commonコンパイル前にeを使用してvimを削除しました。dpkg -l | grep vimvimパッケージがインストールされていないことを確認しました。シェルはまた、Command 'vim' not foundしばらくしてから私はvimがリポジトリに再び現れたと言いました:

~ $ dpkg -l vim
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                 Version                 Architecture            Description
 +++-====================================-=======================-=======================-========================================================
ii  vim                                  2:8.0.1453-1ubuntu1.4   amd64                   Vi IMproved - enhanced vi editor

checkinstallで生成されたdebをインストールすると、約1日間問題が解決しました。

~/git_repos/vim $ sudo dpkg -i vim_20201104-1_amd64.deb 
[sudo] password for tibenszky: 
dpkg: warning: downgrading vim from 2:8.0.1453-1ubuntu1.4 to 20201104-1
(Reading database ... 487461 files and directories currently installed.)
Preparing to unpack vim_20201104-1_amd64.deb ...
Unpacking vim (20201104-1) over (2:8.0.1453-1ubuntu1.4) ...
Setting up vim (20201104-1) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...

この問題の原因が何であるか、この問題をどのようにデバッグして解決できるのか分かりません。助けてくれてありがとう。

修正する:aptの毎日のアップグレードに私のvimバージョンが含まれているようです。したがって、質問は「repoバージョンの代わりにコンパイルされたバージョンを使用したいとAPTにどのように通知できますか?」になります。私はちょうどコマンドを発行し、sudo apt-mark hold vimvimが明日更新されないことを願っています。ここでこのコマンドを見つけました質問

ベストアンサー1

実行してgrep -i apt /var/log/syslogシステムを更新する自動化されたタスクがあることを確認してください。存在する場合は、サブシステムで自分のバイナリが置き換えられた理由を説明できますalternatives。おそらく、このようなことが起こらないようにしたいと思います。

update-alternatives --config editor 0<&-; echo
There are 4 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path               Priority   Status
------------------------------------------------------------
* 0            /bin/nano           40        auto mode
  1            /bin/ed            -100       manual mode
  2            /bin/nano           40        manual mode
  3            /usr/bin/vim.nox    40        manual mode
  4            /usr/bin/vim.tiny   15        manual mode

Press <enter> to keep the current choice[*], or type selection number:

まだインストールしていない場合は、設定セットに独自のバイナリをインストールしてください。

update-alternatives --install /usr/bin/editor editor /usr/local/bin/vim 1

しかし、--config上記のコマンドを再実行すると、まだ独自のバイナリに切り替えられていないことがわかります。これにより、代替サブシステムは選択を確認し、以下の設定のmanual変更を停止する必要があります。私の考えでは、これはあなたが逃したステップかもしれません

update-alternatives --set editor /usr/local/bin/vim

おすすめ記事