一、RPM软件包的管理
1.显示光盘的内容
1)将光盘镜像文件放入虚拟光驱设备
2)进行挂载
[root@localhost ~]# mkdir /mydvd
[root@localhost ~]# mount /dev/cdrom /mydvd
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# ls /mydvd/
CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7
EFI images Packages RPM-GPG-KEY-CentOS-Testing-7
EULA isolinux repodata TRANS.TBL
[root@localhost ~]# ls /mydvd/Packages/
2.RPM软件包介绍
•RPM Package Manager
–由红帽公司提出,RedHat、SUSE等系列采用
–建立集中数据库,记录软件包安装/卸载等变化信息,分析软件包依赖关系
•RPM包文件名特征
–软件名-版本信息.操作系统.硬件架构.rpm
firefox-52.7.0-1.el7.centos.x86_64.rpm
二、查询
•查询已安装的RPM软件包的信息
–格式:rpm -q[子选项] [软件名称]
•常用的子选项
–-a:列出已安装的所有软件包
–-i:查看指定软件的详细信息
–-l:查看指定软件的文件安装清单
[root@localhost ~]# rpm -q firefox #查询firefox软件是否安装
firefox-52.7.0-1.el7.centos.x86_64
[root@localhost ~]# rpm -q bash #查询bash 软件是否安装
bash-4.2.46-30.el7.x86_64
[root@localhost ~]# rpm -q hostname #查询hostname软件是否安装
hostname-3.13-3.el7.x86_64
[root@localhost ~]# rpm -q haha
未安装软件包 haha
[root@localhost ~]#
[root@localhost ~]# rpm -qa #显示当前系统安装的所有软件
[root@localhost ~]# rpm -qa | grep firefox
[root@localhost ~]# rpm -q firefox
[root@localhost ~]# rpm -qi firefox #查看软件的信息
[root@localhost ~]# rpm -ql firefox #查看软件安装清单
[root@localhost ~]# rpm -ql firefox | less
•查询某个目录/文件是哪个RPM包带来的
–格式:rpm -qf [文件路径]…
–即使目标文件被删除,也可以查询(有数据库的记录)
[root@localhost ~]# rpm -qf /etc/passwd
setup-2.8.71-9.el7.noarch
[root@localhost ~]# rpm -qf /etc/fstab
setup-2.8.71-9.el7.noarch
[root@localhost ~]# rpm -qf /root
filesystem-3.2-25.el7.x86_64
[root@localhost ~]# rpm -qf /home
filesystem-3.2-25.el7.x86_64
[root@localhost ~]# rpm -qf /usr/bin/firefox
firefox-52.7.0-1.el7.centos.x86_64
•查询未安装的RPM安装文件
–格式:rpm -q[子选项] [RPM包文件]
•常用的子选项
–-pi:查看未安装的RPM软件包的详细信息
–-pl:查看未安装的RPM软件包的文件安装清单
[root@localhost ~]# ls /mydvd/Packages/
[root@localhost ~]# rpm -qpi /mydvd/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
[root@localhost ~]# rpm -qpl /mydvd/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
[root@localhost ~]# uname -r #显示内核版本
3.10.0-862.el7.x86_64 #内核主版本.内核次版本.内核修订号.企业版Linux7.64操作系统
[root@localhost ~]#
三、安装
•安装RPM软件
–格式:rpm -i RPM包文件...
•辅助选项
– -v:显示细节信息
– -h:以#号显示安装进度
– --force:强制安装、覆盖安装
– --test:测试安装,不做真实安装动作
[root@localhost ~]# rpm -ivh /mydvd/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
[root@localhost ~]# rpm -q vsftpd #查询是否安装成功
vsftpd-3.0.2-22.el7.x86_64
[root@localhost ~]# rpm -e vsftpd #卸载软件
[root@localhost ~]# rpm -q vsftpd #查询是否卸载成功
未安装软件包 vsftpd
导入红帽签名信息:
[root@localhost ~]# rpm --import /mydvd/RPM-GPG-KEY-CentOS-7
•辅助选项
--force:强制安装、覆盖安装
[root@localhost ~]# rm -rf /usr/bin/hostname
[root@localhost ~]# ls /usr/bin/hostname
ls: 无法访问/usr/bin/hostname: 没有那个文件或目录
[root@localhost ~]# rpm -qf /usr/bin/hostname #查询那个软件包带来了该文件
hostname-3.13-3.el7.x86_64
[root@localhost ~]# rpm -ivh /mydvd/Packages/hostname-3.13-3.el7.x86_64.rpm
准备中... ################################# [100%]
软件包 hostname-3.13-3.el7.x86_64 已经安装
[root@localhost ~]# rpm -ivh --force /mydvd/Packages/hostname-3.13-3.el7.x86_64.rpm #强制安装
[root@localhost ~]# ls /usr/bin/hostname
四、软件的依赖关系
•解决依赖关系
–先安装/卸载要求的包
–如果RPM包齐全但比较多,可以用通配符 *
•忽略依赖关系(不推荐)
–可能会导致软件运行异常
–辅助选项 --nodeps
[root@localhost ~]# rpm -ivh /mydvd/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 需要
五、Yum软件包仓库
作用:自动解决软件的依赖关系
•YUM,Yellowdog Updater Modified
–基于RPM包构建的软件更新机制
–自动解决软件包依赖关系
–所有软件包由集中的YUM软件仓库提供
服务:自动解决软件包依赖关系,安装软件包
服务端: 1.众多的软件包
2.仓库数据文件(仓库清单,描述众多软件包各种信息)一般存放在repodata目录
3.http:超文本传输协议、ftp:文件传输协议
本机为服务端也为客户端:
本地目录:file://...
客户端:书写配置文件,指明服务端位置
•.repo 基本配置项
–[源名称] :自定义名称,具有唯一性
–name:本软件源的描述字串
–baseurl:指定YUM服务端的URL地址
–enabled:是否启用此频道
–gpgcheck:是否验证待安装的RPM包
–gpgkey:用于RPM软件包验证的密钥文件
–仓库配置:/etc/yum.repos.d/*.repo
–书写错误的文件,会影响书写正确的文件
[root@localhost ~]# mount /dev/cdrom /mydvd/
[root@localhost ~]# mkdir /etc/yum.repos.d/repo
[root@localhost ~]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repo
[root@localhost ~]# ls /etc/yum.repos.d/
[root@localhost ~]# ls /etc/yum.repos.d/repo/
[root@localhost ~]# vim /etc/yum.repos.d/xixi.repo
[haha] #仓库标识
name=hehe lele #仓库描述信息
baseurl=file:///mydvd #指定服务端位置
enabled=1 #是否启用本文件
gpgcheck=0 #是否检测签名信息
[root@localhost ~]# yum repolist #列出本机识别的仓库信息
六、Yum的使用
•安装软件
[root@localhost ~]# yum install firefox
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# yum -y install sssd
[root@localhost ~]# yum -y install gcc
•卸载软件
[root@localhost ~]# yum remove gcc
•查询仓库中软件信息
[root@localhost ~]# yum list vsftpd #严格匹配
[root@localhost ~]# yum search ftp #模糊查询
[root@localhost ~]# yum search bash
[root@localhost ~]# yum -y install bash-completion #提升tab补全功能的软件包,重启系统才会生效
•清空Yum缓存
[root@localhost ~]# yum clean all
[root@localhost ~]# yum repolist
七、命令的补充
•获取命令帮助
-对于大部分命令,通常会提供“--help”帮助选项
-man,格式化手册阅读工具
按 q 键退出,按 / 键向后查找关键词(n、N切换)
[root@localhost ~]# man mkdir
[root@localhost ~]# man ls
[root@localhost ~]# man useradd
[root@localhost ~]# man passwd
[root@localhost ~]# man 5 passwd #数字5表示帮助类型,配置文件的帮助信息
•管理/调用曾经执行过的命令
–history:查看历史命令列表
–history -c:清空历史命令
–!n:执行命令历史中的第n条命令
–!str:执行最近一次以str开头的历史命令
[root@svr7 ~]# vim /etc/profile #了解
HISTSIZE=1000 #默认记录1000条
[root@localhost ~]# history -c #清空历史命令
[root@localhost ~]# history #查看历史命令列表
1 history
[root@localhost ~]# ls /etc/passwd
[root@localhost ~]# cat /etc/redhat-release
[root@localhost ~]# history
[root@localhost ~]# !cat #执行最近一条以cat开头的历史命令
[root@localhost ~]# ls /root/.bash_history #记录曾经执行过的历史命令文件
•du,统计文件的占用空间
–du [选项]... [目录或文件]...
–-s:只统计每个参数所占用的总空间大小
–-h:提供易读容量单位(K、M等)
[root@localhost ~]# du -sh /root
[root@localhost ~]# du -sh /boot
[root@localhost ~]# du -sh /etc
[root@localhost ~]# du -sh /
•date,查看/调整系统日期时间
–date +%F、date +%R
–date +"%Y-%m-%d %H:%M:%S"
–date -s "yyyy-mm-dd HH:MM:SS"
[root@localhost ~]# date +%Y #显示年
[root@localhost ~]# date +%m #显示月
[root@localhost ~]# date +%d #显示日期
[root@localhost ~]# date +%H #显示 时
[root@localhost ~]# date +%M #显示 分
[root@localhost ~]# date +%F #显示年-月-日
2020-05-07
[root@localhost ~]# date +%R #显示 时:分
[root@localhost ~]# date
[root@localhost ~]# date -s "2008-9-1 12:10:13"
[root@localhost ~]# date
[root@localhost ~]# date -s "2020-5-7 17:17"
[root@localhost ~]# date
•zip归档工具,归档+压缩操作(跨平台的压缩格式)
–zip [-r] 备份文件.zip 被归档的文档...
[root@localhost ~]# zip -r /opt/abc.zip /home /boot
[root@localhost ~]# ls /opt/
–unzip 备份文件.zip [-d 目标文件夹]
[root@localhost ~]# mkdir /nsd90
[root@localhost ~]# unzip /opt/abc.zip -d /nsd90
[root@localhost ~]# ls /nsd90
[root@localhost ~]# ls /nsd90/boot
[root@localhost ~]# ls /nsd90/home
•制作连接文件(制作快捷方式)
1)软连接(常用)可以针对目录制作快捷方式,也可以跨越分区制作快捷方式
ln -s /路径/源数据 /路径/快捷方式名称
[root@localhost ~]# ls /etc/hosts
/etc/hosts
[root@localhost ~]# ln -s /etc/hosts /opt/hs
[root@localhost ~]# ls /opt/
[root@localhost ~]# ls -l /opt/hs
[root@localhost ~]# cat /opt/hs
2)硬连接/硬链接(不常用,了解内容)不可以针对目录制作快捷方式,不可以跨越分区制作快捷方式
ln /路径/源数据 /路径/快捷方式名称
[root@localhost ~]# rm -rf /opt/*
[root@localhost ~]# echo 123456 > /opt/A.txt
[root@localhost ~]# ls /opt/
[root@localhost ~]# cat /opt/A.txt
[root@localhost ~]# ln -s /opt/A.txt /opt/B.txt #软连接,当源数据消失,快捷方式直接失效
[root@localhost ~]# ls /opt/
[root@localhost ~]# ln /opt/A.txt /opt/C.txt #硬链接,当源数据消失,任然可用
[root@localhost ~]# ls /opt/
[root@localhost ~]# rm -rf /opt/A.txt
[root@localhost ~]# ls /opt/
[root@localhost ~]# cat /opt/B.txt #快捷方式直接失效
cat: /opt/B.txt: 没有那个文件或目录
[root@localhost ~]# cat /opt/C.txt #任然可用