심볼릭 링크와 git을 사용하여 빌드 관리

심볼릭 링크와 git을 사용하여 빌드 관리

일반적으로 나는 프로그램(예: 등)을 빌드할 emacstmux다음 작업 흐름을 따릅니다.

/home/opt/[name of the program]/builds/[version]/

bin
lib
share

예를 들어, 나와 같은 프로그램의 경우 tmux다음이 있습니다.

/my_local_opt/tmux/builds/1.7.-227/

bin
lib
share

/home/bin/그런 다음 내가 가지고 있는 특정 빌드를 가리키는 PATH심볼릭 링크를 생성하고 /home/bin.

예를 들어 위의 예에서는

  • 심볼릭 링크 생성: 시작: /home/bin/tmux끝:/my_local_opt/tmux/builds/1.7.-227/bin/tmux
  • PATH포함/home/bin

man그러나 ( MANPATH) 및 lib( ) 경로에 대해 LD_LIBRARY_PATH유사한 접근 방식을 수행 할 수 있는지 잘 모르겠습니다 .

  1. 예를 들어, 빌드한 후 다음과 같은 항목 tmux이 생성된 것을 확인했습니다.

    .. /share/man/man1/tmux.1

    그래서 그런 곳에서 파일에 대한 심볼릭 링크를 만든 /home/share다음 MANPATH경로를 포함하도록 수정했습니다. 하지만 입력하면 man tmux작동하지 않습니다(" No manual entry for tmux"라고 표시됨). 왜?

  2. 어때요 lib? 나는 LD_LIBRARY_PATH각 프로그램의 특정 디렉토리를 수정한 다음 심볼릭 링크를 사용하여 포함된 버전을 제어할 수 있을 것이라고 생각했습니다. 이것이 좋은 생각입니까?

보다 일반적으로, 시스템의 버전을 관리하기 위해 심볼릭 링크를 사용하는 것이 좋은 생각입니까? 장기적으로는 여러 구성을 추적하기 위해 git 저장소에 심볼릭 링크를 유지하고 싶습니다.

소프트웨어를 빌드하는 컴퓨터에 대한 관리자 권한이 없으므로 이를 쉽게 빌드를 구성하고 관리하는 방법으로 사용하고 싶습니다(경로가 저장되는 환경 변수를 지속적으로 편집할 필요 없음).

답변1

당신의 목표와젠투 접두사그러나 빌드된 애플리케이션을 별도로 저장하지 않으며 Git에 심볼릭 링크도 저장하지 않습니다.

LD_LIBRARY_PATH그러나 맨페이지 및 라이브러리 요구 사항이 수정됩니다(경고를 설정하거나 하드 코딩된 특정 경로가 있는 구성 및 바이너리가 있어야 함).

또한 git-of-symlinks 모델 자체는 개념적으로 OverlayFS/AUFS 모델과 유사하지만 더 많은 혼합 및 일치 기능이 있습니다.

관련 정보