brew cask로 설치한 프로그램의 구 버전을 다시 설치하기

상황

GUI 프로그램들도 왠만하면 brew cask로 설치하고 업그레이드를 관리하는데, 이번에 SourceTree 를 brew cask upgrade 로 업그레이드했더니 macos 버전이 10.13 이상이 아니라고 실행이 안되는 사태가 생김. 10.12 에서 잘 돌아가던 이전 버전으로 어떻게 돌아가야하나.

특이사항

  • 이전 버전이 그냥 남아있었으면 심볼릭링크를 직접 건드려서 어떻게 처리할 수 있었을텐데, 습관적으로 brew upgrade, brew cask upgrade 를 한 다음에는 brew cleanup 으로 불필요 파일을 제거하는 습관이 있어서 기존 버전은 이미 정리된 상태라 기존 버전으로 재설치할 방법이 필요했음.
  • 그냥 홈페이지에서 이전 버전 다운로드 받으면 가장 짧은 시간내에 해결가능하지만, 가능하면 brew cask로 계속 관리하고 싶었기 때문에 cask 안에서 해결해보기로 함.
  • sourcetree 블로그 에는 macos 지원 버전에 대한 특별한 언급이 없음.

경과

  • brew로 설치한 터미널 유틸리티는 brew switch formula version 으로 이전 버전을 활성화할 수 있는데( 참고) ), cask 에서는 지원되지 않는 커맨드로 보임.

  • 기본적인 흐름은 Use Homebrew Cask to downgrade or install specific version of package를 따라 Cask file 을 직접 수정하면 됨.

  • Cask file 수정하기 : brew cask edit sourcetree

  • 내용은 대략 이런 모양이고 version, sha256 을 기존 정보로 대치하면 됨.
  • github 에서 커밋 히스토리를 보려고 했으나 커밋히스토리가 너무 길어서 로딩 실패.
  • 콘솔에서 직접 찾아야함.
    cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask git log master -- Casks/sourcetree.rb
  • 이전 버전의 커밋 아이디를 확인함. 0de7223a346dac65c804c2c43357cf6ca1d1ccd6
  • 터미널에서 커맨드로 커밋 정보 보는게 생각나지 않아서 깃헙에서 커밋 아이디로 들어감
  • 2.7.6a 의 정보를 확인하여 아까 열어둔 cask file 에 입력.
  • brew cask intall sourcetree 실패 : version, sha256 키의 값만 바꾸었는데, 2.x와 3.x 사이에 url 패턴이 바뀌어서 파일을 다운로드 받지 못한 것으로 url 키의 값도 2.x에 맞게 바꿔줌.
  • brew cask uninstall --force sourcetree; brew cask install sourcetree : 이전 버전 찌꺼기들도 제거하고 재설치하도록 했고 완료.

요약

  • brew cask edit formula 으로 Cask file 편집 모드로 들어가서 version, sha256, url 정보를 기존 내용으로 바꿔주고 brew cask install formula 하면 됨.
  • 기존 정보를 확인하려면 웹에서는 잘 안되므로 터미널에서 git log를 봐야함.