개요
심볼릭 링크에 대해서는 '파이썬 2개 버전 동시 사용하기' 글에서 이미 다루었다. 해당 글을 작성하고 최근까지도 나는 이 경우에만 심볼릭 링크를 사용하는 줄 알았다. 그러나 자사 제품의 로컬 실행을 위해 빌드하며 다른 메시지의 오류 2개를 심볼릭 링크로 해결해보며, 이것이 다양한 경우에서 사용될 수 있음을 깨달았다. 요약하자면 심볼릭 링크는 파일 A와 B가 멀리 떨어진 위치에 있을 때, A 파일을 실행하며 종속적으로 B 파일 실행이 필요한 경우 A에 B 파일의 위치를 알려주는 느낌이다.
Windows에서의 Symbolic Link
Symbolic Link 란?
- 링크를 연결하여 원본 파일을 직접 사용하는 것과 같은 효과를 내는 링크이다.
- 윈도우의 바로가기와 비슷한 개념이다.
- 특정 폴더에 링크를 걸어 NAS, library 원본 파일을 사용하기 위해 심볼릭 링크를 사용한다.
- 소프트 링크라고도 한다.
- 리눅스 용어이지만 자사에서는 윈도우로 개발하는 바, 이하에서는 윈도우 명령어와 오류로 설명한다.
명령어 및 결과
1. 링크 생성
- 파일에 대한 링크 생성 : mklink 생성파일 실행파일
mklink C:\Workspace\Rogic\scratch-blocks\python.exe C:\Python27\python.exe
// cmd 결과
C:\Workspace\Rogic\scratch-blocks\python.exe <<===>> C:\Python27\python.exe에 대한 기호화된 링크를 만들었습니다.
// 파일탐색기 결과
- 디렉토리에 대한 링크 생성 : mklink 생성디렉토리 실행디렉토리
-> 파일에서 디렉토리로만 변경되고, 로직 및 결과는 동일하게 확인 가능하다.
2. 링크 삭제
- 파일에 대한 링크 삭제
- cmd 창을 이용 : (생성파일이 있는 디렉토리로 이동하여) del 생성파일
- 파일탐색기 이용 : 위 사진에 있는 심볼릭 링크 파일 삭제
- 디렉토리에 대한 링크 삭제
- cmd 창을 이용 : (생성 디렉토리로 이동하여) rmdir 생성디렉토리
- 파일탐색기 이용 : 상동
Trouble Shooting
오류 내용
- scratch-blocks에서 npm run prepublish 실행 시 아래 오류 발생
// 파이썬에서 site-packages를 찾을 수 없는 오류
ImportError: No module named site
// 자바가 path에 없다는 오류
Could not find "java" in your PATH.
Using remote compiler: closure-compiler.appspot.com ...
Error: Closure not found.
오류 원인(내 생각)
- 파이썬의 경우 2개 버전을 함께 사용하므로 설치한 후부터 지금까지 경로가 꼬였을 수 있겠다고 생각했다. 따라서 완전 삭제 후 재설치하고 오류를 해결하기로 했다.
- 그러나 재설치해도 위 오류는 동일하게 발생했다. 따라서 scratch-blocks에서 실행되는 파이썬(ver 2.7.18)에게 site-packages를 찾을 수 있도록 알려주어야 겠다고 생각했다.
- 자바의 경우에도 고급 시스템 설정-환경변수-Path에 올바른 경로를 추가해도 위와 같은 오류가 발생했다. 따라서 scratch-blocks에서 실행되는 자바가 어디 있는지 알려주어야 겠다고 생각했다.
- 즉 위의 두 문제 모두 메시지는 다르지만 '알려준다' 라는 요점이 같고, 이것이 곧 심볼릭 링크라고 생각했다!
해결
// 파이썬은 두 버전의 명령어를 구분하여 심볼릭 링크 만들기
mklink C:\Workspace\Rogic\scratch-blocks\python.exe C:\Python27\python.exe // 빌드 명령어 : python
C:\Workspace\Rogic\scratch-blocks\python.exe <<===>> C:\Python27\python.exe에 대한 기호화된 링크를 만들었습니다.
mklink C:\Workspace\Rogic\scratch-blocks\py.exe C:\Users\KHR\AppData\Local\Programs\Python\Python312\python.exe // ai 개발 명령어 : py
C:\Workspace\Rogic\scratch-blocks\py.exe <<===>> C:\Users\KHR\AppData\Local\Programs\Python\Python312\python.exe에 대한 기호화된 링크를 만들었습니다.
// 자바
mklink "C:\Workspace\Rogic\scratch-blocks\java.exe" "C:\Program Files (x86)\Java\jre-1.8\bin\java.exe"
C:\Workspace\Rogic\scratch-blocks\java.exe <<===>> C:\Program Files (x86)\Java\jre-1.8\bin\java.exe에 대한 기호화된 링크를 만들었습니다.
- 주의할 점
- 빌드하는 디렉토리 위치에서 심볼릭링크를 생성해야한다! 처음 cmd 창을 열었을 때 설정 되어있는 기본 디렉토리에서 링크 생성해봤자 소용 없다!
- cmd 창을 관리자 권한으로 열어야한다! 관리자 권한으로 열지 않으면 명령어가 권한이 없어 작동하지 않는다!
참고 자료
231031 7번째 완료
'Backend > Enviornment setting | Git' 카테고리의 다른 글
[Setting] Visual Studio Code 위주 유용한 단축키 + 확장 앱 (0) | 2023.11.30 |
---|---|
[Git] commit과 push (0) | 2023.11.30 |
[Git] git stash (0) | 2023.11.29 |