Linux系统及操作 (03)
RPM 软件包
- 网络下载对应软件包
- 光盘镜像文件,具备软件包
Windows 系统软件包的管理
- 可以指定安装位置
- 安装是集中安装到一个目录
- Linux 系统 与 Windows 系统相反。
常见的软件包(生态)类型
- 电脑入侵99%都是通过软件包的漏洞进行的。
- window 生态
- Android 生态
- ios 生态
- rpm软件包 :扩展名为 .rpm,适用于 RedHat 系统。
- deb软件包 : 扩展名为 .deb 适用于 Debian 系统
- 源代码软件包 :通常以 .tar.gz , .tar.bz2 格式的压缩包提供包含程序的原始代码文件
- 其他 :提供 instal.sh , setup , *.bin , *.pl 等文件。
- 其他 : 绿色免安装,提供已编译好的程序及相关文件
RPM的含义
-  RedHat Package Manager : 红帽公司提供,RedHat,SUSE等系统采用 
-  集中数据库,记录软件包的安装卸载等变化 - http://rpmfind.net/
- http://www.centos.org/
 
-  RPM包软件名特征 -  [ 软件名 ] - [ 版本信息 ] . [ 操作系统版本 ] . [ 硬件构造 ] . rpm { firefox - 91.9.0-1 . el8_5 . x86_64 . rpm } 
-  软件名 :firefox。 ( 软件名和软件包名需要区分 ) 
-  版本信息 :91.9.0-1 ( 数字越大版本越新 ) 
-  操作系统版本 : el8_5 ( 大版本为 8 ) 
-  硬件构造 : x86_64 ( 64位系统 ) 
 
-  
-  Linux软件包的安装是没有下一步,指定默认安装位置,分散的,不集中。 -  优点 : 简单。 
-  缺点 : 不够灵活。 
-  Linux系统 安装的软件名 与 所产生的众文件名 不对应不一样的情况较多。 
-  Linux 系统安装程序软件的路径是 :带 /bin 的路径 。 - 普通执行程序 : [ /usr/bin/ ] [ /bin/ ]
- 服务区程序,管理工具 : [ /usr/sbin ] [ /sbin/ ]
 
-  配置文件 :决定和修改软件的功能。(配置服务) [ /etc/ ] [ /etc/软件名/ ] 
-  日志文件 :每个软件都会记录其运行轨迹。 [ /var/log/ ] [ /var/log/软件名/ ] 
-  程序文档,man手册页 : [ /usr/share/doc/ ] [ /usr/share/man/ ] 
 
-  
rpm 命令 : 查询系统软件信息
格式 :rpm -q[子选项] [ 软件名称 ]
- [ rpm -q firefox ] 查看软件 firefox 是否安装。(查询软件)
- [ rpm -q httpd ] 查看软件 httpd构造Web服务器软件。(查询软件)
- [ rpm -q vsftpd ] 查看软件包 vsftpd 是否安装。
子选项:
-  [ -a ] : 列出已安装所有软件包 - [ rpm -qa ] 列出所有已安装包。
- [ rpm -qa | grep firefox ] 查看所有已安装的 firefox 软件。
- [ rpm -qa | wc -l ] 查看已安装所有软件的个数。
 
-  [ -i ] : 查看指定已安装软件的详细信息(软件说明) -  [ rpm -qi firefox ] 查 firefox 的文件信息。
 
-  
-  **[ -l ] : 查看指定已安装软件的文件安装清单 **(列出安装清单) -  [ rpm -ql firefox ] 查 firefox 都产生了什么 。
-  [ rpm -qf /etc/shadow ] 查是哪个软件包的安装产生了 /etc/shadow 文件。原软件包已删也可以查出来。 
 
-  
-  [ -qpl ] : 查看未安装的软件包的安装路径和安装清单 。 - [ rpm -qpl httpd ]
- 查看软件包的时候要使用绝对路径
 
-  [ -qpi ] : 产量未安装的软件包的软件信息 。 - [ rpm -qpi httpd ]
- 查看软件包的时候要使用绝对路径
 
