第二章:环境搭建
环境搭建这事,看着基础,其实特别容易踩坑。我记得刚用 THS-PREPARE 那会儿,光装依赖就折腾了大半天。后来才发现,不过是系统镜像源没配好。
嗯,这一章咱们就把环境搞定。说白了,就是把操作系统、依赖包、工具链都准备好。后面调试参数才能跑得起来。
操作系统要求
THS-PREPARE 对系统算友好的。主流 Linux 发行版都支持。我个人习惯用 Ubuntu 20.04 LTS,稳定,社区活跃,遇到问题好找解决。
系统要求其实不苛刻:
| 项目 | 最低要求 | 推荐配置 |
|---|---|---|
| 操作系统 | Ubuntu 18.04 / CentOS 7 | Ubuntu 20.04 LTS / Rocky 9 |
| 内存 | 4 GB | 8 GB 以上 |
| 磁盘 | 10 GB 空闲 | 20 GB SSD |
| CPU | 2 核 | 4 核或更多 |
我的建议:别在生产系统上直接用最低配置。编译阶段对内存和 CPU 消耗都不小,配置太低可能编译会失败。我见过有人在 2GB 的机器上编译,最后内存不够直接 killed 了。
依赖安装
依赖分两部分:基础工具和核心库。咱们先装基础工具。
基础工具
# Ubuntu / Debian 系列
sudo apt update
sudo apt install -y build-essential cmake git wget curl
# CentOS / Rocky 系列
sudo yum groupinstall -y "Development Tools"
sudo yum install -y cmake git wget curl
核心库
# Ubuntu / Debian
sudo apt install -y libssl-dev libncurses5-dev libreadline-dev
# CentOS / Rocky
sudo yum install -y openssl-devel ncurses-devel readline-devel
注意版本:我曾经在 CentOS 7 上安装依赖,默认的 CMake 版本太老(2.8.x),THS-PREPARE 编译会报错。建议手动安装 CMake 3.16 以上版本。可以用 pip 或从源码编译新版本。
源码编译
源码编译这事儿,说白了就是把源代码变成能跑起来的二进制文件。我个人推荐源码编译,因为你可以控制编译选项,做细粒度调优。
# 1. 获取源码
git clone https://github.com/example/ths-prepare.git
cd ths-prepare
# 2. 创建构建目录
mkdir build && cd build
# 3. 配置编译选项
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/ths-prepare
# 4. 编译(使用 4 个线程加速)
make -j4
# 5. 安装
sudo make install
编译过程中可能会遇到各种问题。常见的就是缺库或版本不匹配。别慌,看报错信息,缺什么补什么就行。
编译参数说明:
CMAKE_INSTALL_PREFIX:指定安装目录,默认是 /usr/local-jN:N 是编译线程数,一般设为 CPU 核心数-DCMAKE_BUILD_TYPE=Release:生成发布版,运行速度更快
二进制部署
如果你不想折腾编译,可以用二进制包。官方会提供预编译好的程序。你想想看,这种做法适合批量部署,省时省力。
# 1. 下载对应系统的二进制包
wget https://example.com/ths-prepare-linux-x86_64.tar.gz
# 2. 解压
tar -xzf ths-prepare-linux-x86_64.tar.gz
# 3. 移动到系统目录
sudo mv ths-prepare /usr/local/
# 4. 配置环境变量
echo 'export PATH=$PATH:/usr/local/ths-prepare/bin' >> ~/.bashrc
source ~/.bashrc
| 部署方式 | 优点 | 缺点 |
|---|---|---|
| 源码编译 | 可定制编译选项,性能最优 | 编译耗时,依赖环境复杂 |
| 二进制部署 | 开箱即用,部署快速 | 无法定制,可能错过特定优化 |
我的经验:开发和测试环境用源码编译,方便调参。生产环境用二进制包,稳定可靠。两种搭配,干活不累。
环境验证
装完了得确认能不能用。很简单,跑个版本检查:
ths-prepare --version
# 如果输出类似:
# THS-PREPARE version 2.1.0 (build 20240301)
#
# 说明安装成功。
也可以跑一个快速测试,验证基本功能是否正常:
ths-prepare --test-quick
如果测试通过,会显示 All tests passed。到这里,环境搭建就完成了。
避坑指南:我曾经遇到过安装成功,但运行时提示找不到共享库的问题。这是因为系统没有识别到安装目录。解决办法:运行 sudo ldconfig 刷新动态库缓存。或者在 /etc/ld.so.conf.d/ 下添加一个配置文件,指向安装目录下的 lib 子目录。
环境搭好了,后面的事情就顺了。工具链能用,参数调试才能落地。不然光折腾环境就够呛。