Ubuntu에서 npm 완전 정복! 설치 방법·기본 사용법·오류 해결까지 가이드

目次

1. 소개

Ubuntu에서 npm을 사용하는 이유

프론트엔드·백엔드 개발에서 빼놓을 수 없는 도구 중 하나가 “npm(Node Package Manager)”입니다. npm은 Node.js의 패키지 관리 도구로 널리 사용되고 있으며, JavaScript 라이브러리와 도구를 쉽게 설치·관리할 수 있습니다. 그 npm을 Ubuntu 환경에서 사용하면, Linux만의 가벼운 조작성과 패키지 관리의 유연성을 활용하면서 개발 효율을 크게 높일 수 있습니다. Ubuntu는 많은 개발자에게 지지받는 배포판으로, 서버 운영부터 로컬 개발 환경까지 폭넓게 활용됩니다. 특히 Node.js 기반 프레임워크(Vue.js, React, Next.js 등)를 다룰 때는 npm을 사용해 패키지를 관리하는 것이 일반적입니다. Ubuntu에서 이를 설정하면 Windows나 macOS에 비해 문제 발생이 적고 안정적인 개발 환경을 구축할 수 있습니다.

이 글의 목적

이 글에서는 Ubuntu에서 npm을 도입하고 기본 사용법을 마스터할 때까지의 절차를 자세히 설명합니다. 특히 다음과 같은 분들을 대상으로 합니다.
  • Ubuntu를 처음 접하는 개발자
  • Node.js와 npm 환경 구축에 고민하고 있는 분
  • npm 사용법을 체계적으로 배우고 싶은 분
또한 설치 방법에 대해서는 여러 접근 방식을 소개하고, 각각의 특징과 장·단점도 다룹니다. 더불어 자주 발생하는 오류와 문제 해결 방법, 유용한 명령어 모음 등을 포함시켜 독자가 Ubuntu에서 npm을 원활히 사용할 수 있도록 목표합니다.
年収訴求

2. Ubuntu에 Node.js와 npm 설치 방법

Ubuntu에서 npm을 사용하려면 먼저 Node.js를 설치해야 합니다. npm은 Node.js에 포함되어 제공되기 때문에 Node.js를 도입하면 npm도 동시에 사용할 수 있게 됩니다. 여기서는 Ubuntu에서 Node.js와 npm을 설치하는 3가지 주요 방법을 소개합니다. 각각의 방법에는 특징이 있으며, 목적이나 개발 스타일에 따라 최적의 것을 선택하는 것이 중요합니다.

방법1: Ubuntu 공식 저장소 사용

절차

Ubuntu의 표준 저장소에는 Node.js가 제공됩니다. 가장 간단하고 초보자에게 적합한 방법입니다.
sudo apt update
sudo apt install nodejs npm
설치 후, 아래 명령어로 버전을 확인할 수 있습니다:
node -v
npm -v

장점

  • 명령이 간단하고 헷갈리기 쉽지 않다
  • 안정적인 버전이 제공되므로 안심

단점

  • 제공되는 Node.js/npm 버전이 오래된 경우가 많아 최신 기능을 사용할 수 없는 경우가 있다.

방법2: NodeSource의 PPA 사용

Node.js 공식 지원에 가까운 저장소 “NodeSource”를 이용하면 보다 최신 버전의 Node.js와 npm을 설치할 수 있습니다.

절차(예: Node.js 18.x 설치)

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
npm은 Node.js와 함께 자동으로 설치됩니다.

장점

  • 안정적이면서도 비교적 최신 버전을 사용할 수 있음
  • 도입도 간단하고 Ubuntu와의 호환성도 좋음

단점

  • 다른 PPA와 마찬가지로 시스템 의존성을 관리해야 할 경우도 있음

방법3: nvm(Node Version Manager) 사용

여러 Node.js 버전을 전환하면서 개발하고 싶다면 nvm 사용이 가장 유연하고 편리합니다.

절차

먼저, nvm을 설치합니다:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
그 후, 쉘을 다시 로드하고 nvm을 사용해 Node.js를 설치합니다:
source ~/.bashrc  # 또는 ~/.zshrc
nvm install 18
nvm use 18
npm은 Node.js와 함께 자동으로 설치됩니다.

