RPM软件包管理 软件依赖关系 Yum软件的使用 上传与下载 时间设置 命令补充 zip归档工具

环境准备

1.光盘文件放入挂载光驱设备
RPM软件包管理 软件依赖关系 Yum软件的使用 上传与下载 时间设置 命令补充 zip归档工具_第1张图片

2.挂载光驱设备(临时挂载)

mount /dev/cdrom /mnt
ls /mnt
ls /mnt/Packags		软件包一般都会以.rpm结尾

RPM软件包管理

· 常见的软件封包类型
RPM软件包管理 软件依赖关系 Yum软件的使用 上传与下载 时间设置 命令补充 zip归档工具_第2张图片

RPM的含义

·RPM Package Manager

  • 由红帽公司提出,RedHat,SUSE等系列采用
  • 建立集中数据库,记录软件包安装/卸载等变化信息,分析软件包依赖关系

·RPM包文件名特征

  • 软件名-版本信息.操作系统.硬件架构.rpm
  • firefox - 52.7.0-1 . el7 . centos.x86_64 . rpm
    注意 : 不要把64位的软件包装在32位操作系统上
    软件包安装也要进行版本匹配 (比如不要把6版本的软件包,安装在el7的系统上)

RPM包的一般安装位置(都是默认的,不需要安装者进行选择安装包路径)
RPM软件包管理 软件依赖关系 Yum软件的使用 上传与下载 时间设置 命令补充 zip归档工具_第3张图片
查询软件信息

查询已安装的RP软件包的信息
- 格式:rpm -q[子选项] [软件名称]

常用的子选项
- -a 列出已安装的所有软件包
- -i 查看指定软件的详情信息
- -l 查看指定软件的文件安装清单

- -f 查询某个目录/文件是哪个RPM包带来的 
- 格式:rpm -qf [文件路径]...(即使目标文件被删除,也可以查询)

查询已经安装的软件包

rpm -qa			当前系统中所有已经安装的软件包
rpm -q bash			查看bash软件是否安装
rpm -qi bash		查看bash软件信息	
rpm ql bash 		查看bash软件安装了哪些内容(安装清单)
rpm ql bash | less

which vim	 查询命令对应的执行程序
# /usr/bin/vim
rpm -qf /usr/bin/vim	查询某个目录/文件是哪个BPM包带来的
# vim-enhanced-7.4.629-8.el7_9.x86_64
rpm -q vim-enhanced		查看软件vim-enhanced是否已安装
# vim-enhanced-7.4.629-8.el7_9.x86_64

查询未安装的软件包

rpm -q vsftpd  	查询vdftpd软件是否安装(未安装)
ls /mnt/Packages/vsftpd-3.0.2-28.el7.x86_64.rpm	
# /mnt/Packages/vsftpd-3.0.2-28.el7.x86_64.rpm
rpm -qpl /mnt/Packages/vsftpd-3.0.2-28.el7.x86_64.rpm 	查询vdftpd软件包的安装清单
rpm -qpi /mnt/Packages/vsftpd-3.0.2-28.el7.x86_64.rpm 	查询vdftpd软件包的信息

导入红帽的签名信息(了解)

我们在查询部分安装包信息的时候有可能会出现警告信息,原因是因为没有红帽的官方认证,
可以导入红帽官方认证消除警告,如果我们不消除警告信息,也不会影响我们的安装和使用。
rpm --import /mnt/RPM-GPG-KEY-CentOs-7	
rpm -qpi /mnt/Packages/vsftpd-3.0.2-28.el7.x86_64.rpm	查询vdftpd软件包的信息

安装/卸载RPM软件

安装RPM软件
- 格式: rpm -i RPM包文件...

卸载RPM软件
- 格式: rpm -e 软件名...

辅助选项
- -v 显示细节信息
- -h 以#号显示安装进度
-  --force 强制安装,覆盖安装
-  --test 测试安装,不做真实安装动作
rpm -i /mnt/Packages/vsftpd-3.0.2-28.el7.x86_64.rpm		安装vsftpd软件包(无任何提示信息)
rpm -ivh /mnt/Packages/vsftpd-3.0.2-28.el7.x86_64.rpm	安装vsftpd软件包(显示安装信息和安装进度)
rpm -q vsftpd	查看vsftpd软件是否已经安装	
rpm -e vsftpd	卸载vsftpd软件	

