【Rust】Diesel CLIのインストールでcould not compile `diesel_cli`となるとき
投稿日: 更新日:
環境
- diesel_cli v2.0.0
- Ubuntu 20.04.4
発生したエラー
$ cargo install diesel_cli
Updating crates.io index
Downloaded diesel_cli v2.0.0
Downloaded 1 crate (41.0 KB) in 1.03s
Installing diesel_cli v2.0.0
Downloaded chrono v0.4.22
Downloaded dirs-sys v0.3.7
Downloaded dirs v4.0.0
Downloaded clap v3.2.20
Downloaded migrations_macros v2.0.0
Downloaded iana-time-zone v0.1.47
Downloaded mysqlclient-sys v0.2.5
Downloaded diesel_derives v2.0.0
Downloaded textwrap v0.15.0
Downloaded vcpkg v0.2.15
Downloaded diffy v0.2.2
Downloaded diesel v2.0.0
Downloaded ansi_term v0.12.1
Downloaded aho-corasick v0.7.19
Downloaded libsqlite3-sys v0.25.1
Downloaded serde_regex v1.1.0
Downloaded num-integer v0.1.45
Downloaded pq-sys v0.4.7
Downloaded clap_complete v3.2.4
Downloaded dotenvy v0.15.3
Downloaded diesel_migrations v2.0.0
Downloaded migrations_internals v2.0.0
Downloaded clap_lex v0.2.4
Downloaded 23 crates (6.2 MB) in 0.81s (largest was `libsqlite3-sys` at 4.8 MB)
Compiling proc-macro2 v1.0.43
Compiling quote v1.0.21
Compiling unicode-ident v1.0.3
Compiling syn v1.0.99
Compiling autocfg v1.1.0
Compiling serde_derive v1.0.144
Compiling serde v1.0.144
Compiling version_check v0.9.4
Compiling pkg-config v0.3.25
Compiling libc v0.2.132
Compiling tinyvec_macros v0.1.0
Compiling vcpkg v0.2.15
Compiling memchr v2.5.0
Compiling matches v0.1.9
Compiling percent-encoding v2.1.0
Compiling pq-sys v0.4.7
Compiling unicode-bidi v0.3.8
Compiling bitflags v1.3.2
Compiling os_str_bytes v6.3.0
Compiling hashbrown v0.12.3
Compiling regex-syntax v0.6.27
Compiling termcolor v1.1.3
Compiling textwrap v0.15.0
Compiling byteorder v1.4.3
Compiling itoa v1.0.3
Compiling strsim v0.10.0
Compiling iana-time-zone v0.1.47
Compiling ansi_term v0.12.1
Compiling heck v0.4.0
Compiling proc-macro-error-attr v1.0.4
Compiling proc-macro-error v1.0.4
Compiling indexmap v1.9.1
Compiling num-traits v0.2.15
Compiling num-integer v0.1.45
Compiling tinyvec v1.6.0
Compiling form_urlencoded v1.0.1
Compiling mysqlclient-sys v0.2.5
Compiling clap_lex v0.2.4
Compiling diffy v0.2.2
Compiling libsqlite3-sys v0.25.1
Compiling unicode-normalization v0.1.21
Compiling aho-corasick v0.7.19
Compiling atty v0.2.14
Compiling dirs-sys v0.3.7
Compiling idna v0.2.3
Compiling clap v3.2.20
Compiling dirs v4.0.0
Compiling url v2.2.2
Compiling regex v1.6.0
Compiling chrono v0.4.22
Compiling dotenvy v0.15.3
Compiling clap_complete v3.2.4
Compiling diesel_derives v2.0.0
Compiling diesel v2.0.0
Compiling toml v0.5.9
Compiling serde_regex v1.1.0
Compiling migrations_internals v2.0.0
Compiling migrations_macros v2.0.0
Compiling diesel_migrations v2.0.0
Compiling diesel_cli v2.0.0
error: linking with `cc` failed: exit status: 1
--【中略】--
= note: /usr/bin/ld: cannot find -lsqlite3
/usr/bin/ld: cannot find -lpq
/usr/bin/ld: cannot find -lmysqlclient
collect2: error: ld returned 1 exit status
error: could not compile `diesel_cli` due to previous error
error: failed to compile `diesel_cli v2.0.0`, intermediate artifacts can be found at `/tmp/cargo-installwrPScQ`
原因
必要なライブラリが見つからないからためです。
エラーメッセージにライブラリが見つからないと書いてあります。
= note: /usr/bin/ld: cannot find -lsqlite3
/usr/bin/ld: cannot find -lpq
/usr/bin/ld: cannot find -lmysqlclient
collect2: error: ld returned 1 exit status
解決策
以下のコマンドを実行してください。
$ sudo apt install libsqlite3-dev libpq-dev libmysqlclient-dev
それから、もう一度Diesel CLIをインストールしてください。