(0基础学Linux系列)2.12 Linux软件包管理
Posted 老男孩oldboy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(0基础学Linux系列)2.12 Linux软件包管理相关的知识,希望对你有一定的参考价值。
1.1 软件包系统
不同的Linux发行版用的是不同的软件包系统,并且原则上,适用于一种发行版的软件包与其他版本是不兼容的。
多数Linux发行版采用的不外乎两种软件包技术阵营,即 Debian 的 .deb 技术和 Red Hat 的 .rpm 技术。
当然也有一些特例,比如Gentoo、Slackware和Foresight等,但多数版本采取的还是下表中所列的两个基本软件包系统。
主流软件包系统类
软件包系统 | 发行版本(只举例了部分) |
---|---|
Debian类(.deb技术) | Debian、Ubuntu |
Red Hat类( .rpm 技术) | CentOS、Red Hat |
1.2 rpm 软件包命令
1.2.1 命令格式
rpm [选项] [软件包名称]
1.2.2 安装rpm包
1)安装常用选项
选项 | 描述 |
---|---|
-i | 安装rpm包 |
-v | 显示安装详细信息 |
-h | 显示安装rpm进度 |
2)使用实例
rpm -ivh 包名
# 网址
rpm -ivh http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.18.0-2.el7.ngx.x86_64.rpm
# 全路径带包名
rpm -ivh /root/nginx-1.18.0-2.el7.ngx.x86_64.rpm
# 包名
rpm -ivh nginx-1.18.0-2.el7.ngx.x86_64.rpm
1.2.3 升级rpm包
1)升级选项
选项 | 描述 |
---|---|
-U | 如果老版本不存在则安装新版本,存在则升级新版本 |
2)使用实例
rpm -Uvh 包名
# wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.20.0-1.el7.ngx.x86_64.rpm
# rpm -Uvh nginx-1.20.0-1.el7.ngx.x86_64.rpm
注意事项:
- 升级前做好备份。
- 测试环境测试好。
1.2.4 查询rpm包
1)查询常用选项
选项 | 描述 |
---|---|
-q | 查看指定软件包是否安装 |
-qa | 查看系统中已安装的所有RPM软件包列表 |
-qi | 查看指定软件的详细信息 |
-ql | 查询指定软件包所安装的目录、文件列表 |
-qc | 查询指定软件包的【配置文件】 |
-qf | 查询文件或目录属于哪个RPM软件 |
-qip | 查询未安装的rpm包详细信息 |
-qlp | 查询未安装的软件包会产生哪些文件 |
2)-qa 查看系统中已安装的所有RPM软件包列表
# rpm -qa nginx
3)-qi 查看指定软件的详细信息
# rpm -qi nginx
4)-ql 查询指定软件包所安装的目录、文件列表
# rpm -ql nginx
5)-qc 查询指定软件包的【配置文件】
# rpm -qc nginx
6)-qf 查询文件或目录属于哪个RPM软件
# rpm -qf /etc/hosts
# rpm -qf /usr/bin/cp
# rpm -qf `which ifconfig`
7)-qip 查询未安装的rpm包详细信息
# rpm -qip nginx-1.18.0-2.el7.ngx.x86_64.rpm
8)-qlp 查询未安装的软件包会产生哪些文件
# rpm -qlp nginx-1.18.0-2.el7.ngx.x86_64.rpm
1.3 yum智能软件包管理
1.3.1 yum介绍
1)什么是yum
Yum是RedHat以及CentOS中的软件包管理器。能够通过互联网下载 .rpm 包并且安装,并可以自动处理依赖性关系,无须繁琐地一次次下载、安装。
PS: yum是生产常用安装工具
2)什么是yum源
要想使用yum工具安装、更新软件,就需要有一个包含各种rpm软件包的软件仓库,这样的软件仓库就称为 yum 源。
yum源分为:
-
互联网yum源(阿里云、网易、清华源)。
-
局域网yum源(自己做一个yum源,http/ftp)(1.速度快。2.制作的rpm放到yum源)。
- 服务器本地yum源(上不了网,把iso作为yum源)。
3)常见互联网yum源
-
官方yum源:很多软件集合的在线仓库,也称为base基础源
-
epel源:也称为拓展源,拥有很多base源没有的软件
- 第三方源:比如nginx,zabbix,Docker等软件开发方开源软件的官方仓库
PS:yum源默认都放在/etc/yum.repos.d/目录下,以*.repo结尾
常见互联网yum源地址:
- http://mirrors.aliyun.com/repo/
- https://mirrors.tuna.tsinghua.edu.cn/
- https://mirrors.tuna.tsinghua.edu.cn/help/centos/
- https://mirrors.tuna.tsinghua.edu.cn/help/epel/
4)Linux系统本地yum源配置
- 互联网阿里云yum源配置
#默认系统是国外源,需要替换为国内的源
方法1:
# wget -q -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
方法2:
# curl -s -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
- 互联网epel源配置
#扩展源,有很多软件在基本源中没有
方法1:
# wget -q -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
方法2:
# curl -s -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
方法3:
# yum install epel-release
-
互联网特定软件官方源配置
Nginx web软件官方源,有最新的nginx版本,查找方法:
1)进入nginx.org,进入download页面。
2)页面结尾进入“Linux packages for stable and mainline versions.”即可。
3)配置如下
PS: http://nginx.org/en/linux_packages.html
# vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
1.3.2 yum使用实例
1)使用yum查询软件包的方式
# 查看所有软件包
yum list
# 查看指定软件包 不需要yum list|grep tree.
yum list tree
# 看软件包详细信息。
yum info ftp
2)使用yum安装软件包的方式
# 需要确认
yum install tree
# 非交互
yum install tree -y
#安装本地的rpm包, 如果有依赖关系, 会自动从互联网软件仓库中下载所需依赖
yum localinstall /mnt/Packages/bind-9.11.4-16.P2.el7.x86_64.rpm
#直接安装网络上的rpm包
yum install http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
3)使用yum重新安装软件包的方式(了解,工作中不用)
yum install vsftpd
# 1.如果不小心删除vsftpd配置文件
rm -f /etc/vsftpd/vsftpd.conf
# 2.可以对软件进行重新安装
yum reinstall vsftpd
# 3.检查软件的配置文件
rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
4)使用yum更新软件包(慎用)
#对比Linux已安装的软件和yum仓库中的软件, 有哪些需要升级
yum check-update
#更新acl软件
yum update acl -y
#如下的执行很危险,这代表更新整个系统所有的软件,包括内核
yum update -y
#注意事项:
1)生产线慎用,最好不用。
2)安装系统之后,上线前。
3)测试环境,模拟正式环境。然后上正式。
5)使用yum删除软件包
# yum remove samba -y
6)与yum仓库相关指令(扩展了解)
#列出yum源可用的软件仓库
yum repolist
#列出全部yum源可用和禁用的仓库
yum repolist all
#查找某个命令或文件属于那个软件包(生产常用)
yum provides /etc/my.cnf
yum provides cd
以上是关于(0基础学Linux系列)2.12 Linux软件包管理的主要内容,如果未能解决你的问题,请参考以下文章