一、RPM软件包的管理

1.显示光盘的内容

1)将光盘镜像文件放入虚拟光驱设备




centos卸载默认安装的mysql centos卸载包_rpm -e --nodeps


centos卸载默认安装的mysql centos卸载包_firefox_02


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 #任然可用