새 터미널을 열거나 컴퓨터를 다시 시작하지 않고도 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 vim
vim 패키지가 설치되어 있지 않은지 확인했습니다. 쉘은 또한 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를 설치하면 약 하루 동안 문제가 해결되었습니다.
~/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 vim
vim이 내일 다시 업데이트되지 않기를 바랍니다. 여기서 이 명령을 찾았습니다질문.
답변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