--force 强制安装,覆盖安装
如果在操作系统中我们已经安装了一个软件,那么我们可以通过强制安装的方式覆盖安装原软件
rpm -ivh --force /mnt/Packages/vsftpd-3.0.2-28.el7.x86_64.rpm	强制安装

--test 测试软件的兼容性(了解即可)
在实际安装之前,可以用测定安装的方法测试以下软件安装的兼容性等一系列问题(不是真实安装)
rpm -ivh --test /mnt/Packages/vsftpd-3.0.2-28.el7.x86_64.rpm	测试安装
案例:
如果我们不小心删除了linux系统的命令,那么有什么恢复的办法
which hostname 		查看hostname执行文件
# /bin/hostname
rm -rf /user/bin/hostname	删除hostname执行文件
hostname	
# -bash: /bin/hostname: No such file or directory(找不到执行文件)
rpm -qf /user/bin/hostname		查看执行文件/user/bin/hostname由哪个软件包产生(-qf查询是在数据库中查询的,数据库会记录安装的记录和卸载的记录等等)
# hostname-3.13-3.el7_7.1.x86_64
rpm -ivh --force /mnt/Packages/hostname-3.13-3.el7_7.1.x86_64.rpm		重新安装执行文件软件包

软件依赖关系

· 解决依赖关系

  • 先安装/卸载要求的包
  • 如果RPM包齐全但比较多,可以用通配符*

· 忽略依赖关系

  • 可能会导致软件运行异常
  • 辅助选项 --nodeps

常见的依赖关系报错,如下图所示:
在这里插入图片描述

构建Yum软件仓库(重点!!!)

作用 : 自动解决依赖关系安装软件
服务 : 自动解决依赖关系安装软件

Yum软件就类似于手机的应用商城,只需要点击下载,会自动下载并安装软件

RPM软件包管理 软件依赖关系 Yum软件的使用 上传与下载 时间设置 命令补充 zip归档工具_第4张图片

服务端(本机) :
1.众多的软件包(/mnt/Packages) 2.仓库数据文件(/mnt/repodata)
3. FTP 协议 或 HTTP协议
本地Yum仓库 : 服务端需要有光盘内容即可

客户端(本机) : 指定服务端位置
- 仓库配置 : /etc/yum.repos.d/*.repo
文件路径必须是/etc/yum.repos.d/,文件结尾必须是.repo结尾,/etc/yum.repos.d/工作原理,系统会自动查找目录下文件。
- 错误的文件会影响正确的文件
如果在工作中出现错误的yum文件,建议使用mv移走

ls /etc/yum.repos.d/
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak	 
# .repo结尾的文件都必须是连网才可以使用的,本机使用yum软件都必须先把.repo结尾的文件移动到其他目录下
# 如果不移动到其他目录下,那么.repo结尾的文件都是显示错误文件
ls /etc/yum.repos.d/bak

客户端文件配置内容

·.repo 基本配置项
- [源名称]  自定义名称,具有唯一性
- name : 本软件源的描述字串
- baseurl : 指定Yum服务端的URL地址	(file://固定格式,代表本地yum仓库的意思)
- enabled : 是否用此频道 	(0不生效,1生效)
- gpgcheck : 是否验证待安装的RPM包	(检测红帽认证的签名:0不检测,1监测;检不监测都可以,不影响使用)
- gpgkey : 用于RPM软件包验证的密匙文件 	(当gpgcheck:1,需要写指定红帽签名的文件路径)
ls /mnt/RPM-GPG-KEY-CentOs-7   查看红帽认证签名的文件路径
# mnt/RPM-GPG-KEY-CentOs-7
vim /etc/yum.repos.d/mydvd.repo
	[nana2008]
	name=wanglala
	baseurl=file:///mnt
	enabled=1
	gpgcheck=1
	gpgkey=file:///mnt/RPM-GPG-KEY-CentOs-7
	
yum repolist	# 列出仓库信息

总结 : 本地Yum仓库构建方法

  1. 服务端:显示光盘的内容,挂载光驱设备
  2. 客户端:书写客户端配置文件,指定服务端位置
  3. 执行流程: yum命令--->/etc/yum.repos.d/*.repo--->baseurl=file:///mnt

Yum软件的使用

安装软件

# mkdir /mnt					创建/mnt目录
# mount /dev/cdrom /mnt   	将光驱设备挂载到/mnt目录下

yum install *(如果不加-y则需要输入确认下载的信息)

yum -y install httpd 	 	使用yum软件安装httpd包
rpm -q httpd			    查看httpd包是否已经安装
 
yum -y install bind-chroot	使用yum软件安装bind-chroot包
rpm -q bind-chroot			查看bind-chroot包是否已经安装

yum -y install sssd			使用yum软件安装sssd包
rpm -q sssd					查看sssd是否已经安装

yum -y install gcc			使用yum软件安装gcc包
rpm -q gcc					查看gcc是否已经安装

yum -y install xorg-x11-apps	使用yum软件安装xorg-x11-apps包
rpm -q xorg-x11-apps		查看xorg-x11-apps包是否已经安装
rpm -ql xorg-x11-apps | less	查看目录下的文件安装清单

卸载软件
注意 : 我们在卸载软件的时候,不建议使用-y,很多软件与软件之间都存在依赖关系,
我们在卸载软件的时候,需要看清楚依赖关系再进行卸载,有些软件的依赖关系是跟数据库的软件有关联的。

yum remove *	卸载安装包

yum remove xorg-x11-apps	卸载xorg-x11-apps包以及相关的依赖包
yum remove gcc				卸载gcc包以及相关的依赖包

查询软件

yum list ftp   查询仓库是否有ftp软件
# Availables Packages	没有安装
# Installed Packages	已经安装

yum search ftp	包含ftp的软件就匹配(名字,功能含有ftp就算)

yum provides */ftp	仓库中哪个软件包产生了该文件(类似于rpm -qf *)

