사용자 도구

사이트 도구


linux:stow

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
linux:stow [2020/09/11 12:45]
kwon37xi
linux:stow [2020/09/14 00:16] (현재)
kwon37xi [실행]
줄 1: 줄 1:
 ====== GNU stow ====== ====== GNU stow ======
   * https://www.gnu.org/software/stow/   * https://www.gnu.org/software/stow/
 +  * [[https://www.gnu.org/software/stow/manual/stow.html|Stow]]
 +  * ''stow'' 의 원래 목적은 다중 버전의 애플리케이션을 버전을 선택해가면서 사용하고자 하는 것이다.
  
 ===== 실행 ===== ===== 실행 =====
줄 16: 줄 18:
 # 아무 디렉토리에서나 명시적으로 stow dir과 target dir 을 명시하려면 # 아무 디렉토리에서나 명시적으로 stow dir과 target dir 을 명시하려면
 stow -d ~/.dotfiles -t ~/ vim stow -d ~/.dotfiles -t ~/ vim
 +
 +stow -d ~/.dotfiles -t ~/ -S vim # 명시적으로 stow 하라는 옵션. 생략과 동일
  
 # unstow : 링크 제거 # unstow : 링크 제거
 stow -d ~/.dotfiles -t ~/ -D vim stow -d ~/.dotfiles -t ~/ -D vim
 +
 +# -R restow : unstow -> stow 를 수행한다.
 </code> </code>
 +
 +===== 충돌 =====
 +  * stow 하려는 파일이 이미 대상 디렉토리에 존재할 경우 충돌이 발생하면서 stow 를 거부한다.
 +  * ''--adopt'' 옵션을 사용하면 대상 디렉토리의 파일을 stow 패키지로 가져와서(adopt) 다시 stow를 한다.
 +  * 이는 [[:git|git]]등으로 버전관리를 할 때만 사용해야한다.
 +  * 충돌이 나서 버전 관리 대상 stow 패키지로 파일이 옮겨지면 diff 를 해서 충돌을 해결하고 commit/push 해서 최종 사용하면 된다.
  
 ===== 주의 ===== ===== 주의 =====
   * 예를들어 ''~/.dotfiles/local_bin/.local/bin/파일들'' 구조일 때 ''~/.local/bin'' 디렉토리가 존재하지 않으면 ''~/.dotfiles/local_bin/.local/bin'' 디렉토리 자체를 링크해버린다.   * 예를들어 ''~/.dotfiles/local_bin/.local/bin/파일들'' 구조일 때 ''~/.local/bin'' 디렉토리가 존재하지 않으면 ''~/.dotfiles/local_bin/.local/bin'' 디렉토리 자체를 링크해버린다.
   * 하지만 이미 디렉토리가 존재하면 ''~/.dotfiles/local_bin/.local/bin''아래에 있는 파일들만 링크한다.   * 하지만 이미 디렉토리가 존재하면 ''~/.dotfiles/local_bin/.local/bin''아래에 있는 파일들만 링크한다.
-  * 목적에 맞게 미리 파일을 생성해주거나 해야한다.+  * 목적에 맞게 미리 디렉토리를 생성해주거나 해야한다.
  
 ===== 참조 ===== ===== 참조 =====
   * [[https://alexpearce.me/2016/02/managing-dotfiles-with-stow/|Managing dotfiles with GNU stow - Alex Pearce]]   * [[https://alexpearce.me/2016/02/managing-dotfiles-with-stow/|Managing dotfiles with GNU stow - Alex Pearce]]
linux/stow.1599795908.txt.gz · 마지막으로 수정됨: 2020/09/11 12:45 저자 kwon37xi