-  为了软件包的绿色安全,Linux 会检测软件包有没有红帽签名(商标) ,没有签名的包会现实警告。有红帽签名是Linux官方的安全无害的软件包。无商标不一定不好用,危险。 
-  红帽签名信息是加密的。 /etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial 
-  Linux 系统不认识,不识别红帽签名时也会显示警告。 -  导入红帽签名识别信息 [ rpm --import /etc/pki/rpm-gpg/rockyofficial ] 
 
-  
软件的安装/卸载
依赖关系
-  Linux 操作系统中,一个软件包在运行时所需的其他软件包或库文件。 
-  解决依赖关系 : - 先安装/卸载要求的包。
- 如果RPM包齐全,但比较多。
 
-  忽略依赖关系 : - 可能会导致软件运行异常
- 辅助选项 [ -nodeps ]
 
rpm安装
-  rpm安装 :无法解决依赖关系。 
-  格式 :[ rpm -i RPM包文件… ] 
-  辅助选项: - [ -v ] : 显示细节信息
- [ -h ] :以 # 号显示安装进度
- [ rpm -ivh RPM包文件绝对路径 ] :安装软件
 
-  卸载RPM软件 - 格式 :[ rpm -e 软件名… ]
 
Yum 软件安装
Yum软件安装 :自动解决软件的依赖关系。
- YUM : Yellowdog Updater Modified - 基于RPM包构建的软件更新机制
- 自动解决软件的依赖关系
- 所有软件包由集中的YUM软件仓库提供
- 使用前提 构建软件仓库
- 是一种基于“C/S”结构的RPM软件更新机制,所有的软件包由集中的软件仓库提供,能够自动分析并解决软件包之间的依赖关系。
 
构建软件仓库
-  任意目录即可 (仓库地址) 
-  拥有众多软件(解决依赖关系) 
-  软件清单文件 (仓库内软件的信息汇总文件) - /AppStream/ (完美的软件仓库)下 Package 是众多软件 ,repodata 是软件清单文件(软件数据文件)。
 
-  RPM软件包来源 - Red Hat发布的RPM包集合(系统光盘内容)
 
-  yum程序(命令)不知道软件仓库路径。 
-  需要指明仓库文件的位置给yum命令 , 写一个仓库配置文件(手写) - yum命令 ==> 仓库配置文件 ==> 软件仓库
 
-  手写并背诵仓库配置文件 - 位置固定 :[ /etc/yum.repos.d/ ] (存在多种仓库)
- 命名为 :*[ .repo ]
- 错误文件会影响正确文件。保持所有仓库文件正确。(yum不会递归读)
- /yum.repos.d/ 下建立新的目录 ,把干扰文件mv。清除其他配置文件的影响。
 
-  仓库配置文件**[ .repo ]* 内容 : **[ appstream ] -----自定义名称,具有唯一性****name=appstream -----本软件源的描述字符串****baseurl=file:///mnt/AppStream -----指定YUM服务端的URL地址(仓库的位置)***[file://] 代表本机路径(本地yum仓库) [http://] 代表网络服务路径***enabled=1 -----是否启用此频道**[ 1 ] 仓库提供服务 [ 0 ] 仓库不提供服务**gpgcheck=1 -----是否验证待安装的RPM包**[ 1 ] 检测红帽签名是否存在 [ 0 ] 不检测红帽签名信息**gpgkey=0 -----用于RPM软件包验证的密匙文件**[ gpgcheck=1 ]时 ,需要输入密匙
-  [ yum repoinfo ] 查看本机识别的软件仓库,列出仓库信息。 
-  除了 [ /mnt/AppStream] 还有 [ /mnt/BaseOS ] 有仓库的情况(多包) **[ appstream ] -----自定义名称,具有唯一性****name=appstream -----本软件源的描述字符串****baseurl=file:///mnt/AppStream -----指定仓库位置的绝对地址****enabled=1 -----是否启用此频道****gpgcheck=1 -----是否验证待安装的RPM包****gpgkey=0 -----用于RPM软件包验证的密匙文件****[ baseos ]** **name=baseos** **baseurl=file:///mnt/BaseOS** **enabled=1** **gpgcheck=1** **gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial**
-  Yum判断配置文件个数只认 [ ] 中的自定义名称个数。 
安装/卸载软件包
- 软件包基本操作,安装软件包测试
- 格式 : yum [ -y ] [ 指令 ] [ 软件名 ] …
- [ -y ] : 安装
- 常用指令 : - [ install ] : 安装指定软件包, 类似 [ rpm -i ]
 [ yum -y install 软件包 ]