清空缓存

我们第一次运行yum软件的时候,会把/etc/yum.reposd/*.repo文件加载到内存,下次运行yum软件的时候直接在内存里面找光盘的位置。
如果我们修改了配置文件的信息,我们需要让yum文件立刻读取我们修改过的配置文件信息,那么我们这个时候就需要先清空缓存的文件信息,让yum软件从硬盘中重新读取我们已经修改过的yum文件信息。

yum clean all		清空缓存
yum repolist		查看yum客户端配置文件的信息

yum被锁定了解决办法

Another app is currently holding the yum lock; waiting for it to exit...
The other application is: yum
Memory :  27 M RSS (963 MB VSZ)
Started: Mon Mar 15 11:03:17 2021 - 07:25 ago
State  : Traced/Stopped, pid: 1639

使用yum下载的时候,出现以上报错,说明yum被锁住了。
可以使用 rm -rf /var/run/yum.pid 强制杀死进程来解决

上传与下载

  • 从互联网上下载
wget 需要被下载的链接 							# 默认下载到当前目录
--no-check-cretificate 						 取消验证ssl证书(当ssl链接不安全情况下使用)
wget https://repo.huaweicloud.com/python/3.7.1/python-3.7.1.exe				python软件下载到当前目录下
选项: -O 	下载到指定路径
wget -O /opt/python.exe https://repo.huaweicloud.com/python/3.7.1/python-3.7.1.exe			将python软件下载到opt目录下取名为python.exe


curl 需要被访问的链接
-k 											 取消验证ssl证书(当ssl链接不安全情况下使用)
选项-o 		下载到指定路径
curl -o /opt/python.exe https://repo.huaweicloud.com/python/3.7.1/python-3.7.1.exe	


curl与wget的区别
wget 	下载文件
		-O : 指定保存路径
curl 	访问链接								# 显示链接源代码,并且会将链接的源代码在写入一个文本文件中保存
		-o : 指定文件路径,从而达到下载文件的功能

  • 从服务器上进行上传、下载到本地
上传下载到主机和个人电脑
需要安装 : lrzsz
安装命令 : yum -y install lrzsz

上传 rz -E	
	格式 : rz调出上传窗口,选择需要被上传的文件

下载 sz a.txt
	格式 : zs服务器中的文件路径

命令补充

获取命令帮助

获取命令帮助
方式一:命令 --help
cat --help		

方式二:man 命令
man cat				按q退出
man passwd			显示passwd命令帮助
man 5 passwd		数字5表示帮助类型,表示配置文件类型	

历史命令

历史命令
history				显示历史命令列表
history -c			清空历史命令
history
cat /etc/redhat-release
ls /root
history				
!cat				执行最近一次以cat开头的命令
!ls					执行最近一次以ls开头的命令

调整历史命令的数量
vim /etc/profile	
	HISTSIZE=1000	默认记录1000条

统计文件占用空间

du,统计文件的占用空间
- du [选项]... [目录或文件]...
- -s:只统计每个参数所占用的总空间大小
- -h:提供易读容量单位(k,M等)

du sh /etc		统计etc目录的总大小

date查看/调整时间

- date,查看/调整系统日期时间
· date +%F、date+%R
· date +"%Y-%m-%d %H:%M:%S"			修改系统的时间
· date -s "yyyy-mm-dd HH:MM:SS"		修改系统的时间

date +"2008-1-1	10:50:12"			修改系统的时间(方式一)
date -s "2021-3-15 8:30:50"			修改系统的时间(方式二)

date +%Y	显示年
date +%m	显示月
date +%d	显示日

date +%H	显示时
date +%M	显示分
date +%S	显示秒

date +%F	显示年月日(-隔开,2021-03-15)
date +%R	显示时分(09:30)

- 同步互联网时间
yum install -y ntpdate	  			用yum包安装的ntpdate服务
ntpdate ntp.aliyun.com	  	 		同步互联网网络时间

- 系统硬件时钟
hwclock -r					查看服务器硬件主板的时间
# Fri 26 Mar 2021 04:35:18 PM CST  -0.882678 seconds

- 系统软件时钟
date				  		查看当前Centos-7的系统时间
Fri Mar 26 16:36:20 CST 2021

- 将硬件时间同步到系统时间
hwclock -s					将硬件时间同步到系统时间
# Fri 26 Mar 2021 04:35:18 PM CST  -0.882678 seconds

- 查看时区状态
timedatectl status	  查看时区状态
#       Local time: Fri 2021-03-26 16:38:50 CST
#   Universal time: Fri 2021-03-26 08:38:50 UTC
#         RTC time: Fri 2021-03-26 08:38:50
#        Time zone: Asia/Shanghai (CST, +0800)
#      NTP enabled: no
# NTP synchronized: no
#  RTC in local TZ: no
#      DST active: n/a

timedatectl set-timezone Asia/Shanghai	 设置时区

软连接与硬链接

建立软连接只能使用绝对路径

制作连接(链接)文件(制作快捷方式)		软连接
格式:ln -s /路径/源数据 /路径/快捷方式的名称		# 软连接
ln -s /etc/sysconfig/network-scripts/ /ns	创建快捷方式/ns
#ln -s /etc/passwd /	如果根目录下不写名字,那么快捷方式名字就叫passwd
ls /		
ls -l /ns	查看快捷方式的源数据信息

touch /ns/haha.txt		在快捷方式/ns创建haha.txt文件
touch /ns/nana.txt		在快捷方式/ns创建nana.txt文件
touch /ns/dudu.txt		在快捷方式/ns创建dudu.txt文件
ls /etc/sysconfig/network-scripts/		查看源数据的目录,新增了haha.txt,nana.txt,dudu.txt三个文件

软连接优势:可以针对目录与文件制作快捷方式,支持跨分区
软连接缺点:源数据消失,快捷方式失效

硬链接
ln /路径/源数据	/路径/快捷方式的名称	硬链接

硬链接优势:源数据消失,快捷方式任然有效
硬链接缺点:只能针对文件制作快捷方式,不支持跨分区

软连接与硬链接的区别
rm -rf /opt/*
echo 123 > /opt/A.txt
ln -s /opt/A.txt /opt/B.txt		软连接B.txt
ln /opt/A.txt /opt/C.txt		硬链接C.txt
ls /opt							查看/opt目录下的文件和目录
rm -rf /opt/A.txt 				删除源链接A.txt
cat /opt/B.txt					查看B.txt的文件内容,源链接被删除,B.txt直接无效
# cat: B.txt:No such file or directory
cat /opt/C.txt					查看C.txt的文件内容,源链接被删除,C.txt直接仍然有效

zip归档工具,跨平台

zip与tar的差别,tar只能在Linux系统中应用,zip在Linux和Windows系统都可以应用

归档 + 压缩操作:zip [-r] 备份文件.zip 被归档的文档...
[-r]: 被归档数据有目录,必须加上此选项
zip -r /opt/abc.zip /etc/passwd /home	将/etc/passwd和/home压缩至/opt.abc.zip中
ls /opt/				查看/opt/目录内容

释放归档 + 解压操作:unzip 备份文件.zip [-d 目标文件夹]
mkdir /nsd20			
unzip /opt/abc.zip -d /nsd20		将/opt/abc.zip释放至/nsd20中
[-l]: 只查看解压内容,不进行解压
unzip -l /opt/abc.zip 			查看压缩包/opt/abc.zip里面压缩的内容

你可能感兴趣的:(linux)