cargo diesel_cli 설치 에러

2023. 6. 22. 23:53Language/Rust

개요

Rust의 ORM 중 가장 유명한 diesel을 사용하고 싶어 테스트 중이 였다. DB는 Postgres며, 튜토리얼을 따라 하는데 정상적으로 diesel_cli가 설치 되지 않아 정리하려 한다.

 

Diesel 설치

[dependencies]
diesel = { version = "2.0.4", features = ["postgres"] }
$ cargo install diesel_cli --no-default-features --features postgres

...
...

b" "-o" "/tmp/cargo-installtmxLrL/release/deps/diesel-51c0e09b49673ddd" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-nodefaultlibs"
  = note: /usr/bin/ld: cannot find -lpq: No such file or directory
          collect2: error: ld returned 1 exit status
          

error: could not compile `diesel_cli` (bin "diesel") due to previous error
error: failed to compile `diesel_cli v2.1.0`, intermediate artifacts can be found at `/tmp/cargo-installtmxLrL`

 

해결책

인터넷을 찾아보니 libpq-dev라는 라이브러리가 제 OS에 설치되어 있지 않아 생긴 문제점이라고 합니다.

저는Linux Mint 21 Vanessa 를 사용 중입니다.

$ sudo apt install libpq-dev
$ cargo install diesel_cli --no-default-features --features postgres
....
    Finished release [optimized] target(s) in 1m 01s
  Installing /home/bak/.cargo/bin/diesel
   Installed package `diesel_cli v2.1.0` (executable `diesel`)

오.. 설치가 잘 됐네요..

 

참고로 Centos7는 아래와 같은 라이브러리를 설치해야 합니다.

sudo yum install postgresql-devel

 

이제 정상적으로 구동 되는 지 확인해 보겠습니다.

 

$ diesel setup

Creating migrations directory at: /home/bak/Temp/rust/diesel_demo/migrations
The --database-url argument must be passed, or the DATABASE_URL environment variable must be set.

보시면 migrations 폴더도 생겼고, diesel.toml도 생긴것을 확인 할 수 있습니다.

'Language > Rust' 카테고리의 다른 글

Rust 문자열  (0) 2023.06.24
환경변수 파일 읽기  (0) 2023.06.21
Rust 명령줄의 인수 받기  (0) 2023.06.18
Rust의 HashMap 소개  (1) 2023.06.15
Rust Shuffle  (0) 2023.06.11