【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をインストールしてください。

書いた人

profile_image

お茶の葉

物理とプログラミングが好きな人