linux 软件管理
linux 软件管理
目录
一.含义
## cenost7 软件管理
主要作用:安装下载 软件包(服务 命令)
1) yum 下载安装
2) rpm 只能安装 需要本地有包
镜像默认的源 是在国外,速度比较满
#01 配置文件
vim /etc/yum.conf
cachedir=/var/cache/yum/$basearch/$releasever //缓存目录 缓存rpm
keepcache=1 //缓存软件包, 1启动 0 关闭
debuglevel=2 //调试级别
logfile=/var/log/yum.log //日志记录位置
exactarch=1 //检查平台是否兼容
obsoletes=1 //检查包是否废弃
gpgcheck=1 //检查来源是否合法,需要有制作者的公钥信息
plugins=1 //是否启用查询
installonly_limit=5
bugtracker_url
# metadata_expire=90m //每小时手动检查元数据
# in /etc/yum.repos.d //包含repos.d目录
#02 开启缓存后 会生成 rpm包 (可以直接被安装)
1)安装 tree 并缓存包
[root@bogon updates]# yum install -y tree
2)检查安装包位置
[root@bogon updates]# find /var/cache/yum/x86_64/7/* -type f -name "*.rpm"
/var/cache/yum/x86_64/7/base/packages/tree-1.6.0-10.el7.x86_64.rpm
#03 rpm 安装
[root@bogon updates]# rpm -ivh /var/cache/yum/x86_64/7/base/packages/tree-1.6.0-10.el7.x86_64.rpm
准备中... ################################# [100%]
正在升级/安装...
1:tree-1.6.0-10.el7 ################################# [100%]
二. 安装yum 源
## cenost7 默认都是国外源 速度慢 需要更换位国内源
## 更换源就是更换 配置文件
#01 配置文件
[root@bogon updates]# ll /etc/yum.repos.d/
总用量 36
-rw-r--r--. 1 root root 1664 4月 7 2020 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 4月 7 2020 CentOS-CR.repo
-rw-r--r--. 1 root root 649 4月 7 2020 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 4月 7 2020 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 4月 7 2020 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 4月 7 2020 CentOS-Sources.repo
-rw-r--r--. 1 root root 7577 4月 7 2020 CentOS-Vault.repo
-rw-r--r--. 1 root root 616 4月 7 2020 CentOS-x86_64-kernel.repo
#02 更换阿里源
1)备份原来源文件
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2)下载阿里云源 到指定位置
[root@bogon updates]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
3)检查
[root@bogon updates]# egrep -v '……$|^#' /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
[contrib]
name=CentOS-$releasever - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/contrib/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
三. 具体使用 命令
基本语法总汇
yum 搜索指令
yum provides 根据文件,命令,库文件,搜索对应的软件包
yum search all 更详细,查找出来的内容更多
yum list 列出软件仓库中可用的软件
yum info 列出软件包详情(轻易别用)
yum 安装指令
yum install 安装软件只需要给出软件名称
yum install -y 安装过程中分析依赖关系后, 直接安装, 无需交互 默认选择yes
yum localinstall 安装本地的rpm包, 如果有依赖关系, 会自动从软件仓库中下载所需依赖
(非来自.repo定义的软件仓库 后面跟路径/mnt/Packages/
yum reinstall 重新安装软件
yum软件包指令
yum check-update #对比Linux已安装的软件和yum仓库中的软件, 有哪些需要升级
yum update #更新软件 (yum update -y #如果单独更新某个软件yum isntall )
删除软件指令
yum erase samba -y 删除该软件包,不会删除依赖, 但是我们尽可能不要使用删除软件操作
yum remove samba -y 注释:rpm -e #负责删除 #尽量不删除,关闭后放着就ok
yum 仓库相关指令
yum repolist 列出yum源可用的软件仓库
yum repolist all 列出全部yum源可用和禁用的仓库
yum provides 查看这个文件或命令属于哪个包
例如;yum provides /etc/my.cnf
yum provides cd
yum 缓存相关指令
yum makecache 生成yum缓存
yum clean all 清空 本地yum缓存 (更换了yum源一般需要清空缓存,让系统重新生yum缓存)
#导入rpm包 yum localinstall -y 绝对路径
注释:修改yum全局配置文件 vim /etc/yum.conf
查看缓存的xml文件 ls /var/cache/yum/x86_64/7/base/
查看缓存软件包路径 /var/cache/yum/x86_64/7/
yum 包组相关指令
yum groups list 列出已经安装和所有可使用的软件组
yum groups install 安装一整个组的软件
yum groups remove -y yum删除包组
yum 历史记录指令
yum history 查看历史执行yum命令
yum history info N 查询历史执行yum命令ID详细信息
yum history undo N 撤销历史执行过的yum命令
yum 签名检查机制
方式1: 指定公钥的位置
方式2: 提前导入公钥
方式3: 不进行签名验证 yum install httpd --nogpgcheck
rpm-具体使用选项,参数
rpm-安装
-ivh 安装(例如:[root@bogon ~]# rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm )
(-i 安装, -v 详细信息,-h 安装进度 )安装软件包, 需要指定软件包绝对路径和rpm完整名称
--test: 测试是否能够安装成功 (了解,测试一个软件包是否能在该系统上安装)
--force: 强制重新安装 (了解,如果软件包存在, 强制再次安装)
--nodeps: 忽略依赖关系,用于安装或者删除
-Uvh 安装升级
rpm -查询
-q 查询指定的软件包是否安装 (例: rpm -q tree )
-qa 查询系统中已经安装的所有rpm软件包列表 (例:rpm -qa | grep 'rpm' 可以配合grep使用)
-ql 查询指定软件包,所安装(在)的目录,文件列表(软件内容) (例:rpm -ql tree)
-qf 查询命令文件属于那个rpm包,(例:rpm -qf `which tree` 跟命令的绝对路径)
以上需要熟悉
-qi 查看指定软件的详细信息 (例:rpm -qi tree)
-qd 查询指定软件包的帮助文档 man手册 (例: rpm -qd tree)
-qc 查询指定软件包的配置文件
以上了解即可
#查询未安装的软件包信息
rpm -qip #查询未安装的rpm包详细信息 需要跟路径,rpm -qlp /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm
rpm -qlp #查询未安装的软件包会产生哪些文件
(了解即可)
rpm -卸载
-e (eraser) 卸载删除指定的软件包(注意卸载包时需要先把依赖的包卸载掉,如果依赖的包是系统所必须的,那就不能
卸载这个包,否则会造成系统崩溃) 可以搭配--nodeps忽略依赖使用
rpm 校验 (软件相关的数据库存放于 /var/lib/rpm 目录)
rpm -aV tree (例如:S.5....T. /usr/bin/tree 只有有5,说明内容已经被修改 md5变化)
扩展: S //文件的容量大小是否被改变
M //文件的类型或者文件的属性是否被修改
5 #MD5这一种指纹加密的内容已经不同 文件内容变化
D //装置的主/次代码已经改变
L //路径已经被改变
U //文件的所属主已被修改
G //文件的所属组已被修改
T //文件的修改时间已被改变
3.1 搜索软件
#01 基础语法
yum 搜索指令
yum provides 根据文件,命令,库文件,搜索对应的软件包
yum search all 更详细,查找出来的内容更多
yum list 列出软件仓库中可用的软件
yum info 列出软件包详情(轻易别用)
#02 搜索单个命令 文件 provides
[root@bogon updates]# yum provides wget
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.bupt.edu.cn
* extras: mirrors.huaweicloud.com
* updates: mirrors.huaweicloud.com
wget-1.14-18.el7_6.1.x86_64 : A utility for retrieving files using the HTTP or FTP protocols
源 :base
解释下:
包名称: wget-1.14-18.el7_6.1.x86_64
源 : base
##一般只用第一个 provides
3.2 安装 卸载
##基本语法
1 直接安装 install
2 本地安装 localinstall
3 重新安装 reinstall
#01 安装软件 install
[root@bogon updates]# yum install -y tree
解释下:
-y yes 安装过程中分析依赖关系后, 直接安装, 无需交互 默认选择yes
#02 本地安装 yum localinstall 安装本地的rpm包, 如果有依赖关系, 会自动从软件仓库中下载所需依赖
[root@bogon updates]# yum localinstall /var/cache/yum/x86_64/7/base/packages/wget-1.14-18.el7_6.1.x86_64.rpm
#03 重新安装 yum reinstall 重新安装软件
[root@bogon updates]# yum reinstall wget
#04 卸载 remove
[root@bogon updates]# yum remove -y tree
3.3 yum 仓库相关
四 rpm 本地包管理
4.1 查询
#01 rpm 查询
-q 查询指定的软件包是否安装 (例: rpm -q tree )
-qa 查询系统中已经安装的所有rpm软件包列表 (例:rpm -qa | grep 'rpm' 可以配合grep使用)
-ql 查询指定软件包,所安装(在)的目录,文件列表(软件内容) (例:rpm -ql tree)
-qf 查询命令文件属于那个rpm包,(例:rpm -qf `which tree` 跟命令的绝对路径)
以上需要熟悉
-qi 查看指定软件的详细信息 (例:rpm -qi tree)
-qd 查询指定软件包的帮助文档 man手册 (例: rpm -qd tree)
-qc 查询指定软件包的配置文件
4.2 安装
##三种方式
1 直接安装 install
2 本地安装 localinstall
3 重新安装 reinstall
#01 开启缓存
[root@bogon updates]# grep 'keepcache' /etc/yum.conf
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1
解释下:
1 代表开启缓存
cachedir 缓存目录
#02 使用yum 缓存该命令
1)安装 tree 并缓存包
[root@bogon updates]# yum install -y tree
2)检查安装包位置
[root@bogon updates]# find /var/cache/yum/x86_64/7/* -type f -name "*.rpm"
/var/cache/yum/x86_64/7/base/packages/tree-1.6.0-10.el7.x86_64.rpm
#01 直接安装
[root@bogon updates]# rpm -ivh /var/cache/yum/x86_64/7/base/packages/tree-1.6.0-10.el7.x86_64.rpm
准备中... ################################# [100%]
正在升级/安装...
1:tree-1.6.0-10.el7 ################################# [100%]
解释下:
-i 安装
-v 详细信息
-h 安装进度
注意: 安装软件包, 需要指定软件包绝对路径和rpm完整名称
#02 本地安装
yum localinstall 安装本地的rpm包, 如果有依赖关系, 会自动从软件仓库中下载所需依赖
#03 重新安装
yum reinstall 重新安装软件
4.3 卸载
rpm -卸载
-e (eraser) 卸载删除指定的软件包(注意卸载包时需要先把依赖的包卸载掉,如果依赖的包是系统所必须的,那就不能
卸载这个包,否则会造成系统崩溃) 可以搭配--nodeps忽略依赖使用
#01 [root@aliyun ~]# rpm -e tree
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)