
RPM包管理机制
常见的软件封包类型
常见的软件
nessus rpm 安装_05:RPM软件包管理、Yum软件包仓库、命令补充
RPM的含义
• RPM Package Manager
由红帽公司提出,RedHat、SUSE等系列采用
建立集中数据库,记录软件包安装/卸载等变化信息,分析软件包依赖关系
• RPM包文件名特征
– 软件名-版本信息.操作系统.硬件架构.rpm
firefox-52.7.0-1.el7.centos.x86_64.rpm
常见安装位置
- RPM包的一般安装位置(分散)
文件类别 | 默认安装位置 |
---|---|
普通执行程序 | /usr/bin/ 、/bin/ |
服务器程序、管理工具 | /usr/sbin/ 、/sbin/ |
配置文件 | /etc/ 、/etc/软件名/ |
日志文件 | /var/log/、/var/log/软件名/ |
程序文档、man手册页 | /usr/share/doc/ 、/usr/share/man/ |
查询软件信息
查询已安装的软件
-
查询已安装的RPM软件包的信息
-格式:rpm -q[子选项] [软件名称]
- 常用的子选项
-a : 列出已安装的所有软件包
-i : 查看指定软件的详细信息
-l : 查看指定软件的文件安装清单
确认软件包的安装情况
]# rpm -qa #当前系统中所有已安装的软件包]# rpm -q firefox #查看firefox是否安装firefox-52.7.0-1.el7.centos.x86_64]# rpm -q httpd 未安装软件包 httpd]# rpm -q bashbash-4.2.46-30.el7.x86_64
了解软件包在详细安装信息
]# rpm -qi firefox #查询软件信息]# rpm -ql firefox #查询软件安装了哪些内容(安装清单)]# rpm -ql firefox | less
查询某个目录/文件是哪个RPM包带来的– 格式:rpm -qf [文件路径]…– 即使目标文件被删除,也可以查询
[[email protected] ~]# which vim #查询命令对应的程序文件/usr/bin/vim[[email protected] ~]# rpm -qf /usr/bin/vimvim-enhanced-7.4.160-4.el7.x86_64[[email protected] ~]# rpm -q vim-enhancedvim-enhanced-7.4.160-4.el7.x86_64
查询未安装软件包
格式:rpm -q [子选项] [RPM 包文件
常用的子选项
-pi: 查看指定软件的详细信息
-pl: 查看指定软件的文件安装清单
]# rpm -q vsftpd #查询vsftpd软件是否安装未安装软件包 vsftpd]# ls /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
查询软件包的安装清单:
]# rpm -qpl /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm查询软件包信息]# rpm -qpi /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
导入红帽签名信息(了解)
]# rpm --import /mnt/RPM-GPG-KEY-CentOS-7查询软件包信息]# rpm -qpi /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
安装/卸载软件包
安装
-
安装RPM软件
-格式:rpm -i RPM包文件
-
辅助选项
– -v:显示细节信息
– -h:以#号显示安装进度
– --force:强制安装、覆盖安装
– --test:测试安装,不做真实安装动作
]# rpm -q vsftpd #查询当前的系统是否安装了该软件未安装软件包 vsftpd]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm]# rpm -q vsftpd #查询当前的系统是否安装了该软件vsftpd-3.0.2-22.el7.x86_64]# rpm -e vsftpd #卸载软件]# rpm -q vsftpd #查询当前的系统是否安装了该软件未安装软件包 vsftpd
--force:强制安装、覆盖安装
]# which hostname/usr/bin/hostname]# rm -rf /usr/bin/hostname ]# hostnamebash: hostname: 未找到命令...]# rpm -qf /usr/bin/hostname #查看由哪个软件包产生hostname-3.13-3.el7.x86_64]# rpm -ivh --force /mnt/Packages/hostname-3.13-3.el7.x86_64.rpm
解决依赖关系
– 先安装/卸载要求的包
如果RPM包齐全但比较多,可以用通配符 *
• 忽略依赖关系(不推荐)
– 可能会导致软件运行异常
– 辅助选项 --nodeps
常见依赖关系的报错:
[[email protected] ~]# rpm -ivh /mnt/Packages/bind-chroot-9.9.4-61.el7.x86_64.rpm错误:依赖检测失败:bind = 32:9.9.4-61.el7 被 bind-chroot-32:9.9.4-61.el7.x86_64 需要
卸载
-
卸载RPM软件
-格式 :rpm -e 软件名.. ..
]# rpm -e vsftpd]# rpm -q vsftpd未安装软件包 vsftpd
构建Yum软件包仓库
作用:自动解决依赖关系安装软件
服务:自动解决依赖关系安装软件
服务端(本机): 1.众多的软件 2.仓库数据文件(repodata)
3.FTP协议 或 http 协议
本地Yum仓库:服务端需要有光盘内容即可
客户端(本机):指定服务端位置
– 仓库配置:/etc/yum.repos.d/*.repo
– 错误的文件会影响正确的文件
客户端文件配置内容:
– [源名称] :自定义名称,具有唯一性
– name:本软件源的描述字串
– baseurl:指定YUM服务端的URL地址
– enabled:是否启用此频道
– gpgcheck:是否验证待安装的RPM包
– gpgkey:用于RPM软件包验证的密钥文件
完整示例:
]# vim /etc/yum.repos.d/mydvd.repo[nsd2008]name=hahaxixibaseurl=file:///mntenabled=1gpgcheck=1 gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-7]# ls /etc/yum.repos.d/]# mkdir /etc/yum.repos.d/bak]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak]# ls /etc/yum.repos.d/bak]# vim /etc/yum.repos.d/mydvd.repo[nsd2008] #仓库的名称name=hahaxixi #仓库描述信息baseurl=file:///mnt #指定服务端位置file://表示本地为服务端enabled=1 #本文件启用gpgcheck=0 #不检测红帽签名]# yum repolist #列出仓库信息
总结:本地Yum仓库构建方法
1.服务端:显示光盘的内容,挂载光驱设备
2.客户端:书写客户端配置文件,指定服务端位置
3.执行流程: yum命令--->/etc/yum.repos.d/*.repo--->baseurl=file:///mnt
Yum的使用
安装软件
[[email protected] ~]# yum -y install httpd[[email protected] ~]# rpm -q httpd[[email protected] ~]# yum -y install bind-chroot[[email protected] ~]# rpm -q bind-chroot[[email protected] ~]# yum -y install sssd[[email protected] ~]# rpm -q sssd[[email protected] ~]# yum -y install gcc[[email protected] ~]# rpm -q gcc[[email protected] ~]# yum -y install xorg-x11-apps[[email protected] ~]# rpm -q xorg-x11-apps[[email protected] ~]# rpm -ql xorg-x11-apps | less[[email protected] ~]# xeyes
卸载软件
[[email protected] ~]# yum remove gcc[[email protected] ~]# yum remove httpd
查询
[[email protected] ~]# yum list ftp #查询仓库是否有ftp软件可安装的软件包 #表示当前系统没有安装该软件ftp.x86_64 0.17-67.el7 nsd2008[[email protected] ~]# yum list httpd[[email protected] ~]# yum search ftp #包含ftp就匹配]# yum provides /usr/bin/xeyes ]# yum provides /etc/passwd #仓库中那个软件包产生该文件
清空缓存
[[email protected] ~]# yum clean all[[email protected] ~]# yum repolist
命令补充
获取命令帮助
方式一:命令 --help
[[email protected] ~]# cat --help
方式二:man 命令
[[email protected] ~]# man cat #按q退出[[email protected] ~]# man passwd #显示passwd命令帮助[[email protected] ~]# man 5 passwd
历史命令
管理/调用曾经执行过的命令
– history:查看历史命令列表
– history -c:清空历史命令
– !n:执行命令历史中的第n条命令
– !str:执行最近一次以str开头的历史命令
[[email protected] ~]# vim /etc/profileHISTSIZE=1000 #默认记录1000条[[email protected] ~]# history #显示历史命令列表[[email protected] ~]# history -c #清空历史命令[[email protected] ~]# history [[email protected] ~]# cat /etc/redhat-release[[email protected] ~]# ls /root[[email protected] ~]# history[[email protected] ~]# !cat #指定最近一条以cat开头的历史命令[[email protected] ~]# !ls #指定最近一条以ls开头的历史命令
du, 统计文件的占用空间
– du [选项]... [目录或文件]...
– -s:只统计每个参数所占用的总空间大小
– -h:提供易读容量单位(K、M等)
[[email protected] ~]# du -sh /root[[email protected] ~]# du -sh /etc[[email protected] ~]# du -sh /
date,查看/调整系统日期时间
– date +%F、date +%R
– date +"%Y-%m-%d %H:%M:%S"
– date -s "yyyy-mm-dd HH:MM:SS"
]# date]# date -s "2008-9-6 11:11:11" #修改系统时间]# date]# date -s "2020-9-5 15:37:11" ]# date[[email protected] ~]# date +%Y #显示年[[email protected] ~]# date +%m #显示月[[email protected] ~]# date +%d #显示日期[[email protected] ~]# date +%H #显示时[[email protected] ~]# date +%M #显示分[[email protected] ~]# date +%S #显示秒[[email protected] ~]# date +%F #显示年-月-日[[email protected] ~]# date +%R #显示时:分
制作连接(链接)文件(制作快捷方式)
格式:ln -s /路径/源数据 /路径/快捷方式的名称 #软连接
]# ln -s /etc/sysconfig/network-scripts/ /ns]# ls /]# ls -l /ns #查看快捷方式的信息]# touch /ns/haha.txt]# touch /ns/maohehaozi.txt]# touch /ns/shukehebeita.txt]# ls /etc/sysconfig/network-scripts/
软连接优势:可以针对目录与文件制作快捷方式,支持跨分区
软连接缺点:源数据消失,快捷方式失效
格式:ln /路径/源数据 /路径/快捷方式的名称 #硬链接
硬链接优势:源数据消失,快捷方式仍然有效
硬链接缺点:只能针对文件制作快捷方式,不支持支持跨分区
[[email protected] ~]# rm -rf /opt/*[[email protected] ~]# echo 123 > /opt/A.txt[[email protected] ~]# ln -s /opt/A.txt /opt/B.txt #软连接[[email protected] ~]# ls /opt/[[email protected] ~]# ln /opt/A.txt /opt/C.txt #硬链接[[email protected] ~]# ls /opt/[[email protected] ~]# cat /opt/B.txt[[email protected] ~]# cat /opt/C.txt[[email protected] ~]# rm -rf /opt/A.txt[[email protected] ~]# ls /opt/[[email protected] ~]# cat /opt/B.txt #软连接失效cat: /opt/B.txt: 没有那个文件或目录[[email protected] ~]# cat /opt/C.txt #硬链接仍然有效
zip归档工具,跨平台
• 归档+压缩操作: zip [-r] 备份文件.zip 被归档的文档...
[-r] 被归档的数据有目录,必须加上此选项 ]# zip -r /opt/abc.zip /etc/passwd /home]# ls /opt/
• 释放归档+解压操作: unzip 备份文件.zip [-d 目标文件夹]
]# mkdir /nsd20]# unzip /opt/abc.zip -d /nsd20]# ls /nsd20]# ls /nsd20/etc/]# ls /nsd20/home/