본문 바로가기

윈도우 개발환경

Git Bash 활용하기 - 1. 리눅스 기능 확장하기

Git Bash 활용하기

1. 리눅스 기능 확장하기

2. 리눅스 기능으로 Node.js 개발환경 만들기

 

Git Bash는 윈도우에 Git을 설치하면 같이 설치되는 윈도우용 리눅스 축소판이다. Git Bash를 사용하기 위해서는 먼저 윈도우용 Git을 설치한다.

 

개발 소스코드 관리; 2. Git을 설치하고 덤으로 얻는 리눅스 환경

개발 소스코드 관리 1. 형상관리, CI/CD 2. Git을 설치하고 덤으로 얻는 리눅스 환경 3. Github 사용하기 - 1) 계정생성, Token 발행 4. Github 사용하기 - 2) VScode 연결, 해제 5. 예제로 본 Git 사용법 (기본 명

front-it.tistory.com

윈도우용 Git을 설치하면 Git Bash와 함께 Git이 동작할 수 있는 최소한의 윈도우용 리눅스 환경, MinGW를 제공한다. 하지만 윈도우 WSL 2에 설치한 우분투처럼 현재 Git Bash에 없는 리눅스 프로그램을 설치하려면 추가적인 작업이 필요하다.

 

1. MinGW에 대해

MinGW는 엄밀히 말하면 리눅스 환경이 아니다. 리눅스 운영체제에서 사용되는 명령어들은 대부분 bash와 같은 shell 인터프리터에서 제공하는 명령이 아니라 GNU 소프트웨어의 집합이다. bash를 포함해, 많이 사용하는 curl, gawk, curl, vim, less, tail, 등 대부분이 GNU 소프트웨어이다. 이 GNU 소프트웨어를 윈도우로 옮겨 놓은 것이 MinGW (Minimalistic GNU for Windown)이다. 그래서 MinGW를 설치하면 리눅스를 사용하는 것 같은 느낌으로, 리눅스에서 사용하는 명령어 그대로 사용할 수 있는 것이다.

 

현재 MinGW는 64bit를 지원하는 MinGW-w64만 유지되고 있다.

 

MinGW-w64

 

www.mingw-w64.org

위의 홈페이지를 방문해 보면 알겠지만, MinGW페이지에는 MinGW를 설치하는 프로그램이 없다. 대신 오래전부터 많이 사용하는 MSYS2, Cygwin 같은 패키지 관리 프로그램들을 사용해서 설치할 수 있다.

 

MSYS나 Cygwin을 이용해서 C++, python개발 언어 환경을 만들고 GNU소프트웨어들을 설치하면, 개발이 끝나 프로그램이 필요없어 지면 패키지 관리자만 uninstall 하고 나서 설치할 때 지정하였던 폴더만 삭제하면 모든 프로그램이 삭제되므로 윈도우 운영체계를 좀 더 깔끔하게 사용할 수 있다.

 

나는 이전에 윈도우 Git을 설치하면서 MinGW의 일부를 설치했는데, 이 설치된 Git-Bash를 이용해서 마치 리눅스에서 패키지를 설치하듯이 프로그램을 설치할 있는 환경을 만들려고 한다.

 

2. Git for Windows SDK 설치하기

MSYS2로 MinGW를 설치하면 Arch Linux에서 가져온 pacman을 사용해서 패키지를 설치한다. 하지만 윈도우용 Git을 설치하면서 덤으로 얻은 Git Bash에는 pacman이 설치되어 있지 않아 패키지를 추가로 설치할 수 없다. 윈도우용 Git홈페이지에는 오픈소스인 윈도우용 Git의 개발자들이 사용할 수 있는 SDK를 제공하고 있는데, 여기에 pacman이 포함되어 있다. Git for Windows SDK는 윈도우용 Git 홈페이지의 가장 아래 부분에서 찾아 다운로드할 수 있는데, 편의를 위해 다운로드 링크를 붙여 놓았다.

 

Release Git for Windows SDK v1.0.8 · git-for-windows/build-extra

Git for Windows SDK v1.0.8 Latest git-sdk-1.0.8 Git for Windows SDK 1.0.8

github.com

다운로드된 프로그램을 실행하면 설치할 위치를 묻고, 서버에서 다운로드를 시작한다. 혹시라도 다운로드가 중간에 중지되거나 해서 설치가 중단되면 설치 위치 폴더를 삭제하고 다시 실행하면 문제가 없다. Git for Windows SDK의 설치가 성공적으로 끝나면 다음과 같은 SDK-64 화면이 나온다.

 

3. pacman (패키지 관리 프로그램) 옮기기

이제 SDK에 있는 다음 파일과 폴더를 Git Bash로 옮긴다. 나는 SDK를 설치할 때 따로 지정하지 않았기 때문에 C:\git-sdk-64에 설치되었고 Git Bash도 Git를 설치할 때도 특별히 지정하지 않았기 때문에 C:\Program Files\Git 아래에 설치되어 있다.

 

  • [SDK가 설치된 위치]\user\bin\pacman.exe 파일을 [Git 설치위치]\usr\bin 에 복사
  • [SDK가 설치된 위치]\etc\pacman.config 파일을 [Git 설치위치]\usr\bin 에 복사
  • [SDK가 설치된 위치]\etc\pacman.d 폴더를 [Git 설치위치]\etc 에 복사 (\etc\pacman.d 가 되도록)
  • [SDK가 설치된 위치]\var 폴더를 [Git 설치위치]\ 에 복사 (\var 가 되도록)

내가 복사할 때에는 윈도우에서 관리자 권한으로 사용하도록 요청했었다.

 

하지만, 관리자 권한으로 복사하고 pacman을 실행하면 다음과 같은 에러가 발생했다.

 

폴더에 쓰기 권한이 없어 생긴 것으로 예상되어 C:\Program Files\Git에 쓰기 권한을 주었다. 먼저 파일관리자의 Git폴더에서 오른쪽 마우스를 누르고 속성(R)을 선택하면 나오는 화면에서 보안 탭을 선택하고 편집을 누른다.

 

그룹 또는 사용자 이름에서 Users를 선택하고 사용권한에 모든 권한 허용을 선택한다.

 

이제 다시 pacman을 실행해 보면 정상적으로 동작하는 것을 볼 수 있다.

 

이제 python도 C++도 pacman을 사용해서 설치할 수 있다. 이제 SDK는 필요 없으니 폴더를 삭제하면 된다. 프로그램을 설치한 것이 아니라 압축을 푼 것이라 폴더를 삭제하는 것으로도 충분하다.

4. zsh를 설치하기

zsh는 bash보다는 더 편한 shell환경이다. Tab을 눌렀을 때 자동완성되는 기능이 bash보다 더 편하게 동작하고 shell의 editor를 vi로 지정하지 않아도 history를 더 쉽게 찾을 수 있고, plugin으로 더 많은 기능을 얻을 수 있다. zsh를 설치하고 명령어를 입력할 때 Tab을 한번 눌러보면 차이를 쉽게 알 수 있을 것이다. 이제 pacman으로 zsh를 설치해 보다.

 

pacman -S zsh

 

이제 zsh를 실행해서 .zshrc 파일을 생성한다.

 

만일 bash-it을 선호한다면 같은 방법으로 bash-it을 설치해서 bash를 좀 더 편리하게 사용할 수 있다.