Rust 개발 필수 유틸: cargo edit

· by 박승재

Rust의 Cargo는 Node.js의 npm이나 Python의 pip와 같은 패키지 매니저와는 다르게 명령어를 통해 라이브러리를 설치하는 방식이 아닌, 사용자가 직접 Cargo.toml 파일을 열어서 라이브러리 정보를 작성해줘야 하는 방식입니다.

위의 귀찮음으로 인해, cargo edit이 나오게 되었습니다.

cargo edit을 설치하면 npm install과 같은 라이브러리 설치 명령cargo add을 이용해 할 수 있습니다.

예를 들어, serde 패키지를 설치하기 위해서는,

Cargo.toml 파일을 열어 crates.io의 라이브러리 정보를 작성해줘야 합니다.

Cargo.toml:

[dependencies]
serde = "1.0.130"

하지만, cargo edit을 이용하면 명령어를 통해 이 작업을 대체할 수 있습니다.

$ cargo add serde

설치

cargo install을 이용해 설치할 수 있습니다.

주의: cargo install은 하나의 컴파일 된 프로그램을 설치하는 명령입니다. 현재 Cargo는 라이브러리를 설치하는 명령을 지원하지 않습니다.

$ cargo install cargo-edit

cargo edit을 설치하기 위해서는 libssl-devpkg-config가 필요합니다.

sudo apt install libssl-dev pkg-config

사용 방법

cargo add package_name을 이용해 패키지를 설치할 수 있습니다.

패키지의 feature를 입력하기 위해서는 --features를 이용하면 됩니다.

$ cargo add tokio --features full

Cargo.toml:

[dependencies]
tokio = { version = "1.11.0", features = ["full"] }

특정 버전의 패키지를 설치하기 위해서는 패키지 이름 뒤에 @version을 붙여줍니다.

$ cargo add rocket@0.5.0-rc.1

Cargo.toml:

[dependencies]
rocket = "0.5.0-rc.1"

패키지를 최신 버전으로 바꾸기 위해서는 cargo upgrade를 사용할 수 있습니다.

$ cargo upgrade

cargo updateCargo.lock업데이트하는 명령으로 전혀 다른 명령입니다.

패키지를 삭제할 때는 cargo rm을 이용합니다.

$ cargo rm regex

마지막으로 현재 프로젝트의 버전을 수정할 때는 cargo set-version을 이용할 수 있습니다.

$ cargo set-version 1.0.0
$ cargo set-version --bump major
$ cargo set-version --bump minor
$ cargo set-version --bump patch

참고: GitHub - cargo edit

참고: [Rust] 필수 유틸: cargo-edit