GreptimeTeam / greptimedb

An Open-Source, Cloud-Native, Unified Time Series Database for Metrics, Events, and Logs with SQL/PromQL supported. Available on GreptimeCloud.
https://greptime.com/
Apache License 2.0
4k stars 289 forks source link

按照说明一步步编译不成功啊 #4273

Closed skyformat99 closed 1 week ago

skyformat99 commented 1 week ago

What type of enhancement is this?

User experience

What does the enhancement do?

编译过程有点复杂啊,搞了半天也不成功; 能不能详细一点啊, 从安装环境开始,编译说明过于简单了点啊,最好补充每个步骤的,特别是环境准备这块

Implementation challenges

No response

tisonkun commented 1 week ago

具体你执行了什么命令,遇到了什么错误呢?

直接编译应该 clone 以后运行 make 就结束了,不需要其他步骤。

skyformat99 commented 1 week ago

环境安装了前面2个,PyO3没有成功; 然后 make 出现如下错误:

info: installing component 'rustfmt' Updating git repository https://github.com/GreptimeTeam/greptime-proto.git error: failed to get greptime-proto as a dependency of package api v0.8.2 (/home/greptimedb/src/api)

Caused by: failed to load source for dependency greptime-proto

Caused by: Unable to update https://github.com/GreptimeTeam/greptime-proto.git?rev=a70a6af9c69e40f9a918936a48717343402b4393#a70a6af9

Caused by: failed to clone into: /root/.cargo/git/db/greptime-proto-0d706cb4f2875a52

Caused by: network failure seems to have happened if a proxy or similar is necessary net.git-fetch-with-cli may help here https://doc.rust-lang.org/cargo/reference/config.html#netgit-fetch-with-cli

Caused by: SSL error: unknown error; class=Ssl (16) make: *** [Makefile:73: build] Error 101

tisonkun commented 1 week ago

这个是众所周知的网络问题导致的,编译过程中包括 Git 类型的依赖。

可以尝试 CARGO_NET_GIT_FETCH_WITH_CLI=true make 试试,或者终端设置 proxy ..

skyformat99 commented 1 week ago

谢谢;还是出现编译错误了:

rustc-LLVM ERROR: IO failure on output stream: No space left on device error: could not compile datafusion-optimizer (lib) warning: build failed, waiting for other jobs to finish... rustc-LLVM ERROR: IO failure on output stream: No space left on device rustc-LLVM ERROR: IO failure on output stream: No space left on device error: could not compile statrs (lib) error: could not compile datafusion-physical-plan (lib) rustc-LLVM ERROR: IO failure on output stream: No space left on device error: could not compile sqlparser (lib) error: couldn't create a temp dir: No space left on device (os error 28) at path "/home/greptimedb/target/debug/deps/rmetafqIYEa"

error: could not compile datafusion (lib) due to 1 previous error error: couldn't create a temp dir: No space left on device (os error 28) at path "/home/greptimedb/target/debug/deps/rmetaM5W1xq"

error: could not compile datafusion (lib) due to 1 previous error

tisonkun commented 1 week ago

这个字面意思就是磁盘空间用完了,清理一下磁盘或者换个容量大的机器?

skyformat99 commented 1 week ago

增加了空间,编译,还是有错误啊:

CARGO_NET_GIT_FETCH_WITH_CLI=true make

cargo build --locked --bin greptime Compiling cmd v0.8.2 (/home/greptimedb/src/cmd) error: linking with cc failed: exit status: 1 |

= note: collect2: fatal error: ld terminated with signal 9 [Killed] compilation terminated.

error: could not compile cmd (bin "greptime") due to 1 previous error make: *** [Makefile:73: build] Error 101

fengjiachun commented 1 week ago

= note: collect2: fatal error: ld terminated with signal 9 [Killed]

表示链接器进程被 kill -9 终止了? 猜测可能是因为进程超出了可用的内存或 CPU 资源。

waynexia commented 1 week ago

确保你有足够的内存。或者尝试使用 mold,它在链接阶段需要更少的内存。

skyformat99 commented 1 week ago

用的virtualbox的虚拟机, cpu 6核, 内存8G, 这编译要求有点太高了

waynexia commented 1 week ago

对编译一个数据库来说这个要求还算好吧,8G 编 MySQL 也够呛。我们也提供预编译的二进制可以直接使用 https://greptime.com/download 。实在是要编译的话多加点 swap 慢慢等也可以。

如果没其他的问题就先关闭这个 issue 了。

skyformat99 commented 1 week ago

目前编译成功了,O(∩_∩)O 就是过程有点麻烦

waynexia commented 1 week ago

好,恭喜 🚀

skyformat99 commented 1 week ago

目前又2个时序数据库感觉可以。一个是 tdengine,一个是这个 greptime 那个td编译起来相对简单点,用c开发的; 这个是rust开发的,编译比较磕磕绊绊的,建议改进改进,要不分割多个小模块也行啊

tisonkun commented 1 week ago

Move to discussion as it's not an issue anyway.