Repository: nervosnetwork/ckb (language: rust)

Issue:
Link ckb-rocksdb with ZSTD, LZ4,etc.
## Feature Request

#### Is your feature request related to a problem? Please describe.
I added `compression=kLZ4Compression` to `default.db-options`, then execute `ckb run`, get `Compression type LZ4 is not linked with the binary`
```bash
❯ ./ckb_v0.118.0_x86_64-unknown-linux-gnu/ckb run -C zstd_test
2024-10-16 13:15:46.245 +00:00 main INFO sentry  sentry is disabled
2024-10-16 13:15:46.299 +00:00 main INFO ckb_app_config  assume_valid_target set to 0xd07c7f0fcea6e2a20a51dabbf0caae7ebff49723bcd8bac81a8b8c021a546a32
2024-10-16 13:15:46.299 +00:00 main INFO ckb_bin::subcommand::run  ckb version: 0.118.0 (b0bde9f 2024-09-14)
2024-10-16 13:15:46.299 +00:00 main INFO ckb_bin::subcommand::run  run rpc server with 32 threads
2024-10-16 13:15:46.300 +00:00 main INFO ckb_launcher  Miner is disabled; edit ckb.toml to enable it
2024-10-16 13:15:46.308 +00:00 main ERROR panic  thread 'main' panicked at 'Internal(DataCorrupted(failed to open database: Invalid argument: Compression type LZ4 is not linked with the binary.))': db/src/db.rs:120   0: ckb_logger_service::setup_panic_logger::{{closure}}
   1: <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/alloc/src/boxed.rs:2021:9
      std::panicking::rust_panic_with_hook
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:783:13
   2: std::panicking::begin_panic_handler::{{closure}}
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:657:13
   3: std::sys_common::backtrace::__rust_end_short_backtrace
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/sys_common/backtrace.rs:170:18
   4: rust_begin_unwind
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:645:5
   5: core::panicking::panic_fmt
             at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panicking.rs:72:14
   6: ckb_shared::shared_builder::SharedBuilder::new
   7: ckb_launcher::Launcher::build_shared
   8: ckb_bin::subcommand::run::run
   9: ckb_bin::run_app_inner
  10: ckb_bin::run_app
  11: ckb::main
  12: std::sys_common::backtrace::__rust_begin_short_backtrace
  13: std::rt::lang_start
  14: __libc_start_call_main
  15: __libc_start_main@@GLIBC_2.34
  16: _start

```
#### Describe the solution you'd like
<!-- A clear and concise description of what you want to happen. Add any considered drawbacks. -->

#### Describe alternatives you've considered
<!-- A clear and concise description of any alternative solutions or features you've considered. -->



Discussion / hints:

Fix patch:
diff --git a/db/Cargo.toml b/db/Cargo.toml
index 13ead9bea4..e9169116a5 100644
--- a/db/Cargo.toml
+++ b/db/Cargo.toml
@@ -13,7 +13,7 @@ ckb-app-config = { path = "../util/app-config", version = "= 0.119.0-pre" }
 ckb-logger = { path = "../util/logger", version = "= 0.119.0-pre" }
 ckb-error = { path = "../error", version = "= 0.119.0-pre" }
 libc = "0.2"
-rocksdb = { package = "ckb-rocksdb", version ="=0.21.1", features = ["snappy"], default-features = false }
+rocksdb = { package = "ckb-rocksdb", version ="=0.21.1", features = ["snappy", "lz4"], default-features = false }
 ckb-db-schema = { path = "../db-schema", version = "= 0.119.0-pre" }
 
 [dev-dependencies]


Test patch: