icon

안동민 개발노트

13장 : Cargo와 Crates.io 더 알아보기

`cargo install`로 Crates.io에 있는 바이너리 설치하기


러스트 학습이 중반을 넘으면, 직접 코드 작성뿐 아니라 개발 도구를 어떻게 관리할지도 중요해집니다. cargo install은 그 지점에서 자주 만나게 되는 명령어입니다. 이 명령은 단순 설치 명령처럼 보이지만, 로컬 개발 환경 재현성과 생산성을 좌우하는 핵심 루틴이기도 합니다. 특히 팀 단위로 CLI 도구를 공유할 때는 설치 경로와 버전 관리 정책을 함께 이해해야 혼선을 줄일 수 있습니다. 이 절에서는 설치 방법만 보여주는 데서 끝내지 않고, 어떤 도구를 어떤 기준으로 설치해야 하는지도 함께 정리하겠습니다. 아울러 시스템 패키지 관리 도구와 Cargo 설치 범위를 구분해 충돌 위험을 줄이는 방법도 다룹니다. PATH 설정이 잘못되었을 때 어떤 증상이 나타나는지 미리 알고 있으면 문제 해결 시간이 크게 단축됩니다. 이 관점을 익히면 새 개발 환경을 세팅할 때도 도구 설치를 반복 가능한 절차로 관리할 수 있습니다.

cargo install로 Crates.io에 있는 바이너리 설치하기

cargo install 명령어는 로컬 환경에 바이너리 크레이트를 설치하고 사용할 수 있도록 해줍니다. 이는 시스템 패키지를 대체할 의도는 아닙니다; 러스트 개발자들이 crates.io에서 공유하고 있는 도구를 편리하게 설치할 수 있도록 하기 위함입니다. 바이너리 타겟(binary target) 을 가진 패키지만 설치할 수 있음을 주의하세요. 바이너리 타겟이란 src/main.rs 파일 혹은 따로 바이너리로 지정된 파일을 가진 크레이트가 생성해 낸 실행 가능한 프로그램을 말하는 것으로, 혼자서 실행될 수 없지만 다른 프로그램에 포함되기에 적합한 라이브러리 타겟과는 반대되는 의미입니다. 보통은 크레이트의 README 파일에 해당 크레이트가 라이브러리인지, 바이너리 타겟을 갖는지, 혹은 둘 다인지에 대한 정보가 담겨있습니다.

cargo install을 이용해 설치된 모든 바이너리는 설치 루트의 bin 디렉터리에 저장됩니다. 만약 여러분이 rustup.rs를 이용해 러스트를 설치했고 별도의 설정값 수정이 없었다면, 이 디렉터리는 $HOME/.cargo/bin일 것입니다. cargo install로 설치한 프로그램을 실행하려면 $PATH 환경변수에 해당 디렉터리가 등록되어 있는지 확인하세요.

예를 들면, 12장에서 파일 검색용 grep 도구의 러스트 구현체인 ripgrep이라는 게 있다고 언급했었지요. ripgrep을 설치하려면 다음과 같이 하면 됩니다.

$ cargo install ripgrep
    Updating crates.io index
  Downloaded ripgrep v13.0.0
  Downloaded 1 crate (243.3 KB) in 0.88s
  Installing ripgrep v13.0.0
--snip--
   Compiling ripgrep v13.0.0
    Finished release [optimized + debuginfo] target(s) in 3m 10s
  Installing ~/.cargo/bin/rg
   Installed package `ripgrep v13.0.0` (executable `rg`)

출력의 마지막 두 줄은 설치된 바이너리의 경로와 이름을 보여주는데, ripgrep의 경우에는 rg로군요. 방금 전에 언급했듯 여러분의 $PATH 환경변수에 설치된 디렉터리가 등록되어 있다면 명령창에서 rg --help를 실행할 수 있고, 파일을 찾을 때 더 빠르고 러스트다운 도구를 사용할 수 있습니다!

실수 방지 체크

이 절을 마친 뒤에는 기능 구현 여부만 보지 말고 아래 기준으로 품질을 점검합니다.

  • 핵심 개념을 한 문장으로 설명할 수 있는지 확인합니다.
  • 예제 코드를 그대로 복사한 뒤, 변수/조건을 바꿔도 의도가 유지되는지 점검합니다.
  • 다음 절에서 재사용할 판단 기준(선택 이유, 트레이드오프)을 메모로 남깁니다.

목차