본문 바로가기
C.W.K.
Stream
Lesson 03 of 05 · published

일상 작업의 90%를 맡는 다섯 명령

~14 min · nix, commands, flakes

Level 0입문자
0 XP0/55 lessons0/16 achievements
0/80 XP to next level80 XP to go0% complete

현대 Nix에는 명령이 수십 개 있지만, 전문 사용자가 아니라면 일상 작업 대부분은 다섯 가지로 해결할 수 있어. 이것부터 익히면 나머지를 배우는 동안에도 실제 일을 이어갈 수 있어.

nix shell nixpkgs#<pkg>는 지정한 패키지를 쓸 수 있는 임시 하위 셸을 열어. 셸을 종료하면 패키지가 사라지고 원래 시스템은 그대로 남아. 도구를 영구 설치하지 않고 시험하는 가장 좋은 예야.

nix run nixpkgs#<pkg> -- <args>는 패키지를 내려받아 곧바로 한 번 실행해. 모든 종류의 패키지를 대상으로 쓸 수 있는 npx와 비슷해.

nix develop는 프로젝트의 flake.nix가 정의한 개발 환경으로 들어가. 저장소에 flake.nix를 넣어 두면 팀원 누구나 운영체제와 기존 PATH에 관계없이 이 명령 하나로 정확히 같은 도구 버전을 받아. Nix를 실제 프로젝트에 적용할 때 중심이 되는 명령이야.

nix search nixpkgs <query>는 이름과 설명으로 패키지를 찾아. 더 빠르게 훑고 싶다면 https://search.nixos.org/packages를 써도 돼.

nix-env는 패키지를 사용자 프로필에 영구 설치하는 오래된 명령형 인터페이스야. shell, run, develop 같은 flake 기반 명령이 현대 방식이고, nix-env는 주로 예전 안내서에서 만나게 돼. 존재만 알아 두고 새 작업에는 flakes를 우선해.

Code

실제로 필요한 다섯 명령·bash
# 임시 shell — 종료 시 패키지 사라짐
nix shell nixpkgs#ripgrep nixpkgs#bat

# 한 번 실행, install 안 함
nix run nixpkgs#cowsay -- "hello, Nix!"

# 프로젝트의 정의된 dev env 진입 (./flake.nix 사용)
nix develop

# 검색
nix search nixpkgs ripgrep

# 옛 명령형 install (주로 legacy 용)
nix-env -iA nixpkgs.ripgrep
nix-env --rollback        # 마지막 install 되돌리기
프로젝트용 최소 flake.nix·nix
# repo 루트의 flake.nix
{
  inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
  outputs = { self, nixpkgs }: {
    devShells.aarch64-darwin.default =
      let pkgs = import nixpkgs { system = "aarch64-darwin"; };
      in pkgs.mkShell {
        packages = with pkgs; [ nodejs_22 python313 postgresql_16 ripgrep ];
      };
  };
}

# 그러면 어떤 팀원이든:
#   nix develop
# ...해서 정확히 같은 도구 set 받음, 매번.

External links

Exercise

실제 도구로 임시 셸을 시험해 봐. 'nix shell nixpkgs#httpie nixpkgs#jq'를 실행한 다음 'http https://api.github.com | jq .current_user_url'을 입력해. 셸을 종료하면 두 도구가 모두 사라져. 환경에 설치 기록을 남기지 않고 시험하는 이 흐름이 Nix의 매력이야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.