😽
Rustビルド中にfailed to run custom build command for openssl-sysエラー
つべこべ言わずbuild-essentialを入れろ
------------------- ↓ 前書はここから ↓-------------------
Rust環境をDocker越しにでもできるように、
公式のDockerをポチポチ弄っていた。
ところが構築中に謎のエラーで進めなくなってしまう。
error: failed to run custom build command for `openssl-sys v0.9.65`
・・・
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }'
(・ω・)ナニコレ
ということで調査開始
結論から言うと
build-essential パッケージを入れれば解決だった。
ヾ(・ω<)ノ" 三三三● ⅱⅲ コロコロ♪
------------------- ↓ 本題はここから ↓-------------------
cargo install wasm-packが完了しない
Webassemblyを弄ろうとして、
wasm-packをインストールしようとしたところ。
エラーで進めなくなった
docker pull rust:slim
docker run --rm -it -t rust:slim
apt-get update && apt-get install -y git curl ssh ca-certificates libssl-dev pkg-config
cargo install wasm-pack
・・・
error: failed to run custom build command for `openssl-sys v0.9.65`
・・・
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }'
エラー全文はアコーディオンで。
error-message(full)
error: failed to run custom build command for `openssl-sys v0.9.65`
Caused by:
process didn't exit successfully: `/tmp/cargo-install5UxVq8/release/build/openssl-sys-b284ac8b42796184/build-script-main` (exit status: 101)
--- stdout
cargo:rustc-cfg=const_fn
cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_NO_VENDOR
X86_64_UNKNOWN_LINUX_GNU_OPENSSL_NO_VENDOR unset
cargo:rerun-if-env-changed=OPENSSL_NO_VENDOR
OPENSSL_NO_VENDOR unset
CC_x86_64-unknown-linux-gnu = None
CC_x86_64_unknown_linux_gnu = None
HOST_CC = None
CC = None
CFLAGS_x86_64-unknown-linux-gnu = None
CFLAGS_x86_64_unknown_linux_gnu = None
HOST_CFLAGS = None
CFLAGS = None
CRATE_CC_NO_DEFAULTS = None
DEBUG = Some("false")
CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2")
running "perl" "./Configure" "--prefix=/tmp/cargo-install5UxVq8/release/build/openssl-sys-9631732ecd5b987a/out/openssl-build/install" "no-dso" "no-shared" "no-ssl3" "no-unit-test" "no-comp" "no-zlib" "no-zlib-dynamic" "no-md2" "no-rc5" "no-weak-ssl-ciphers" "no-camellia" "no-idea" "no-seed" "linux-x86_64" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64"
Configuring OpenSSL version 1.1.1k (0x101010bfL) for linux-x86_64
Using os-specific seed configuration
Creating configdata.pm
Creating Makefile
**********************************************************************
*** ***
*** OpenSSL has been successfully configured ***
*** ***
*** If you encounter a problem while building, please open an ***
*** issue on GitHub <https://github.com/openssl/openssl/issues> ***
*** and include the output from the following command: ***
*** ***
*** perl configdata.pm --dump ***
*** ***
*** (If you are new to OpenSSL, you might want to consult the ***
*** 'Troubleshooting' section in the INSTALL file first) ***
*** ***
**********************************************************************
running "make" "depend"
--- stderr
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }', /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/openssl-src-111.15.0+1.1.1k/src/lib.rs:469:39
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: failed to compile `wasm-pack v0.10.0`, intermediate artifacts can be found at `/tmp/cargo-install5UxVq8`
Caused by:
build failed
調べてみるとlibssl-dev, pkg-config, opensslを入れろと言われる。
( ̄_ ̄ )うーん、この違和感は何だろうなぁ。
その後、libssl-devやpkg-configのバージョン、
debianのバージョン、dockerイメージを変更など思いつくことを諸々試した。
最後は最低限のコマンドでも落ちることを確認した。
NG
docker pull rust:slim
docker run --rm -it -t rust:slim
apt-get update && apt-get install -y curl libssl-dev pkg-config
cargo install wasm-pack
debian公式の方のdockerではすんなり通る。
OK
docker pull debian:stable-slim
docker run --rm -it -t debian:buster-slim
apt-get update && apt-get install -y curl libssl-dev pkg-config build-essential
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
cargo install wasm-pack
(^_^;) つまり、これ? => build-essential
docker pull rust:slim
docker run --rm -it -t rust:slim
apt-get update && apt-get install -y curl libssl-dev pkg-config build-essential
cargo install wasm-pack
・・・
Compiling wasm-pack v0.10.0
Finished release [optimized] target(s) in 10m 06s
Installing /usr/local/cargo/bin/wasm-pack
Installed package `wasm-pack v0.10.0` (executable `wasm-pack`)
(・∀・) 通った。
openssl一切関係なくて草
さすがにbuild-essentialの何が影響したかはわからないが、
まぁ、とりあえず入れとくでいいだろ。
Discussion