Centos7.9编译安装clang12.0.0

1 前言

环境

Win10主机+VMware15.5+Centos7.9

登录用户:root

从LLVM官网文档得知,编译clang12.0.0,需要依赖以下几个组件

Getting Started with the LLVM System — LLVM 12 documentation

2 准备工作

2.1 升级cmake

1、下载V3.20版本代码

https://cmake.org/files/v3.20/cmake-3.20.0.tar.gz

2、卸载已有版本的cmake

yum remove cmake –y

3、安装openssl

yum install  -y openssl  openssl-devel

4、安装基本的编译工具

./configure --prefix=/usr/local/cmake

5、安装cmake

make && make install

6、创建链接或配置环境变量,查看版本

创建连接

ln -s /usr/local/cmake/bin/cmake /usr/bin/cmake

配置环境变量

vim /etc/profile

export CMAKE_HOME=/usr/local/cmake

export PATH=$PATH:$CMAKE_HOME/bin

7、查看版本

cmake --version

2.2 升级Python

1、下载V3.9.0版本代码

https://cdn.npmmirror.com/binaries/python/3.9.0/Python-3.9.0.tgz

2、解压 
 

tar –xzf Python-3.9.0.tgz

cd Python-3.9.0
3、编译配置
./configure --prefix=/usr/local/python3
4、编译安装
make
make install

5、覆盖现有python,启动python时指向python3.9

备份旧python与pip
mv /usr/bin/python /usr/bin/python2_old
mv /usr/bin/pip /usr/bin/pip2_old  #第三部分的文件名可根据本机版本修改
6、修改软链接
ln -s /usr/local/python3/bin/python3 /usr/bin/python
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip

此方法到这里已经完成一半啦,可以使用命令 python -V, pip -V查看版本

7、收尾工作

由于修改了python的版本,会导致一些依赖于旧版本的程序出现错误,如yum,可进行如下配置:

vim /usr/bin/yum

文件第一行如下图:

 将python修改为旧的版本号,此处添加2.7:

 8、修改urlgrabber配置文件

vim /usr/libexec/urlgrabber-ext-down

 #!/usr/bin/python 改为 #!/usr/bin/python2.7

 2.3 zlib

查看zlib版本

yum info zlib

1.2.7,满足要求

2.4 make

查看make版本

make -v

3.82,满足要求

3 编译安装clang12.0.0

准备工作已经做完,现在开始主题

3.1 下载代码

https://github.com/llvm/llvm-project/releases/tag/llvmorg-12.0.0

编译clang12.0.0,需要从github上下载以下4个压缩包

从github下载以上文件速度比较慢,这里有笔者下载好的压缩包合集 

3.2 解压缩

xz -dk llvm-12.0.0.src.tar.xz
xz -dk clang-12.0.0.src.tar.xz
xz -dk compiler-rt-12.0.0.src.tar.xz
xz -dk clang-tools-extra-12.0.0.src.tar.xz
tar xvf llvm-12.0.0.src.tar
tar xvf clang-12.0.0.src.tar
tar xvf compiler-rt-12.0.0.src.tar
tar xvf clang-tools-extra-12.0.0.src.tar

​​​​​3.3 修改并移动文件路径

按下列名字,修改解压后的文件夹名字,然后将对应模块,移到指定目录下

mv clang llvm-12.0.0/tools/clang

mv compiler-rt llvm-12.0.0/projects/compiler-rt

mv extra llvm-12.0.0/tools/clang/tools/extra

3.4 源码编译

mkdir build
cd build
export CLANG_GCC=/usr/local

cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/local/bin/gcc -DCMAKE_CXX_COMPILER=/usr/local/bin/g++ -DGCC_INSTALL_PREFIX=${CLANG_GCC} -DCMAKE_CXX_LINK_FLAGS="-L${CLANG_GCC}/lib64 -Wl,-rpath,${CLANG_GCC}/lib64" -DCMAKE_INSTALL_PREFIX=${CLANG_GCC}  -DLLVM_ENABLE_ASSERTIONS=On ../llvm-12.0.0

如果想要支持打包,可以手动打开CMakeCache.txt文件,根据需要设置一下下面这些参数

由于系统是CentOS,支持RPM安装包,所以这里我是把CPACK_BINARY_RPM设置为ON,其它参数都设置为OFF

