소스에서 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
. 그래서 호출이 vim
Vim 비공개 빌드를 시작합니다.
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
두 가지 중 하나가 발생했습니다.
배포판과 동일한 이름의 패키지를 사용하고 있지만 배포판 업데이트 패키지의 버전이 더 높습니다. 따라서 패키지 관리자는 사용자 정의 빌드를 배포 버전으로 "업그레이드"하게 되어 기쁘게 생각합니다. 해결 방법: 배포 패키지를 제거하고 로컬 패키지에 다른 이름을 사용하십시오(예
local-vim
: ). 동일한 이름을 사용해야 하는 경우(예: 종속성으로 인해) 더 높은 버전을 사용하세요. 예를 들어 Debian에서는 시대를 추가할 수 있습니다.vim-from-source를 에 설치했으며
/usr
배포 패키지의 파일은 동일한 이름을 사용합니다. 따라서 파일을 덮어씁니다. 가능성은 낮지만, 많은 패키지 관리자가 이것에 대해 소리를 지를 것입니다... 해결 방법은 다른 경로(예:/opt
또는/usr/local
)를 사용하거나 distro 패키지를 설치하지 않는 것입니다.