Linux软件包管理
软件包是什么?软件包顾名思义就是将应用程序、配置文件和数据打包的产物.
所有的linux发行版都采用了某种形式的软件包系统,这使得linux软件管理和在windows下一样方便,suse、red hat、fedora等发行版都是用rpm
包,Debian和Ubuntu则使用.deb
格式的软件包。
mysql-5-3-4.rpm
redis-3-4-3.rpm
nginx2-3-2.rpm
在早期系统运维中,安装软件是一件非常费事费力的事情。系统管理员不得不下载软件源代码编译软件,并且为了系统做各种调整。尽管源代码编译形式的软件增强了用户定制的自由度,但是在小软件上耗费精力是缺乏效率的,于是软件包应运而生。
软件包管理可以将管理员从无休止的兼容问题中释放。yum
工具就可以自动搜索依赖关系,并执行安装。
1.RPM软件包管理器
软件包管理器核心功能
- 制作软件包 .rpm
- 安装、卸载、升级、查询、校验
在 RPM(红帽软件包管理器)公布之前,要想在 Linux 系统中安装软件只能采取源码包 的方式安装。
源码包安装缺点:
- 步骤繁多,耗时
- 自己解决依赖
- 对运维知识要求高
- 管理维护难度大
RPM
机制则为解决这些问题而设计的。RPM
有点像Windows系统中的控制面板,会建立统一的数据库文件,详细记录软件信息并能够自动分析依赖关系。
1.rpm安装命令
-
安装软件的命令格式
rpm -ivh filename.rpm - i:表示安装 - v:显示详细过程 - h:以进度条显示
-
升级软件的命令格式
rpm -Uvh filename.rpm
-
卸载软件的命令格式
rpm -e filename.rpm
-
查询软件描述信息
rpm -qpi filename.rpm
-
列出软件文件信息
rpm -qpl filename.rpm
-
查询文件属于哪个RPM
rpm -qf filename
2.rpm查询软件
rpm -q lrzsz # 查询lrzsz是否安装
rpm -qi lrzsz # 查询lrzsz包的说明信息
rpm -ql lrzsz # 查询lrzsz包生成的文件列表
rpm -qc nginx # 查询nginx安装生成后的配置文件路径
rpm -qf /etc/nginx/fastcgi.conf # 查看这个文件由哪个rpm包安装
3.rpm升级软件
rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE: 如果装有老版本的,则升级;否则,则安装;
rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本的,则升级;否则,退出;
4.rpm卸载软件
rpm -e PACKAGE_NAME
需要手动解决依赖
不如 yum remove
5.rpm安装软件
#下载软件包
wget https://rpmfind.net/linux/centos/7.5.1804/os/x86_64/Packages/lrzsz-0.12.20-36.el7.x86_64.rpm
#安装软件包
[root@yugo /tmp 11:03:42]#rpm -ivh lrzsz-0.12.20-36.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:lrzsz-0.12.20-36.el7 ################################# [100%]
6.rpm问题
rpm软件包管理安装软件的时候,会产生一系列问题,比如,你安装一个软件包,而这个软件包有依赖软件,那么你需要先安装依赖软件;如果依赖的软件还有依赖软件,你不得崩溃吗?
2.软件管理yum工具
1.yum软件包管理器
Yum (Yellow dog Updater, Modified)
黄狗升级器是一个在 Fedora 中的字符前端软件包管理器。基于 RPM
包管理(介绍见RPM包及其管理),能够从指定的服务器自动下载 RPM 包并且安装,可以处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
2.软件安装的三种方式:
- 源代码编译安装
- 获取软件源代码
- 手动编译安装
yum工具是红帽子才有的软件管理工具,例如suse和乌班图等系统,就没有yum
yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
yum(选项)(参数):
-h:显示帮助信息;
-y:对所有的提问都回答“yes”;
-c:指定配置文件;
-q:安静模式;
-v:详细模式;
-d:设置调试等级(0-10);
-e:设置错误等级(0-10);
-R:设置yum处理一个命令的最大等待时间;
-C:完全从缓存中运行,而不去下载或者更新任何头文件。
3.什么是yum
源?
Yum
全称为 Yellow dog Updater, Modified
,是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。
基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
4.yum
的基本工作机制如下
服务器端:在服务器上面存放了所有的RPM软件包,然后以相关的功能去分析每个RPM文件的依赖性关系,将这些数据记录成文件存放在服务器的某特定目录内。
客户端:如果需要安装某个软件时,先下载服务器上面记录的依赖性关系文件(可通过WWW或FTP方式),通过对服务器端下载的纪录数据进行分析,然后取得所有相关的软件,一次全部下载下来进行安装。
5.yum源的目录
# 进入yum源目录
cd /etc/yum.repos.d/
# 查看yum源文件
ls -l
配置阿里云yum源
linux的yum仓库目录是
cd /etc/yum.repos.d/
这个目录下,第一层中,所有以.repo结尾的文件,都会识别为一个yum仓库。(这个仓库就是一个url),url中提供了各种rpm包的下载,yum工具回去查找。
阿里云yum源的下载地址:https://opsx.alibaba.com/mirror
1.备份原本的yum仓库文件
cd /etc/yum.repos.d
# 新建文件夹
mkdir allrepo
# 移动所有的repo文件到这个目录下,咱不用它了
mv * ./allrepo
2.下载新的阿里云的yum仓库文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# -O 代表把Centos-7.repo 下载到指定目录,且改名
3.配置额外的第三方仓库
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
4.测试yum工具,安装一个nginx
yum install nginx -y
5.启动nginx测试访问
systemctl start nginx
7.可以通过修改nginx的index网页,直接展示复制的页面。
find / -name nginx/html/index.html
把网页源代码放进去就可以访问了。
8.yum工具的其他方法
- yum repolist all # 列出所有仓库
- yum list all # 列出仓库所有软件包
- yum info # 软件包名 查看软件包信息
- yum install # 软件包名 安装软件包
- yum reinstall # 软件包名 重新安装软件包
- yum update # 软件包名 升级软件包
- yum remove # 软件包名 移除软件包
- yum clean all # 清楚所有仓库缓存
- yum check-update # 检查可以更新的软件包
- yum grouplist # 查看系统中已安装的软件包
- yum groupinstall # 软件包组 安装软件包组