一、YUM包管理:高效解决依赖的利器
1. YUM核心功能
YUM(Yellowdog Updater Modified)是CentOS/RHEL系统中的包管理工具,支持自动解决依赖关系,适合快速安装和管理软件包。
常用命令速查
命令 | 作用 |
---|---|
yum install <软件名> | 安装软件包(加 -y 自动确认) |
yum remove <软件名> | 卸载软件包 |
yum update <软件名> | 更新软件包 |
yum search <关键词> | 搜索软件包 |
yum list installed | 查看已安装的软件包 |
示例:安装Vim编辑器
yum install vim -y
2. 更换YUM源提升下载速度
默认YUM源可能因网络问题速度较慢,推荐使用阿里云镜像源:
操作步骤
-
备份默认源:
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
-
下载阿里云源配置:
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
-
清理并重建缓存:
yum clean all yum makecache
验证:执行
yum repolist
查看可用仓库列表。
二、源码安装:灵活定制软件环境
1. 源码安装三步骤
源码安装适用于需要自定义功能或安装最新版本软件的场景,核心流程如下:
1. 配置(./configure
)
指定安装路径和功能选项:
./configure --prefix=/opt/软件名
2. 编译(make
)
将源代码转换为可执行文件:
make
3. 安装(make install
)
将编译后的文件安装到指定目录:
make install
2. 实战示例:安装多线程下载工具Axel
步骤详解
-
解压源码包:
tar -zxf axel-2.4.tar.gz cd axel-2.4
-
配置安装路径:
./configure --prefix=/opt/axel
-
编译并安装:
make && make install
-
解决命令路径问题:
# 方法1:创建软链接 ln -s /opt/axel/bin/axel /usr/local/bin/axel # 方法2:添加环境变量 echo 'export PATH=$PATH:/opt/axel/bin' >> /etc/profile source /etc/profile
三、自定义YUM源:本地与网络配置
1. 本地YUM源(光盘镜像)
适用于无网络环境,使用系统安装光盘作为软件源:
配置步骤
-
挂载光盘:
mount -o ro /dev/sr0 /mnt
-
创建本地仓库文件:
vim /etc/yum.repos.d/local.repo
内容如下:
[local] name=Local YUM baseurl=file:///mnt gpgcheck=0 enabled=1
-
验证:
yum install httpd -y
2. 网络YUM源扩展(EPEL与特定软件源)
配置EPEL源
EPEL(Extra Packages for Enterprise Linux)提供官方源未包含的额外软件包:
yum install epel-release -y
示例:配置Nginx官方源
-
创建仓库文件:
vim /etc/yum.repos.d/nginx.repo
内容如下:
[nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key
-
安装Nginx:
yum install nginx -y
四、常见问题与优化
1. 依赖问题处理
-
YUM自动解决:确保网络畅通,优先使用YUM安装。
-
手动安装依赖:源码安装时,根据错误提示使用
yum install
安装缺失组件(如gcc
、openssl-devel
)。
2. 性能优化
-
启用缓存:安装
yum-plugin-fastestmirror
自动选择最快镜像。 -
定期清理:执行
yum clean all
清理旧缓存。
五、总结
掌握YUM、源码安装和自定义源配置,可以灵活应对不同场景下的软件管理需求:
-
YUM:适合快速部署标准软件,自动处理依赖。
-
源码安装:适合定制化需求或获取最新版本。
-
本地/网络源:解决特定环境下的软件获取问题。