- [ remove ] : 卸载指定软件包, 类似 [ rpm -e ]
 [ yum remove 软件包 ] ---------卸载并询问是否操作
 [ yum -y remove 软件包 ] ---------卸载并不询问是否操作
 
- [ install ] : 安装指定软件包, 类似 [ rpm -i ]
查询软件信息
-  [ yum info 软件名 ] 查询对应软件的具体信息。 
-  [ yum list 需要软件名 ] 查询仓库是否有该软件 ,精准文字符串。 
-  **[ yum search 软件名的关键词 ] ** 查询仓库是否有该软件或功能类似的文件,模糊文字符串。 
-  [ yum provides 文档路径 ] 查看哪些软件能够提供对应文件。 - [ rpm -qf xxxx ] 只能检测已安装的软件。
- [ rpm provides xxxx ] 可以检测尚未安装的软件。
 
-  [ yum -y reinstall xxxx ] 修复/覆盖重新安装软件 
-  [ yum clean all ] 清空Yum的缓存 
-  [ yum repoinfo ] 列出仓库信息 
总结 :本地Yum仓库构建方法
- 显示光盘的内容,挂载光驱设备[ mount /dev/cdrom /mnt ]
- 书写仓库配置文件,指定仓库位置[ /etc/yum.repos.d/.repo ]*
- 检查配置文件,[ yum repoinfo ]
- 安装软件 , [ yum -y install 软件名]
- 检查是否安装成功 ,[ rpm -q 软件名 ]
命令补充
获得命令帮助
实用技巧
[ date ]
-  查看/调整系统时间 -  [ date ] 显示现在时间 
-  [ date -s ‘yyyy-mm-dd hh:mm:ss’ ] 修改时间为 yyyy-mm-dd hh:mm:ss 
-  [ +%Y ] 显示年 ; [ +%m ] 显示月 ; [ +%d ] 显示日期 ; [ +%F ]显示年-月-日 ; [ +%H ] 显示时 ; [ +%M ] 显示分 ; [ +%S ] 显示妙 ; [ +%T ]显示时:分:秒 ; 
 
-  
[ history ]
- 管理/调用曾经执行过的命令,记录1000条命令。 - [ history ] : 查看历史命令列表。
- [ history -c ] : 清空历史命令。
- [ history -w ] : 记录历史命令为空的状态。
- [ !n ] : n 代表任意数字,把历史记录中编号为 n 的命令再执行一遍。
- [ !str ] : str 代表文字符或文字串,把历史记录中最近一次以 str 开头的历史命令。
 
[ du ]
-  统计目录占用硬盘空间。 -  [ -s ] : 只统计每个参数所占用的总空间大小。 
-  [ -h ] : 提供易读容量单位(K,M等)。 [ du -sh /root ] [ du -sh /etc ] 
 
-  
制作快捷方式(链接文件/符号链接)
软链接
- 若原始文件或目录被删除,则链接失效。
- 改快捷方式相当于改原文件/目录
- 可存在于不同的分区/文件系统。
- [ ln -s 原始文件/目录 链接文件 ]
- 红色快捷方式表示bug。正确的快捷方式是天青色。
硬链接
- 若原始文件或目录被删除,链接依然可用。
- 只能针对文件制作快捷方式,不支持支持跨分区。
- [ ln 原始文件/目录 链接文件 ]