장점

  • Node.js 버전을 자유롭게 전환할 수 있다
  • 프로젝트별로 적절한 버전을 설정 가능
  • 시스템 전체에 영향을 주지 않아 안전

단점

  • 다른 방법보다 도입 절차가 다소 복잡함
  • 터미널 설정 파일을 수정해야 할 필요가 있음

어떤 방법을 선택해야 할까?

방법난이도버전 최신도유연성추천 대상
공식 저장소★☆☆△(오래된)×초보자, 시도해보고 싶은 사람
NodeSource★★☆○(비교적 최신)일반 개발자
nvm★★★◎(자유롭게 선택 가능)여러 프로젝트를 다루는 사람, 고급 사용자
기본적으로, 장기적으로 Ubuntu에서 npm을 사용한 개발을 하고 싶다면 nvm이 가장 권장됩니다. 다만, 손쉽게 시작하고 싶은 분은 NodeSource의 PPA를 사용하는 것도 좋은 선택입니다.

3. npm의 기본적인 사용법

Ubuntu에 Node.js와 npm 환경이 갖춰지면, 다음은 실제로 npm을 사용해 패키지를 관리해 봅시다. npm은 JavaScript 패키지를 설치·업데이트·삭제하기 위한 강력한 도구입니다. 여기서는 npm의 기본적인 사용법에 대해, 자주 사용되는 명령을 중심으로 소개합니다.

패키지를 설치하기

로컬 설치

특정 프로젝트 내에서만 사용하는 패키지는 로컬 설치합니다. 이는 일반적인 방법으로, node_modules 디렉터리에 설치되고 package.json에 기록됩니다.
npm install 패키지명
예: axios를 설치하는 경우
npm install axios
이 방법에서는 같은 프로젝트 내의 스크립트만 해당 패키지를 사용할 수 있습니다.

글로벌 설치

시스템 전체에서 사용하는 도구(CLI 등)는 글로벌 설치합니다.
npm install -g 패키지명
예: http-server를 글로벌로 설치
sudo npm install -g http-server
Ubuntu에서는 -g 옵션을 사용할 때 sudo가 필요할 수 있습니다.

패키지를 언인스톨하기

더 이상 필요하지 않은 패키지는 아래 명령으로 삭제할 수 있습니다.

로컬 패키지 삭제

npm uninstall 패키지명

글로벌 패키지 삭제

sudo npm uninstall -g 패키지명

패키지를 업데이트하기

패키지를 최신 버전으로 업데이트하려면, 아래와 같이 실행합니다.

개별 패키지 업데이트

npm update 패키지명

모든 의존 패키지를 일괄 업데이트

npm update
단, package.json에 지정된 버전 범위 내에서 업데이트되므로, 버전 번호에 주의하세요.

개발용 패키지를 설치하기(–save-dev)

테스트 도구나 빌드 도구 등, 프로덕션 환경에서는 사용하지 않는 개발 전용 패키지는 --save-dev 옵션으로 설치합니다.
npm install --save-dev 패키지명
예: jest를 개발 의존성으로 설치
npm install --save-dev jest
이렇게 하면 package.jsondevDependencies 섹션에 기록됩니다.

패키지 목록 확인하기

로컬 패키지 목록 확인

npm list

글로벌 패키지 목록 확인

npm list -g --depth=0
--depth=0을 지정하면 최상위 패키지만 표시되어 보기 쉬워집니다.

프로젝트 의존 관계를 관리하는 package.json

npm을 사용할 때 중요한 것은 프로젝트 루트에 생성되는 package.json 파일입니다. 이 파일에는 사용 중인 패키지명, 버전 정보, 스크립트 정의 등이 기록되어 프로젝트 전체의 설정 파일로 기능합니다. 다음 명령으로 package.json을 생성할 수 있습니다,
npm init
대화식으로 입력할 수도 있고, 간소화하고 싶다면,
npm init -y
라고 하면 기본값으로 자동 생성됩니다.

4. 자주 발생하는 문제와 해결책

