Ubuntu 20.04에 Yarn 설치하기: Corepack과 버전 고정

이 글은 Ubuntu 20.04의 오래된 Yarn 설치 절차를 현재 Yarn 공식 권장 방식으로 개정했습니다. 폐기된 저장소 키 명령과 깨진 이미지를 제거하고, 프로젝트별 Yarn 버전을 고정하는 방법을 설명합니다.

현재 Yarn은 전역 npm install -g yarn보다 Corepack을 통한 프로젝트별 버전 관리를 권장합니다. 먼저 Node.js가 설치되어 있는지 확인한 다음 Corepack을 활성화하면 됩니다.

먼저 보는 핵심
Ubuntu 20.04의 기본 저장소에 있는 Node.js는 최신 도구와 맞지 않을 수 있습니다. 유지보수 중인 Node.js 버전을 설치하고, 프로젝트의 packageManager 필드로 Yarn 버전을 고정하세요.


1. 현재 환경 확인

lsb_release -ds
node --version
npm --version
corepack --version

node가 없거나 프로젝트가 요구하는 버전보다 낮다면 Node.js부터 설치해야 합니다. 팀과 CI가 같은 버전을 쓰도록 .nvmrc 또는 다른 버전 관리 도구의 설정 파일을 저장소에 포함하는 것이 좋습니다.

Ubuntu 20.04 LTS는 일반 보안 유지보수 기간이 끝난 환경이므로, 계속 운영한다면 Ubuntu Pro 적용 또는 지원 중인 Ubuntu LTS로의 업그레이드 계획도 함께 세우세요.


2. Corepack 활성화

공식 Node.js 배포본에 Corepack이 포함된 환경이라면 다음 명령으로 활성화합니다.

sudo corepack enable
corepack --version

배포 방식에 따라 Corepack 명령이 없다면 설치한 Node.js 버전을 먼저 확인합니다. 필요한 경우 다음처럼 Corepack을 설치한 뒤 활성화할 수 있습니다.

npm install --global corepack
sudo corepack enable

시스템 전체 경로에 심볼릭 링크를 만들 권한이 필요하지 않은 환경에서는 sudo 없이 실행합니다.


3. 프로젝트에 Yarn 버전 고정

프로젝트 폴더에서 안정 버전을 선택합니다.

cd my-project
corepack use yarn@stable
yarn --version

이 명령은 package.jsonpackageManager에 실제 버전을 기록합니다.

{
  "packageManager": "yarn@4.10.3"
}

위 버전 숫자는 예시입니다. 저장소에는 명령이 기록한 값을 그대로 커밋하세요. 다른 개발자와 CI는 Corepack을 통해 같은 버전을 사용하게 됩니다.

새 프로젝트를 시작할 때는 다음 명령도 사용할 수 있습니다.

yarn init -2
yarn install

4. 기존 Yarn 1 프로젝트는 그대로 구분하기

기존 프로젝트에 yarn.lock이 있다고 해서 즉시 Yarn Modern으로 바꾸면 안 됩니다. 먼저 현재 버전과 설정을 확인합니다.

yarn --version
ls -la .yarnrc .yarnrc.yml 2>/dev/null

Yarn 1을 계속 사용해야 한다면 프로젝트에 버전을 명시하고, 업그레이드는 별도 브랜치에서 의존성 설치와 빌드를 검증합니다. Modern Yarn으로 옮길 때 nodeLinker: node-modules를 선택하면 기존 node_modules 기반 도구와의 호환성을 확인하기 쉽습니다.

# .yarnrc.yml
nodeLinker: node-modules

5. CI에서는 잠금 파일 변경을 막기

개발 환경에서는 yarn install, CI에서는 잠금 파일이 달라지면 실패하도록 실행합니다.

yarn install --immutable
yarn test
yarn build

--immutable은 설치 도중 yarn.lock이 바뀌어야 하는 상황을 오류로 처리하므로 재현 가능한 빌드에 도움이 됩니다.


자주 생기는 문제

증상 확인할 내용
corepack: command not found Node.js 설치 출처와 버전, Corepack 포함 여부
Yarn 버전이 사람마다 다름 package.jsonpackageManager 커밋 여부
기존 도구가 PnP를 인식하지 못함 .yarnrc.ymlnodeLinker: node-modules 검토
권한 오류 전역 디렉터리 소유권을 임의 변경하지 말고 Node 설치 방식 점검
CI에서 잠금 파일이 변경됨 로컬에서 설치 후 yarn.lock을 함께 커밋

설치 방식은 Yarn 설치 문서, Corepack의 역할은 Yarn Corepack 문서, 설치 옵션은 yarn install 문서를 참고하세요.


정리

Ubuntu에 Yarn 실행 파일 하나를 전역 설치하는 것보다 Node.js 버전과 Yarn 버전을 프로젝트에 함께 고정하는 편이 재현성이 높습니다. Corepack을 활성화하고 packageManager와 잠금 파일을 커밋한 뒤 CI에서 yarn install --immutable로 검증하세요.

댓글

이 블로그의 인기 게시물

React에서 Socket.IO Client 연결하기: CORS와 useEffect 정리

Xamarin WebView 예제를 .NET MAUI로 다시 만들기

Android Koin 적용하기: Compose와 ViewModel 의존성 주입