在 CentOS 7 上安装软件是一个常见的任务,对于系统管理员和开发者来说尤为重要,本文将详细介绍如何在 CentOS 7 上通过 RPM、YUM 和源码包三种方式安装软件。
一、RPM 安装
1. RPM 包命名规则
包全名:如果操作的是未安装的软件包,则使用包全名,注意绝对路径。
包名:如果操作的是已经安装的软件包,则使用包名即可,系统会产生 RPM 包的数据库(/var/lib/rpm/),且可以在任意路径下操作。
2. RPM 包默认安装路径
二进制文件:/usr/bin
或/usr/sbin
配置文件:/etc
库文件:/lib
文档:/usr/share/doc
3. RPM 包安装命令
rpm ivh 包全名
选项解释:
i
:安装
v
:显示详细信息
h
:显示进度条
4. RPM 包升级命令
rpm Uvh 包全名
选项解释:
U
:升级
5. RPM 包卸载命令
rpm e 包名
选项解释:
e
:卸载
6. RPM 包查询命令
rpm qa | grep 包名
选项解释:
q
:查询
a
:所有已安装的包
7. RPM 验证数字证书
在使用 RPM 包进行安装时,有时需要验证数字证书以确保软件包的安全性,数字证书的位置通常在/etc/pki/rpmgpg/
,可以通过以下命令导入数字证书:
rpm import /path/to/certificate.asc
二、YUM 安装(RPM 包在线安装)
1. YUM 是什么
YUM(Yellowdog Updater, Modified)是一个基于 RPM 的软件包管理器,可以自动解决依赖关系,并且可以从在线软件仓库中下载和安装软件包。
2. YUM 源配置文件
YUM 的源配置文件位于/etc/yum.repos.d/
目录下,以.repo
为后缀,可以通过编辑这些文件来配置 YUM 源,CentOS 官方源的配置文件内容如下:
[base] name=CentOS$releasever Base baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPMGPGKEYCentOS7
3. 搭建本地光盘 YUM 源
可以通过挂载光盘并创建本地 YUM 源的方式来安装软件,步骤如下:
1、挂载光盘:
sudo mount /dev/cdrom /mnt
2、创建本地 YUM 源:
sudo createrepo /mnt
3、配置本地 YUM 源:
[local] name=Local Repository baseurl=file:///mnt
4. YUM 命令
安装命令:
yum install 包名
升级命令:
yum update 包名
卸载命令:
yum remove 包名
查询命令:
yum list installed | grep 包名
清理缓存:
yum clean all
组管理命令:
yum groupinstall "Development Tools" yum groupremove "Development Tools"
三、源码包安装
1. 源码包特点
优点:
开源,有能力可以自己修改源代码;
可以自由选择所需功能;
软件是编译安装,更加稳定,效率更高;
卸载方便,直接删除目录即可。
缺点:
安装过程步骤过多,尤其在安装较大软件集合时(如 LAMP 环境搭建),容易出现拼写错误;
编译过程时间较长,安装比二进制安装时间长;
由于是编译安装,安装过程中一旦报错新手解决较为麻烦。
2. 注意事项
确保系统中安装了必要的编译工具和库,如gcc
、make
、autoconf
、automake
、libtool
、pkgconfig
等。
阅读源码包中的README
、INSTALL
、CONFIGURE
等文件,了解具体的安装步骤和依赖项。
使用prefix
选项指定安装路径,避免覆盖系统自带的文件。
3. 安装过程示例
以下是一个安装简单 C 程序的示例:
1、编写源代码:
#include <stdio.h> int main (void) { printf("Hello, world! "); return 0; }
保存为hello.c
。
2、编译源代码:
gcc o hello hello.c
3、运行程序:
./hello
输出结果应为Hello, world!
。
4、复杂源码包安装示例(以wget
为例):
下载源码包:
wget http://ftp.gnu.org/gnu/wget/wget1.20.1.tar.gz
解压源码包:
tar zxvf wget1.20.1.tar.gz cd wget1.20.1
配置、编译和安装:
./configure prefix=/usr/local/wget make sudo make install
验证安装:
/usr/local/wget/bin/wget V
应显示wget
的版本信息。
四、常见问题解答(FAQs)
Q1: 如何离线安装软件?
A1: 离线安装软件的方法有多种,以下是两种常见的方法:
方法一:使用本地 YUM 源,将需要的 RPM 包下载到本地,然后创建一个本地 YUM 源,最后通过 YUM 安装,具体步骤如下:
1. 下载所需的 RPM 包到本地目录,如/root/rpms
。
2. 创建本地 YUM 源配置文件,例如/etc/yum.repos.d/local.repo
:
[local] name=Local Repository baseurl=file:///root/rpms
3. 使用 YUM 安装本地软件包:
yum disablerepo="*" enablerepo="local" install 包名
方法二:手动解决依赖关系并安装,适用于没有网络连接的情况,步骤如下:
1. 下载所有必要的 RPM 包及其依赖包到本地。
2. 使用rpm ivh nodeps
命令安装每个 RPM 包,并记录未解决的依赖。
3. 根据未解决的依赖重复步骤 2,直到所有依赖都得到满足。
Q2: 如果遇到“依赖关系问题”怎么办?
A2: “依赖关系问题”通常是因为缺少某些必要的库或软件包,解决方法如下:
使用 YUM 自动解决依赖:YUM 可以自动下载并安装缺失的依赖包,安装vim
时,如果缺少依赖,可以运行:
yum install vim
手动安装缺失的依赖:如果知道缺少哪些依赖,可以手动下载并安装,如果缺少libX11devel
,可以运行:
yum install libX11devel
检查 YUM 源配置:确保 YUM 源配置文件正确无误,并且能够访问,如果使用的是第三方 YUM 源,可以尝试更换为官方源或其他可靠的源,编辑/etc/yum.repos.d/CentOSBase.repo
,将mirrorlist
改为具体的镜像地址:
[base] name=CentOS$releasever Base mirrorlist=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPMGPGKEYCentOS7