当前位置: 首页 > news >正文

【Linux】软件管理机制和软件安装

文章目录

  • 1. 软件管理器
    • 1.1 Linux的软件管理方式
    • 1.2 Linux的常见软件管理机制RPM和dpkg
  • 2. RPM
    • 2.1 rpm安装
    • 2.2 rpm升级与更新
    • 2.3 rpm查询
    • 2.4 rpm验证与数字签名
    • 2.5 rpm反安装与重建数据库
  • 3. YUM
    • 3.1 yum查询
    • 3.2 yum安装/升级
    • 3.3 yum删除
    • 3.4 yum的配置文件
    • 3.5 yum的软件群组功能
  • 4. SRPM
    • 4.1 安装srpm文件

1. 软件管理器

1.1 Linux的软件管理方式

  • Linux开发商先在固定的硬件平台和操作系统上,将需要安装或升级的软件编译好,并将与这个软件相关的所有文件打包成一个软件安装文件(这个软件安装文件中还包含了预先检测系统与依赖软件的脚本,并提供记录该软件提供的所有文件信息等)然后将这个软件安装文件发布。
  • 客户端获取该文件之后,仅需通过执行特定的命令来安装,该文件就会依照内部的脚本来检测依赖的辅助软件是否存在,若安装的环境符合要求,就会开始安装。安装完后还会将该软件的信息写入软件管理机制中,以便未来进行升级、删除等。

1.2 Linux的常见软件管理机制RPM和dpkg

软件管理机制使用命令在线升级功能发行商
RPMrpm、rpmbuildyumRed Hat/Fedora
DPKGdpkgaptDebian/Ubuntu

2. RPM

RPM:RedHat Package Manager,rpm是一种以数据库记录的方式,将所需的软件安装到Linux系统中的一套软件管理机制。

RPM要求要将安装的软件先编译过,并打包为RPM机制的文件,并通过打包好的软件里默认的数据库,记录该软件要安装的时候必须具备的依赖属性软件。

RPM属性依赖的解决方式:YUM在线升级

  • 发行商先将发布的软件放到yum服务器,然后分析这些软件的依赖属性问题,将这些信息(依赖项,以及所在的url)记录成一个表;
  • 客户端有软件安装需求时,会主动向yum服务器的软件源地址下载列表,然后与本机rpm数据库中已存在的软件数据相比较,从而一次性安装完所有具有依赖属性的软件。

2.1 rpm安装

P.S. 只有root才能执行rpm命令。

rpm -ivh [packageName]
-i : install的意思
-v : 查看详细安装信息
-h : 显示安装进度

安装完后,软件相关的信息会被写入/var/lib/rpm目录下的数据库文件中。

2.2 rpm升级与更新

-Uvh : 后接的软件若没有安装过,则直接安装;若之前有安装过旧版,则自动更新到新版
-Fvh : 若后接的软件未安装,则该软件不会被安装,即之后已安装的软件才会被升级

2.3 rpm查询

rpm查询是在/var/lib/rpm/下的数据库文件中进行查询的

rpm -qa-q : 仅查询,后接已安装的软件名称
-qa : 列出所有已安装的软件名称
-qi : 列出该软件的详细信息
-ql : 列出该软件所有的文件与目录所在完整文件名
-qc : 列出该软件的所有配置文件
-qd : 列出该软件的所有说明文件
-qR : 列出与该软件有关的依赖软件所含的文件
-qf : 后接文件名,找出该文件属于哪个已安装的软件

2.4 rpm验证与数字签名

验证(Verify)的作用方式是/var/lib/rpm/下的数据库内容与当前系统下所有安装的软件作对比,即若当有文件修改、或误删了某个文件,就可使用验证的功能来验证下原来的文件。

rpm -Va
-V : 后接软件名,若该软件所含的文件有修改才会显示
-Va : 列出目前系统上所有被修改过的文件
-Vp : 后接某个rpm文件的文件名,列出该软件内可能被修改过的文件
-Vf : 后接系统上的某个文件,显示该文件是否被修改过

示例:

[root@server8 rpm]# rpm -Vf /var/log/lastlog
.M....G..  g /var/log/lastlogS : file size differs,文件的大小是否被改变
M : mode differs,文件的类型或属性(rwx)是否被修改
5 : md5sum differs,md5校验值已不同
D : device major/minor number mis-match,设备的主/次代码已改变
L : 链接路径已改变
U : user ownership differs,文件的所属用户已改变
G : group ownership differ,文件所属用户组已改变
T : mtime differs,文件的mtime改变
P : capability differs,功能已改变c : config file, 配置文件
d : documentation,数据文件
g : ghost file,幽灵文件,通常是该文件不被某个软件所包含,较少发生
l : license file,许可证文件
r : readme,自述文件

数字签名,是用来检验软件来源的,当要安装一个rpm文件时:

  1. 先要安装原厂发布的公钥文件;
  2. 实际安装rpm软件时,rpm命令会读取rpm文件的签名信息,并与本机系统内的签名信息相比较;
  3. 若签名相同则予以安装,若找不到相关的签名信息时,则告警并停止安装。

以CentOs为例,CentOS使用的数字签名系统为GnuPG(GPG),GPG通过哈希运算,算出独一无二的数字签名或专属密钥。

# CentOS的数字签名位于的路径
[root@server8 rpm-gpg]# pwd
/etc/pki/rpm-gpg
[root@server8 rpm-gpg]# ll
总用量 12
-rw-r--r--. 1 root root 1683 914 2021 RPM-GPG-KEY-centosofficial
-rw-r--r--. 1 root root 1687 914 2021 RPM-GPG-KEY-centostesting
-rw-r--r--. 1 root root 1855 818 2021 RPM-GPG-KEY-redhat-release
[root@server8 rpm-gpg]# ll RPM-GPG-KEY-centosofficial
-rw-r--r--. 1 root root 1683 914 2021 RPM-GPG-KEY-centosofficial# 安装公钥文件
rpm --import RPM-GPG-KEY-centosofficial# 安装完后,密钥基本上都是使用pubkey作为软件的名称字段
[root@server8 rpm-gpg]# rpm -qa | grep -ai "pubkey"
gpg-pubkey-8483c65d-5ccc5b19# 可使用-qi查看该软件的信息

2.5 rpm反安装与重建数据库

反安装即将软件卸载,但要注意的是卸载的时候一定要由最上层往下解除

rpm -e [要删除的软件]# rpm重建数据库
rpm --rebuilddb

3. YUM

3.1 yum查询

yum [options] [查询工作选项] [相关参数]# options
-y : 当yum需等待使用者输入时,该选项可自动提供yes回应
--installroot=/some/path/ : 将该软件安装在/some/path/而不使用默认路径# [查询工作选项 ] [相关参数]
search : 查找某个软件名称或是描述的重要关键字
list : 列出目前yum管理的所有软件与版本,类似rpm -qa
info : 同上,类似rpm -qai
provides : 从文件中去查找软件,类似rpm -qf

3.2 yum安装/升级

yum [option] [安装与升级的工作选项] [相关参数]
# 选项与参数
install : 后接要安装的软件
update : 后接要升级的软件,若要升级整个系统,则不接参数直接update

3.3 yum删除

yum remove [要删除的软件]

3.4 yum的配置文件

yum的配置文件存放在/etc/yum.repos.d/路径下,文件的后缀为.repo

[root@server8 yum.repos.d]# cat CentOS-Linux-BaseOS.repo
# CentOS-Linux-BaseOS.repo
#
# The mirrorlist system uses the connecting IP address of the client and the
# update status of each mirror to pick current mirrors that are geographically
# close to the client.  You should use this for CentOS updates unless you are
# manually picking other mirrors.
#
# If the mirrorlist does not work for you, you can try the commented out
# baseurl line instead.[baseos]
name=CentOS Linux $releasever - BaseOS
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=BaseOS&infra=$infra
#baseurl=http://mirror.centos.org/$contentdir/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

文件内容说明:

[base] : 软件源名字,中括号一定要存在,名字可以自己取,但不能有两个相同的软件源名称,否则yum会不知道该到哪里去找软件源相关的软件列表
name : 仅说明该软件源的意义,重要性不高
mirrorlist= : 列出该软件源可使用的镜像站,若不想使用可直接注释掉
baseurl= : 最重要,后接软件源实际地址。mirrorlist是由yum程序去识别镜像站;baseurl则是指定固定一个软件源url
enable=1 : 启用该软件源
gpgcheck=1 : 数字签名,指定是否需要查看rpm文件内的数字签名
gpgkey= : 数字签名的公钥文件所在位置,使用默认值即可

关于软件源:

# 列出当前yum服务器所使用的软件源
yum repolist all
# 回显内容一共有三列
# 列1 : repoid 
# 列2 : repo name
# 列3 : status , 表示该软件源是否正常运行

修改软件源:

# 例如将yum源替换为国内源
# 先备份原始yum源文件
mkdir repoBak
cp -r *.repo repoBak
# 删除原来的repo文件,或者将其置为enable=0
# 下载国内源(阿里)的配置文件
sudo wget -O /etc/yum.repos.d/CentOS-Base-Ali.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
# P.S. Cetnos-8.repo已停止维护,使用Centos-vault-8.5.2111.repo# 清理yum缓存.更换yum源之后需要清理原有缓存,以便使用新的源进行软件包更新
yum clean all
yum makecache

新建.repo文件。

3.5 yum的软件群组功能

yum [群组功能] [软件群组]
# 选项与参数
grouplist : 列出所有可使用的【软件群组组】
groupinfo : 后接group name,则可了解该group内含的所有软件名
groupinstall : 可安装一整组的软件群组
groupremove : 删除某个软件群组

4. SRPM

srpm文件是包含了软件源码的。srpm最大的优点就是可以让用户自行修改设置参数(makefile/configure的参数),以符合用户自己的Linux环境。

4.1 安装srpm文件

rpmbuild命令用于安装srpm文件。使用默认值安装srpm文件:

--rebuild : 该选项会见过后跟的srpm进行编译和打包,最后产生rmp文件,但产生的rpm文件并未安装到系统上
--recompile : 这个选项会直接编译、打包并安装

相关文章:

  • 软件测试--自动化测试1
  • 【操作系统原理02】进程的描述与控制
  • 基于机器学习 LSTM 算法的豆瓣评论情感分析系统
  • matlab论文图一的地形区域图的球形展示Version_1
  • 【Matlab】中国东海阴影立体感地图
  • 梅施CPQ + AI:开启智能AI与报价软件的新潮流
  • 大模型Rag - 文本分块
  • libevent的bufferevent测试用例和使用方法(附带源码)
  • 腾讯wxg企业微信 后端开发一面
  • 基于Ubuntu2504部署OpenStack E版
  • uv:重新定义Python开发效率的下一代工具链
  • GNU,GDB,GCC,G++是什么?与其他编译器又有什么关系?
  • Android TTY设备调用流程和简单分析
  • Vue3 本地打包启动白屏解决思路!! !
  • Springboot+vue3开发项目——热点事件
  • YOLO拓展-NMS算法
  • Dijkstra 算法
  • 用usb网卡 虚拟机无法开到全双工的解决办法
  • 时态--06--现在完成時
  • jmeter中文乱码问题解决
  • 成都一医院孕妇产下七胞胎?涉事医院辟谣:信息不实已举报
  • 遭遇FIFA三个转会窗禁令,申花有苦难言将选择赔偿
  • 外交部回应美新任驻日大使涉华言论:外交官的职责不应是抹黑别国、煽动对抗
  • 江西修水警方:一民房内发生刑案,犯罪嫌疑人已被抓获
  • 俄总统新闻秘书:乌克兰问题谈判相当艰难
  • 巨能吃辣和一点辣都不能吃,哪种人的体质更牛?