일반적으로 나는 프로그램(예: 등)을 빌드할 emacs
때 tmux
다음 작업 흐름을 따릅니다.
/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
유사한 접근 방식을 수행 할 수 있는지 잘 모르겠습니다 .
예를 들어, 빌드한 후 다음과 같은 항목
tmux
이 생성된 것을 확인했습니다... /share/man/man1/tmux.1
그래서 그런 곳에서 파일에 대한 심볼릭 링크를 만든
/home/share
다음MANPATH
경로를 포함하도록 수정했습니다. 하지만 입력하면man tmux
작동하지 않습니다("No manual entry for tmux
"라고 표시됨). 왜?어때요
lib
? 나는LD_LIBRARY_PATH
각 프로그램의 특정 디렉토리를 수정한 다음 심볼릭 링크를 사용하여 포함된 버전을 제어할 수 있을 것이라고 생각했습니다. 이것이 좋은 생각입니까?
보다 일반적으로, 시스템의 버전을 관리하기 위해 심볼릭 링크를 사용하는 것이 좋은 생각입니까? 장기적으로는 여러 구성을 추적하기 위해 git 저장소에 심볼릭 링크를 유지하고 싶습니다.
소프트웨어를 빌드하는 컴퓨터에 대한 관리자 권한이 없으므로 이를 쉽게 빌드를 구성하고 관리하는 방법으로 사용하고 싶습니다(경로가 저장되는 환경 변수를 지속적으로 편집할 필요 없음).
답변1
당신의 목표와젠투 접두사그러나 빌드된 애플리케이션을 별도로 저장하지 않으며 Git에 심볼릭 링크도 저장하지 않습니다.
LD_LIBRARY_PATH
그러나 맨페이지 및 라이브러리 요구 사항이 수정됩니다(경고를 설정하거나 하드 코딩된 특정 경로가 있는 구성 및 바이너리가 있어야 함).
또한 git-of-symlinks 모델 자체는 개념적으로 OverlayFS/AUFS 모델과 유사하지만 더 많은 혼합 및 일치 기능이 있습니다.