make –j4

经过3、4个小时的等待

3.5 编译过程中的小插曲

编译过程中可能会报找不到

/clang-tools-extra/clangd/quality/ CompletionModelCodegen.py

clang-tools-extra-12.0.0.src.tar.xz重新解压一份

解压后命名clang-tools-extra,放置在与build相同路径下

然后接着编译

3.6 安装查询

make install

clang++ --version

4 感谢

编译过程中,参考了下边各位网友的文章,在此一一感谢。

  1. centos升级和安装cmake - 知乎
  2. CentOS7 下升级Python版本 - Ech2o - 博客园
  3. linux 安装clang,Centos7.6安装clang9_半路的疯子的博客-CSDN博客

4. CentOS 6.X安装GCC 9.1和LLVM/Clang 8.0_witton的博客-CSDN博客_centos6 编译安装gcc9

### 编译安装 MySQL 5.6 #### 准备工作 为了确保环境适合编译安装 MySQL 5.6,在开始之前需要更新系统软件包到最新版本[^2]。 ```bash sudo yum update -y ``` 接着,安装一些必要的开发工具和依赖项来支持后续的编译过程: ```bash sudo yum groupinstall "Development Tools" -y sudo yum install cmake ncurses-devel bison openssl-devel perl wget -y ``` 对于特定于 MySQL 的构建需求,还需要额外安装 SCL 工具集以便更好地管理不同版本间的兼容性问题[^4]: ```bash sudo yum install centos-release-scl scl-utils-build -y ``` #### 下载源码 前往官方下载页面获取对应版本的 MySQL 源代码压缩文件。这里假设已经找到了适用于 CentOS 7.x 平台下的 tarball 文件 `mysql-5.6.xx.tar.gz`: ```bash cd /usr/local/src/ wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.48.tar.gz tar zxvf mysql-5.6.48.tar.gz cd mysql-5.6.48 ``` 注意:实际操作时应替换为最新的稳定版号。 #### 构建与安装 创建一个新的用户用于运行 mysqld 进程,并设置合适的权限给数据目录 `/var/lib/mysql` 和日志路径 `/var/log/mysqld.log` : ```bash groupadd mysql useradd -r -g mysql mysql mkdir -p /data/mysql/{data,tmp} chown -R mysql:mysql /data/mysql chmod 750 /data/mysql touch /var/log/mysqld.log chown mysql:mysql /var/log/mysqld.log ``` 使用 CMake 来配置编译选项,指定安装位置和其他参数。此步骤非常重要因为它决定了最终生成的应用程序的行为特性: ```bash cmake . \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/data/mysql/data \ -DSYSCONFDIR=/etc \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DDEFAULT_CHARSET=utf8mb4 \ -DDEFAULT_COLLATION=utf8mb4_general_ci \ -DEXTRA_CHARSETS=all \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_READLINE=1 \ -DWITH_SSL=bundled \ -DWITH_ZLIB=bundled \ -DDOWNLOAD_BOOST=1 \ -DWITH_BOOST=/usr/local/src/mysql-5.6.48/boost ``` 执行上述命令后等待其完成初始化检查;如果一切正常,则可以继续进行编译链接阶段: ```bash make && make install ``` #### 初始化数据库实例 首次启动前需先初始化默认的数据表结构体及其他必要资源: ```bash /usr/local/mysql/scripts/mysql_install_db --user=mysql ``` #### 设置服务脚本 为了让 MySQL 能够随操作系统自动启停,还需复制提供的 init.d 启动脚本至相应的位置,并调整其中涉及的服务名及路径变量以匹配当前部署情况: ```bash cp support-files/mysql.server /etc/init.d/mysqld sed -i 's/^basedir=$/basedir=\/usr\/local\/mysql/' /etc/init.d/mysqld sed -i 's/^datadir=$/datadir=\/data\/mysql\/data/' /etc/init.d/mysqld chkconfig --add mysqld service mysqld start ``` 最后一步就是验证新安装的服务状态是否健康在线: ```bash netstat -tlnp | grep :3306 ps aux|grep mysqld_safe ``` 以上即完成了基于源码方式在 CentOS 7.9 上手动编译安装 MySQL 5.6 的全过程描述[^1].
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玉古云投

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值