Ubuntu에서 npm을 사용할 때 오류나 예상치 못한 동작에 직면할 수 있습니다. 여기서는 특히 초보자가 흔히 겪는 대표적인 문제와 그 해결 방법을 소개합니다.

권한 오류가 발생한다

증상

EACCES: permission denied
npm으로 전역 설치를 시도할 때 위와 같은 오류가 표시될 수 있습니다.

원인

npm이 패키지를 설치하려는 디렉터리에 현재 사용자에게 쓰기 권한이 없을 때 발생합니다. Ubuntu에서는 보안상의 이유로 /usr/lib/node_modules와 같은 시스템 디렉터리에 쓰기 위해 sudo가 필요합니다.

대처 방법

  • sudo를 붙여 실행한다:
sudo npm install -g 패키지명
  • 또는 전역 설치 위치를 사용자 디렉터리로 변경하여 sudo 없이도 사용할 수 있게 한다:
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
그 후, ~/.bashrc~/.profile에 아래를 추가하여 경로를 설정합니다:
export PATH="$HOME/.npm-global/bin:$PATH"
설정을 반영하려면 터미널을 재시작하거나 아래를 실행:
source ~/.bashrc

npm 명령을 사용할 수 없거나 경로가 설정되지 않음

증상

command not found: npm
npm을 설치했음에도 불구하고 명령이 인식되지 않을 때가 있습니다.

원인

  • nodenpm 설치가 정상적으로 완료되지 않음
  • 경로가 설정되지 않음(환경 변수가 설정되지 않음)

대처 방법

먼저 경로를 확인한다:
which npm
아무것도 표시되지 않으면 재설치하거나 경로 설정을 확인해야 합니다. nvm을 사용하는 경우 터미널 설정 파일(예: .bashrc, .zshrc)에 nvm 초기화 코드가 있는지 확인합니다。
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"

특정 패키지만 설치되지 않음, 버전 충돌

증상

  • 패키지A를 설치하면, 의존 패키지와 버전이 맞지 않다고 표시된다
  • npm install에서 대량의 경고가 발생한다

원인

npm에서는 패키지 간 의존 관계에 모순이 있으면 오류나 경고가 발생합니다. 또한 오래된 프로젝트에서 사용된 패키지가 이미 폐기된 경우도 있습니다.

대처 방법

  • 최신 버전을 설치해 본다:
npm install 패키지명@latest
  • 패키지 의존 관계를 확인한다:
npm ls 패키지명
  • 강제 설치(※비추천)
npm install --legacy-peer-deps
  • package-lock.json과 node_modules를 한 번 삭제하고 깨끗이 다시 시작한다:
rm -rf node_modules package-lock.json
npm install

그 외 유용한 디버깅 방법

  • npm doctor: 시스템 환경을 점검해준다
npm doctor
  • npm audit: 보안상의 문제를 감지하고 해결 방법을 제시한다
npm audit
npm audit fix
Ubuntu에서 npm 오류는 영어 오류 메시지가 많아 당황하는 경우가 많지만, 오류 문구를 잘 읽고 침착하게 대응하는 것이 해결의 지름길입니다.

5. 자주 묻는 질문(FAQ)

여기서는 Ubuntu에서 npm을 사용하기 시작한 분들이 흔히 갖는 의문과 검색되기 쉬운 질문에 대해 간결하게 답변합니다. 문제를 사전에 방지하고 보다 쾌적한 개발 환경 구축에 도움이 되길 바랍니다.

Q1. Ubuntu에서 npm을 최신 버전으로 업데이트하려면?

A1.

다음 명령을 실행하면 npm을 최신 버전으로 업데이트할 수 있습니다.
sudo npm install -g npm@latest
nvm을 사용하고 있는 경우, sudo는 필요 없습니다:
npm install -g npm@latest
버전 확인:
npm -v

Q2. npm의 “글로벌 설치”와 “로컬 설치”의 차이는?

A2.

  • 로컬 설치:
  • 프로젝트별 의존성을 관리
  • node_modules 디렉터리에 저장됩니다
  • 개발자 간에 공유하기 쉬움(package.json에 기록됨)
  • 글로벌 설치:
  • CLI 도구 등 시스템 전체에서 사용하고 싶을 때 사용
  • Ubuntu에서는 /usr/lib/node_modules에 설치되는 경우가 많습니다
  • sudo가 필요할 수도 있습니다

