在CentOS/Debian/Ubuntu上编译安装最新版 GCC 8 , cmake 3 和ninja

在CentOS、Debian和Ubuntu上,由于官方库不提供最新版GCC的预编译包,因此需要通过源码编译来安装。本文详细介绍了如何下载GCC 8.3.0、安装依赖并进行编译,以及在编译过程中遇到的问题和解决方法。接着,文章讲解了更新cmake到3.x版本以及移除旧版本的过程,并提到了在安装ninja构建工具时的步骤,包括从哪儿下载二进制文件以及如何安装。

CentOS不像Debian/Ubuntu,不能直接从官方库中安装最新版的gcc/g++,只能源码编译安装。

gcc下载地址:Index of /gnu/gcc
我选择了最新版本 gcc-8.3.0,下载tar.gz压缩包,共109M。
然后解压:

tar -xvzf gcc-*.tar.gz

编译前先安装必备的软件:

yum install gmp-devel mpfr-devel libmpc-devel

如果是Debian系统,可以进行如下操作:

-> # cd gcc-8.3.0
-> # ./contrib/download_prerequisites 

如果没安装这几个软件,会报错:

configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+.
Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify
their locations.  Source code for these libraries can be found at
their respective hosting sites as well as at
ftp://gcc.gnu.org/pub/gcc/infrastructure/.  See also
http://gcc.gnu.org/install/prerequisites.html for additional info
<think> 我们正在讨论的是Redpanda(一个C++编写的Kafka兼容消息队列)的编译安装,而非之前提到的RedPanda-CPP(一个C++ IDE)。用户明确要求"redpanda最新版编译安装教程"。根据Redpanda官方文档,编译安装需要从源码构建。以下是详细步骤: ### 1. 系统要求 - **操作系统**:Ubuntu 20.04/22.04 或 CentOS 8+(推荐) - **内存**:至少8GB RAM - **存储**:至少10GB空闲空间 - **依赖工具**: - Git - CMake 3.20+ - Ninja - Clang 14+(必须使用Clang,不支持GCC) - Python 3.8+ ### 2. 安装构建依赖 #### Ubuntu/Debian ```bash sudo apt update sudo apt install -y git cmake ninja-build clang-14 libc++-14-dev libc++abi-14-dev libncurses5-dev libz-dev libssl-dev python3 ``` #### CentOS/RHEL ```bash sudo yum install -y git cmake ninja-build clang libcxx-devel libcxxabi-devel ncurses-devel zlib-devel openssl-devel python3 ``` ### 3. 配置环境变量 ```bash # 设置Clang为默认编译器 export CC=/usr/bin/clang export CXX=/usr/bin/clang++ # 使用libc++标准库 export CXXFLAGS="-stdlib=libc++" ``` ### 4. 获取源码 ```bash git clone https://github.com/redpanda-data/redpanda.git cd redpanda # 切换到最新稳定分支(以v23.3.x为例) git checkout v23.3.x ``` ### 5. 编译Redpanda ```bash ./configure.py --mode=release ninja -C build/release ``` * 编译时间约30-60分钟(取决于硬件性能) * 编译产物位于`build/release/clang/bin/redpanda` ### 6. 安装与运行 ```bash # 安装到系统路径(可选) sudo cp build/release/clang/bin/redpanda /usr/local/bin/ # 启动单节点 redpanda start \ --node-id 0 \ --smp 1 --memory 1G \ --reserve-memory 0M \ --overprovisioned \ --check=false ``` ### 7. 验证安装 ```bash rpk cluster info # 应输出单节点信息 ``` §§注意事项§§ 1. **编译问题排查**: - 内存不足:编译过程可能消耗超过8GB内存,建议使用swap分区[^1] - 依赖缺失:根据错误提示安装对应开发包 - 网络超时:可通过`export HTTPS_PROXY=http://your-proxy:port`设置代理 2. **生产环境建议**: - 使用官方提供的预编译包或Docker镜像 - 编译安装仅推荐用于开发定制或特定平台部署 [^1]: 当物理内存不足时,系统会自动使用swap空间,但会显著降低编译速度 §§相关问题§§ 1. 如何为Redpanda编译添加自定义模块? 2. 编译安装后如何配置Redpanda的系统服务? 3. Redpanda编译时如何启用调试符号? </think> 以下是Redpanda最新版(v23.3.13)的**源码编译安装**详细教程,基于Linux环境(推荐Ubuntu 22.04): --- ### 一、系统要求 1. **操作系统**:Ubuntu 20.04+/CentOS 8+ 2. **依赖工具**: ```bash sudo apt update sudo apt install -y git cmake ninja-build clang-14 libc++-14-dev libc++abi-14-dev \ libncurses5-dev libz-dev libssl-dev python3 ``` 3. **编译环境**: - Clang 14+(**必须使用Clang,不支持GCC**) - CMake 3.20+ - Ninja构建系统 --- ### 二、编译步骤 #### 1. 获取源码 ```bash git clone https://github.com/redpanda-data/redpanda.git cd redpanda git checkout v23.3.13 # 切换到最新稳定版 ``` #### 2. 配置环境变量 ```bash export CC=/usr/bin/clang-14 export CXX=/usr/bin/clang++-14 export CXXFLAGS="-stdlib=libc++" # 强制使用libc++标准库 ``` #### 3. 生成构建配置 ```bash ./configure.py --mode=release # 生产环境用release模式 ``` > 调试开发可改用 `--mode=debug` #### 4. 开始编译(约30-60分钟) ```bash ninja -C build/release # 使用Ninja并行编译 ``` * 编译产物在 `build/release/clang/bin/redpanda` --- ### 三、安装与启动 #### 1. 安装到系统路径 ```bash sudo cp build/release/clang/bin/redpanda /usr/local/bin/ sudo cp build/release/clang/bin/rpk /usr/local/bin/ # 管理工具 ``` #### 2. 启动单节点服务 ```bash redpanda start \ --node-id 0 \ --smp 1 \ # 使用1个CPU核心 --memory 1G \ # 分配1GB内存 --reserve-memory 0M \ --overprovisioned \ --check=false ``` #### 3. 验证运行状态 ```bash rpk cluster info # 预期输出包含单个节点信息 ``` --- ### 四、编译问题排查 1. **内存不足**: - 编译需至少**8GB RAM**,可添加swap空间: ```bash sudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile ``` 2. **依赖缺失**: - 若报错`缺少libc++`,重新安装: ```bash sudo apt install libc++-14-dev libc++abi-14-dev ``` 3. **网络超时**: - 设置git代理: ```bash git config --global http.proxy http://your-proxy:port ``` --- ### 五、编译优化建议 1. **启用SSE4.2加速**: ```bash export CXXFLAGS="-stdlib=libc++ -msse4.2" ``` 2. **减少编译时间**: ```bash ./configure.py --mode=release --cflags="-O2" # 优化编译速度 ``` 3. **生成调试符号**: ```bash ./configure.py --mode=relwithdebinfo # 保留调试信息 ``` > 💡 **提示**:生产环境建议直接使用[预编译包](https://docs.redpanda.com/install/linux)或Docker镜像
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值