在CentOS 7中编译安装软件包,可以通过源码编译和RPM包两种方式进行,本文将详细介绍这两种方法的具体步骤和注意事项。
通过源码编译安装
通过源码编译安装软件包是一种灵活且定制性高的方法,适用于需要特定配置或最新功能的场景,以下是详细步骤:

准备工作
1、更新系统:确保系统软件包是最新的。
- sudo yum update y
2、安装必要的编译工具:CentOS 提供了一个名为“Development Tools”的软件包组,其中包含了基本的编译工具。
- sudo yum groupinstall y "Development Tools"
3、安装其他常用的开发库和头文件:根据具体需求,可能需要安装其他开发库。
- sudo yum install y glibcdevel openssldevel zlibdevel libcurldevel
下载源码并编译安装
以编译安装MySQL为例:

1、下载MySQL源码:从官方网站下载MySQL的源代码包。
- wget https://cdn.mysql.com/Downloads/MySQL8.0/mysql8.0.29.tar.gz
- tar xzvf mysql8.0.29.tar.gz
- cd mysql8.0.29
2、配置编译参数:这一步非常重要,决定了MySQL的功能和性能。
- cmake \
- DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
- DDEFAULT_CHARSET=utf8mb4 \
- DDEFAULT_COLLATION=utf8mb4_unicode_ci \
- DWITH_EXTRA_CHARSETS=all \
- DWITH_MYISAM_STORAGE_ENGINE=1 \
- DWITH_INNOBASE_STORAGE_ENGINE=1 \
- DWITH_PARTITION_STORAGE_ENGINE=1 \
- DWITH_READLINE=1 \
- DWITH_ZLIB=system \
- DWITH_LIBWRAP=0 \
- DWITH_DEBUG=0 \
- DENABLED_LOCAL_INFILE=1 \
- DWITH_SSL=system \
- DWITH_EMBEDDED_SERVER=1 \
- DWITH_PLUGIN_DIR="/usr/local/mysql/lib/plugin" \
- .
3、编译和安装:使用make
命令进行编译,并使用sudo make install
进行安装。
- make j$(nproc)
- sudo make install
4、配置MySQL:创建MySQL用户和组,初始化数据库,启动MySQL服务,并设置root密码。
- sudo groupadd mysql
- sudo useradd r g mysql mysql
- sudo chown R mysql:mysql /usr/local/mysql
- sudo /usr/local/mysql/bin/mysqld initialize user=mysql
- sudo /usr/local/mysql/bin/mysqld_safe user=mysql &
- sudo systemctl enable mysqld
- sudo systemctl start mysqld
- sudo /usr/local/mysql/bin/mysql u root
- ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_password';
- FLUSH PRIVILEGES;
- EXIT;
通过RPM包安装
使用rpm包安装是一种简单快捷的方法,适用于大多数常见的软件包,以下是详细步骤:
安装GCC编译器

1、安装Development Tools软件包组:这个包组包含了GCC、G++和其他编译工具。
- sudo yum groupinstall y "Development Tools"
2、验证安装:检查GCC是否成功安装。
- gcc version
编写和编译一个简单的C程序
1、创建C程序:编写一个简单的“Hello, World!” C程序。
- #include <stdio.h>
- int main() {
- printf("Hello, World!
- ");
- return 0;
- }
2、编译程序:使用GCC编译该程序。
- gcc o hello hello.c
3、运行程序:执行编译后的可执行文件。
- ./hello
通过以上步骤,你可以在CentOS 7上成功编译安装软件包,源码编译提供了更高的灵活性和定制性,而RPM包安装则更加简便快捷,根据实际需求选择最合适的方法,可以有效提升工作效率和系统性能。