FreeBSD에서 혼합 된 패키지와 포트를 업데이트하는 방법 gvim. 문제 없어요. 옵션을

저는 대부분 FreeBSD에서 패키지를 사용합니다. 대부분 패키지가 저에게 적합하기 때문입니다. 그러나 일부는 vim그래픽과 함께 포함되지 않은 패키지 와 같이 나에게 적합 하지 않습니다 gvim.

문제 없어요. 옵션을 사용 portmaster editors/vim하고 선택 하여 포트를 대신 설치할 수 있습니다 GTK2. 이것은 잘 작동합니다.

그러나 pkg upgrade잠시 후 달릴 때 다음과 같은 메시지가 나타납니다.

        Reinstalling vim-7.4.110_3 (options changed)

무엇을 제공합니까? 옵션을 변경하지 않았으며 새 버전이 없습니다 (포트에 없음). 설치된 포트와 원격 버전을 비교하지 않고 GTK2있습니까?

물론 나는 pkg upgrade그 일을하고 포트를 다시 설치할 수는 있지만 바보입니다. 혼합 된 패키지와 포트를 업데이트하는 데 권장되는 방법은 무엇입니까?



답변

당신은 기억해야 할 pkg포트가 같은 장소 (에 SQLite는 데이터베이스에 소프트웨어를 설치 등록 /var/db/pkg). 시스템은 특정 소프트웨어가 사전 컴파일 된 패키지 또는 포트로 설치된 추가 정보를 기록하지 않습니다. 소프트웨어의 조각이 두 접근 방식으로 설치되면 따라서, 도구는 알 방법이 없다 방법 은 설치되었다.

editors/vim포트에 GTK2 지원을 선택 하면 패키지 데이터베이스에 등록되었습니다. 나중에 실행하면 pkg upgrade, pkg용 패키지 데이터를 보았다 vim, 그리고 그것은 미리 컴파일 된 패키지로 사용할 수 없습니다 반면 GTK2 지원, 설치된 버전에서 활성화 된 것을 발견했다. pkg upgrade사용 가능한 사전 컴파일 된 패키지와 다른 설치된 패키지를 찾아 업그레이드하려고합니다. 이러한 차이점은 버전 번호, 종속성 그래프, 컴파일 타임 옵션 등이 될 수 있습니다.

보호 pkg하려는 포트 나 패키지를 고려 하지 않도록하는 적절한 방법 (설치된 도구와 관련하여 차이가 없음)은 pkg lock명령 을 사용하는 것 입니다.

또는 여러 포트에서 옵션을 변경하는 경우 poudriere자체 패키지 리포지토리 설치 및 유지 관리를 고려할 수 있습니다 . 약간의 설정이 필요하며 빌드 호스트에 ZFS 스토리지 풀이있는 경우 가장 효과적이지만 ZFS가없는 경우에는 작동합니다. 사용자 정의 소프트웨어 빌드를 관리하는 매우 유연하고 편리한 방법입니다.