Errors

git-lfs 설치 Error

LazyHand 2024. 2. 18. 22:05

당연하게도, 연구를 할 때 가장많이 쓰는 것 중 하나는 바로 Git clone이다.

그래야, 다른 연구자들의 코드를 내 환경에 copy해 직접 돌려보고, 이를 기반으로 새로운 실험도 할 수 있기 때문이다.

오늘의 오류는 이 git clone 과정에서 발생하는 오류이다.

 

평소와같이 git clone을 통해 repository를 복사했다.

복사 후 zip파일이 있어 unzip을 통해 압축을 풀려고 하는데 오류가 발생했다.

file zip파일이름  명령어를 통해 zip파일 내용을 살펴보니 원래 있어야 할 파일들이 전부 다운로드 되지 못한 것을 알 수 있었다.

원인을 찾아보니  zip파일의 내용이 대용량이기 때문이었다. (50MB 이상 warning, 100MB 이상 Erorr 발생)

 

해결 방법은 고로 간단하다.

대용량 파일의 git 관리가 가능한 git-lfs를 설치하면 된다.

https://github.com/git-lfs/git-lfs

 

GitHub - git-lfs/git-lfs: Git extension for versioning large files

Git extension for versioning large files. Contribute to git-lfs/git-lfs development by creating an account on GitHub.

github.com

공식 github의 설명에 따라 본인의 설정에 맞게 설치해서 사용하면 Error는 해결된다.

 

여기서 나는 한 가지 오류를 더 범하게 되었는데, 노트북을 사용하는 중이라 순간적으로 헷갈려

서버의 환경은 Linux인데 macOS로 간과해 brew를 Linux에 설치해버렸다.

간단한 오류로 인해 git-lfs install에서 당연히 오류가 나타났다.

 

다행히, 금세 알아채고 brew를 삭제하였다.

brew의 삭제는

1. 명령어로 brew 삭제

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)"

 

2. brew 폴더 삭제

rm -rf Homebrew/

 

도커에 접속하게 되면, 다음과 같은 오류 메시지가 첫 시작에 무조건 뜨게 되는 것이다.

bash: /home/linuxbrew/ .linuxbrew/bin/brew: No such file or directory

 

직감적으로 brew 폴더를 삭제하면서 발생한 에러 같았으나, 사용하지 않을 brew 폴더를 계속 가지고 있는 것도 비효율적인 해결방이다.

그래서 원인을 찾아보니 다음과 같은 글을 발견할 수 있었다.

https://github.com/orgs/Homebrew/discussions/212

 

Homebrew file error uninstalling · Homebrew · Discussion #212

When i load my teminal this comes up: -bash: /bin/brew: Is a directory -bash: /bin/brew: Is a directory -bash: /bin/brew: Is a directory -bash: /home/but0004/.linuxbrew/bin/brew: No such file or di...

github.com

brew를 설치하게 되면, 환경 변수 설정을 수정하게 된다.

brew를 삭제하고도 그 부분은 변경을 다시 해주지 않았기에, brew를 계속 bash가 찾게 되는 것이다.

해당 Git의 답변에서도 알 수 있듯이 ~./profile  ~./bash_profile ~./bashrc의 파일들을 검토해 brew가 언급되는 부분을 찾으면 된다.

나같은 경우, ~./bashrc에서 brew의 환경 변수를 수정했던 부분을 발견했다.

해당 부분을 삭제한 후 다시 접속하면 오류문구가 사라진 것을 확인할 수 있다.

 

brew의 오류까지 해결 한 후, git-lfs를 Linux환경에 맡게 다시 설치 후 clone해 unzip을 하니 모든 오류가 발생하지 않고 원하던 파일을 얻을 수 있었다.