Q3. nvm을 사용할 때의 장점은?

A3.

nvm(Node Version Manager)을 사용하면 여러 Node.js 버전을 자유롭게 전환할 수 있습니다.
  • 여러 프로젝트에서 서로 다른 Node.js 버전을 사용하고 싶을 때 최적
  • 시스템 전체에 영향을 주지 않으므로 안전
  • npm도 버전별로 자동 관리되기 때문에 환경 구축이 매우 유연해집니다

Q4. npm의 의존성이 깨졌을 때는 어떻게 해야 하나요?

A4.

먼저 node_modulespackage-lock.json을 삭제하고 다시 설치합니다.
rm -rf node_modules package-lock.json
npm install
그래도 해결되지 않으면 npm ci 명령을 시도하는 것이 좋습니다(CI/CD 환경용 클린 설치).

Q5. npm 명령 실행 결과에 “WARN”이나 “audit”가 표시되는데, 괜찮나요?

A5.

경고(WARN)는 치명적인 오류는 아니지만, 의존성 문제나 사용 중단된 기능 사용 등을 알리는 신호입니다. 보안 관련 경고가 발생한 경우, 아래 명령으로 자동 수정을 시도할 수 있습니다:
npm audit fix
하지만 신중히 진행하려면 변경 사항을 사전에 확인하고, Git으로 버전 관리한 후 적용하는 것이 이상적입니다.

Q6. Ubuntu에서 npm을 사용하면 무엇을 만들 수 있나요?

A6.

npm은 JavaScript 세계의 “입구”입니다. 아래와 같은 것들을 Ubuntu에서도 쉽게 구축할 수 있습니다:
  • 프론트엔드 개발 환경(React, Vue, Svelte 등)
  • 정적 사이트 생성기(Next.js, Nuxt 등)
  • 서버 사이드 개발(Express, NestJS 등)
  • CLI 도구 개발
  • 테스트 환경(Jest, Mocha 등)
Ubuntu에서 npm을 사용하면 오픈소스의 힘을 활용하면서 효율적이고 견고한 개발이 가능해집니다.

6. 요약: Ubuntu에서 npm을 마스터하자

이 기사에서는 Ubuntu에서 npm을 도입하고 실제로 활용하기 위한 기본 지식과 실용적인 명령어에 대해 설명했습니다. 마지막으로, 포인트를 되짚어 보겠습니다.

이 기사 요점

  • npm이란:Node.js에 포함된 패키지 관리 도구로, 개발 효율을 크게 높인다
  • Ubuntu에 설치하는 방법:공식 리포지터리·NodeSource·nvm 세 가지 방법이 있으며, 용도에 따라 선택 가능
  • 기본 조작:패키지 설치, 삭제, 업데이트, 의존성 관리 등을 쉽게 할 수 있다
  • 문제 대응:권한 및 버전 문제에도 대응할 수 있는 노하우를 소개
  • FAQ:실제 개발 현장에서 자주 발생하는 의문과 불안에도 친절히 답변

초보자를 위한 한마디

Ubuntu와 npm은 매우 궁합이 좋으며, 현대적인 웹 개발을 편리하게 수행하기 위한 강력한 조합입니다. 처음에는 오류나 모르는 점이 있을 수도 있지만, 하나씩 해결해 나가다 보면 개발자로서의 이해가 깊어질 것입니다. 가장 중요한 것은 “손을 움직여 직접 시도해 보는 것”입니다. 명령어 하나하나를 실행하면서 npm의 동작과 오류 메시지에 익숙해집시다. 이로써 Ubuntu 환경에서 npm 사용 가이드는 마무리됩니다. 이 기사가 여러분의 개발 환경 구축 및 스킬 향상에 도움이 되길 바랍니다. 다른 Linux 관련 노하우와 프론트엔드 개발에 관한 정보도 수시로 공개할 예정이니, 꼭 북마크와 SNS 공유도 부탁드립니다!
侍エンジニア塾