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

데비안 파생 제품에서는 대체 시스템을 통해 처리됩니다:

$ 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.full.vim.gnome

이 명령을 사용하여 기본값을 재정의할 수 있습니다 update-alternatives.

(사실 vim.tiny는 공간이 부족한 경우가 아니면 실제로 사용할 의도가 아니기 때문에 다소 특별한 경우라고 생각합니다. 적어도 여기에서는 대안으로 표시되지 않습니다.)

관련 정보