Rust-rocksdb: RocksDB๋Š” musl์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2018๋…„ 03์›” 27์ผ  ยท  9์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: rust-rocksdb/rust-rocksdb

Rust-rocksdb ๊ฐ€ x86_64-unknown-linux-musl ์— ๋นŒ๋“œ๋  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Rust musl docker๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

   Compiling librocksdb-sys v5.11.3 (file:///home/rust/src/rust-rocksdb/librocksdb-sys)
error: failed to run custom build command for `librocksdb-sys v5.11.3 (file:///home/rust/src/rust-rocksdb/librocksdb-sys)`
process didn't exit successfully: `/home/rust/src/rust-rocksdb/target/debug/build/librocksdb-sys-030649180e4da4ff/build-script-build` (exit code: 101)
--- stdout
cargo:rerun-if-changed=build.rs
cargo:rerun-if-changed=rocksdb/
cargo:rerun-if-changed=snappy/
rocksdb/include/rocksdb/c.h:48:9: warning: #pragma once in main file [-Wpragma-once-outside-header], err: false
rocksdb/include/rocksdb/c.h:68:10: fatal error: 'stdarg.h' file not found, err: true

--- stderr
rocksdb/include/rocksdb/c.h:48:9: warning: #pragma once in main file [-Wpragma-once-outside-header]
rocksdb/include/rocksdb/c.h:68:10: fatal error: 'stdarg.h' file not found
thread 'main' panicked at 'unable to generate rocksdb bindings: ()', /checkout/src/libcore/result.rs:906:4
note: Run with `RUST_BACKTRACE=1` for a backtrace.
enhancement

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@cetra3 clang ๋ฅผ ์„ค์น˜ํ•˜์—ฌ ๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ํ—ค๋” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— clang ์™€ ๊ฐ™์€ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์•„๋‹Œ lib ํŒจํ‚ค์ง€๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๋ชจ๋“  9 ๋Œ“๊ธ€

Fedora28์—์„œ ๋™์ผํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๊ณ  ๋ˆ„๋ฝ๋œ stdarg.h (๋ฐ ๊ธฐํƒ€...)๊ฐ€ ํฌํ•จ๋œ clang-devel ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ๋งˆ์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ ์–ด๋„ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ์ง€๋งŒ musl-g++ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ g++ ์— PATH์— ์ถ”๊ฐ€ํ•˜์—ฌ ์ด ๋ฌธ์ œ ์— ๋”ฐ๋ผ ์ด์ƒํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ›„์†์„ ์œ„ํ•œ ๋‹จ๊ณ„:

sudo apt-get install -y clang
sudo ln -s /usr/bin/g++ /usr/bin/musl-g++

์™œ musl-g++ ์ฐพ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

@rubencaro ํŒ์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ ์—ฌ๋Ÿฌ stdarg.h ๋ฒ„์ „์ด ์žˆ์—ˆ์ง€๋งŒ ์ด ์ •ํ™•ํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

@cetra3 cc-rs๊ฐ€ ์‹คํ–‰ ํŒŒ์ผ ์ด๋ฆ„์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ์‹ ๋•Œ๋ฌธ์— ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์–ธ๊ธ‰๋œ ๊ฒƒ์ฒ˜๋Ÿผ "์—‰๋šฑํ•œ" https://github.com/alexcrichton/cc-rs/issues/105์ž…๋‹ˆ๋‹ค.

cc-rs ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด์•˜์ง€๋งŒ musl-g++ ํ•ด๊ฒฐ๋˜๋Š” ์ง€์ ์„ ์‹ค์ œ๋กœ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋ณด๋‹ค ๋˜‘๋˜‘ํ•œ ์‚ฌ๋žŒ์ด ๊ทธ๊ฒƒ์„ ์กฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค!

๊ทธ๊ฒƒ์€ ์—ฌ๊ธฐ์ด ๋ถ€๋ถ„์˜ https://github.com/alexcrichton/cc-rs/blob/ad2ce008ec089a326bbebc7973225691a2816845/src/lib.rs#L1681 -L1692

์šฐ๋ถ„ํˆฌ 19:04 ubuntu:rolling ์ด๋ฏธ์ง€์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

build-essential curl llvm-dev libclang-dev linux-headers-generic libsnappy-dev liblz4-dev libzstd-dev libgflags-dev zlib1g-dev libbz2-dev

ํ•˜์ง€๋งŒ ๋™์ผํ•œ stdarg.h ๋ˆ„๋ฝ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

@cetra3 ๊ทธ๋™์•ˆ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์œผ์…จ๋‚˜์š”?

๋˜ํ•œ ์†Œ์Šค์—์„œ rockdb๋ฅผ ์ปดํŒŒ์ผํ•˜๋ฉด ์ž˜ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ํŒจํ‚ค์ง€์—์„œ๋Š”

@alex88 ์–ผ๋งˆ ์ „์— ์ปดํŒŒ์ผ์„ ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ๋‚ด ํ•˜์‹ญ์‹œ์˜ค . ์ด๊ฒƒ์€ ๋” ์ด์ƒ ์œ ํšจํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@cetra3 clang ๋ฅผ ์„ค์น˜ํ•˜์—ฌ ๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ํ—ค๋” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— clang ์™€ ๊ฐ™์€ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์•„๋‹Œ lib ํŒจํ‚ค์ง€๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