目录

一、Linux中软件包的类型

二、软件包的名称结构

三、rpm命令管理软件包

四、本地软件仓库的搭建

1、系统软件仓库的作用是什么?

2、搭建方法

(1)在系统中加载安装系统时使用的安装镜像

(2)编写软件仓库文件

(3)测试软件源是否可以用

五、dnf软件管理命令

1、安装管理包

2、下载安装包

六、本章总结


一、Linux中软件包的类型

1、DEB                                     #Ubuntu  Debian

2、RPM                                    #Redhat Centos Fadora

3、bz2 | gz | xz                        #(1)绿色软件,可以直接使用

(2)需要源码安装,需要编译

注意:在RedHat8中只能使用绿色软件、源码编译软件和RPM软件

RPM软件安装命令:

rpm -ivh linuxqq_2.0.0-b2-1089_x86_64.rpm

这里以安装QQlinux为例,先下载下安装包,使用安装命令安装

压缩包软件安装命令:

tar jxf 压缩文件名

绿色软件(解压后就可以用)

源码编译软件(解压后需要系统编译后才能使用)

二、软件包的名称结构

[dhcp-server] - [4.3.6-30] . [el8] . [x86_64] . [rpm]
          1                      2            3             4            5
1.软件名称
2.软件版本
3.软件的授权协议版本
4.软件架构
5.软件类型后缀

三、rpm命令管理软件包

rpm                  -ivh                        ##安装参数组合 -i install -v verbose -h hash
                        -a                           ##所有
                        -f                            ##文件
                        -p                           ##软件包
                        -q                           ##查询
                        -l                            ##软件安装文件列表
                        -e                           ##卸载
                        -c                           ##配置文件
                        -d                           ##说明
                        --info                     ##软件信息
                        --force                   ##强制
                        --nodeps              ##忽略依赖性
                        --script                  ##查询软件在安装或卸载过程中的运行脚本
                        -Kv                        ##检测软件md5校验码
                        -V                          ##检测已安装软件在系统中的文件被修改信息

rpm命令下的许多参数不能单独使用,需要结合参数<-q>,<-qa>用来查询系统中所有已安装的软件,<-qf>查看文件属于哪个安装包,<-ql>查看已安装文件在系统中被包含在哪些路径

这里使用<-e>参数卸载了程序“Llinuxqq”,卸载完成后再次查询确认已经不存在这个程序了。使用<-qa>参数查询“ssh”属于哪个安装包,然后使用参数<-qc>查询这个安装包的配置文件;再使用<-qd>参数查询这个安装包的说明文件

info:使用参数<-q>和参数<--info>可以查询软件的详细信息(包括名称、版本、授权、安装日期等等)

--force:以强制安装为例,当已经安装的某些软件因为各种原因不能运行的时后,再次执行安装操作显示“软件已安装,无法再次安装”,这时就需要加上<--force>参数,再次强制执行安装操作重新安装软件。

--nodeps:忽略依赖性命令,在执行默认安装命令时,会遇到一些依赖性的错误导致无法完成安装,可以在安装命令的最后加上参数<--nodeps>,安装时会自动忽略依赖性关系,完成安装。

--script:可以查询软件在安装或卸载过程中的运行脚本。如果下载一个未知软件,可以先用此命令查看,确定运行不会对计算机造成损害后方可运行。

-Kv:检验文件/软件的md5校验码,原版文件如果没有改动的话,此命令校验可以通过,软件被改动后校验就不能通过,不能通过的软件一定不能安装。

-V:检测已安装软件在系统中的文件修改信息。如果哪一项发生改动,用此命令可以检查出来。这里修改了linuxqq的安装文件列表中的txt文件,再用此参数可以查到被改动的列表内容。

拆解安装包:

rpm2cpio    软件名   |   cpio   -id

这里对这个安装包拆解完以后,同一目录下会出现一个新的“usr”文件。

四、本地软件仓库的搭建

1、系统软件仓库的作用是什么?

答:在系统中对软件进行管理。rpm命令是不能解决依赖关系的,如果需要软件在安装过程中自动解决依赖关系,需要搭建系统软件仓库。

2、搭建方法

(1)在系统中加载安装系统时使用的安装镜像

注意:为了不更改主机的配置,这部操作在虚拟机westosb中进行。

先在虚拟机westosb中根目录下创建两个文件夹<iso>和<sourcedir>,分别用来存储系统镜像及解压后文件。

然后使用<mount>命令将镜像文件挂载在指定目录,<mount>用法如下:

mount rhel-8.2-x86_64-dvd.iso /sourcedir/

(2)编写软件仓库文件

/etc/yum.repos.d/                ##软件源指向文件配置目录,在此目录中不能有无法访问的源指向(也就是说这个目录下的每个文件都不是多余的)
vim /etc/yum.repos.d/xxxx.repo                ##软件仓库指向文件

在软件源配置目录中新编写一个指向文件,文件后缀名必须是<.repo>,编辑此文件时需要做如下设置,其中“name”表示设置的源名称(可随意);“baseurl”指向的路径为镜像解压后的<AppStream>目录,<gpgcheck=0>表示跳过授权检测,<gpgkey>表示系统中的授权密钥,<enable>可选择设置,不写时默认为1,表示启用此软件源,设置为0时表示不启用此软件源。下边的<BaseOS>同理。

[AppStream]
name=westosa AppStream
baseurl=file:///sourcedir/AppStream
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-REDHAT-RELEASE
enable=1[BaseOS]
name=westosa
baseurl=file:///sourcedir/BaseOS
pgcheck=0

设置完成后,系统的软件源就算设置好了。

到了这里还存在一个问题,就是镜像不能自动挂载在目录</sourcedir/>中,所以需要写一个开机自动运行的命令脚本,让每次开机时自动执行挂载命令。

通过vim命令编辑开及运行脚本文件,文件中的命令会在开机时自动执行,命令如下:

vim /etc/rc.d/rc.local 

然后在文件中加入如下命令:(还要赋予这个文件的可执行权限)

mount /iso/rhel-8.2-x86_64-dvd.iso  /sourcedir/

(3)测试软件源是否可以用

使用命令< dnf install gcc -y>安装一个<gcc>命令,左边为配置好的虚拟机westosa,右边为没有配置的虚拟机westosb,可以看到左边安装成功,右边安装失败了。

五、dnf软件管理命令

1、安装管理包

dnf           repolist                         ##列出仓库信息
                clean all                        ##清除系统中已经加载的仓库缓存信息 /var/cache/dnf
                list all                            ##列出所有软件
                list available                  ##列出未安装软件
                list installed                   ##列出已安装软件
                install                            ##安装
                remove                          ##卸载
                reinstall                          ##重新安装
                search                           ##搜索
                whatprovides                 ##搜索包含文件的软件包
                history                            ##dnf执行历史
                history info                     ##dnf执行历史详细信息
                group list                        ##列出软件组
                group list --installed       ##列出已安装软件组
                group list --available      ##列出未安装软件组
                group list --hidden          ##列出隐藏软件组
                group install                   ##安装软件组
                group info                      ##查看软件组信息

这部分涉及到的图片太多,后续在复习的时后再贴出来。

2、下载安装包

镜像仓库中含有的软件源数量不多,所以需要再配置一个网络源。一般常用的网络软件源仓库为epel。下面介绍安装此网络软件源仓库的命令。

#下载软件源的文件

wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

#安装软件源
dnf install epel-release-latest-8.noarch.rpm

#查看软件仓库信息
dnf repolist epel

#查看所有软件源的配置文件
ls /etc/yum.repos.d/

安装完成后可以看到目录</etc/yum.repos.d/>下多了许多<.repo>即网络源的指向文件,就是新安装的软件源。

以搜索<kolourpaint>软件为例,先切换到root用户下,然后使用dnf命令的<search>参数搜索关键字。

接下来就可以使用使用dnf命令的<install>参数直接安装了,但直接安装的话系统中不会保存这个软件的安装包。

所以为了保存软件安装包,需要先安装一个插件,插件名为<yum-utils.noarch>,这个插件安装好以后,系统中就会出现一个新命令<yumdownloader>。

yumdownloader httpd                       #下载仓库中指定软件的安装包到当前目录

yumdownloader  --destdir=/mnt        #下载仓库中指定软件的安装包到指定的/mnt目录下

yumdownloader  httpd  --destdir=/mnt  --resolve                                                                                                                            #下载仓库中指定软件的安装包和软件依赖性到/mnt目录下

使用<yumdownloader>命令下载的文件默认保存在当前shell所在目录下。

yumdownloader kolourpaint.x86_64

使用<yumdownloader --destdir=/mnt 软件名>可以将软件下载到指定到目录下。

yumdownloader --destdir=/mnt  kolourpaint.x86_64

但是这样仍然存在一个问题,就是下载软件时只是下载了软件本身,软件安装过程中可能会需要一些依赖性文件,这些依赖性文件缺失的话会对安装过程造成一定麻烦。所以为了解决这个问题,在下载软件的时候,需要连带软件依赖性也一起下载。

yumdownloader --destdir=/mnt httpd --resolve

可以看到加上<--resolve>参数后,在下载软件时会连带这个软件所需要的依赖性文件全部下载到指定目录下。

六、本章总结

~~~~~~~~~~~想到了再说,未完待续~~~~~~~~~~~~~~

Part1.8——Linux系统中的软件管理相关推荐

  1. Linux系统中的软件管理

    Linux系统中的软件管理 1 Linux中软件包的类型 2 软件包的名称结构 3 rpm命令管理软件包 4 本地软件仓库的搭建 4.1 系统软件仓库的作用 4.2 搭建方法 5 dnf 软件管理命令 ...

  2. Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库

    Linux系统中的软件管理详解(下) 5.软件仓库管理命令 a)dnf 命令: 管理软件仓库中的安装包 dnf repolist ##列出仓库信息clean all ##清除系统中已经加载的仓库缓存信 ...

  3. 12.linux系统中的软件管理

    12.linux系统中的软件管理 1.Linux中软件包的类型 1.DEB UBlinux DEBlinux 2.RPM redhat centOS fadora 3.bz2|gz|xz 1)需要源码 ...

  4. 详解Linux系统中的软件管理及软件仓库

    目录 一.Linux中软件包的类型 二.软件包的名称结构 三.rpm命令管理软件包 四.本地软件仓库的搭建 五.dnf软件管理命令 总结 一.Linux中软件包的类型 DEB UEBlinux DEB ...

  5. RH124 第十二章 Linux系统中的软件管理

    RH124 第十二章 Linux系统中的软件管理 1.Linux中软件包的类型 1.DEB #UBlinux DEBlinux 2.RPM #redhat centOS fc 3.bz2|gz|xz ...

  6. 1-8 linux系统中的软件管理

    #### 1.Linux中软件包的类型 #### 1.DEB        #UBlinux DEBlinux 2.RPM         #redhat centOS fadora 3.bz2|gz ...

  7. Part1.4——Linux系统中的用户管理

    目录 一.用户及用户组存在的意义 1.用户存在的意义 2.用户组存在意义 三.用户切换 1.用户查看命令 2.用户切换 四.用户涉及到的系统配置文件 五.用户和用户组的建立及删除 1.建立监控用户操作 ...

  8. RH124-Linux系统中的软件管理

    Linux系统中的软件管理: 文章目录 Linux系统中的软件管理: 一.Linux系统中的软件包类型: 二.软件包的名称结构: 三.rpm命令管理软件包: 1.实验素材准备: 2.rpm命令: 四. ...

  9. Linux 系统中利用 apt-get 管理软件的安装目录和安装路径

    Linux 系统中利用 apt-get 管理软件的安装目录和安装路径 apt-get 下载软件存放路径: /var/cache/apt/archives lib 文件路径: /usr/lib 可执行文 ...

最新文章

  1. Laravel中使用模型对数据进行操作
  2. 计算机组成原理实验认识多思网络虚拟实验系统_3D全息投影,裸眼3D,全息互动投影系统...
  3. cocos2dx vs2010 配置
  4. (*长期更新)软考网络工程师学习笔记——Section 15 无线网络技术
  5. [react] 请说下react组件更新的机制是什么
  6. Chapter7-9_Deep Learning for Dependency Parsing
  7. 【JavaScript】将浮点数与整数分开
  8. javascript 应用_如何利用JavaScript的功能使您的应用脱机工作
  9. ArcGIS:ArcToolBox工具使用——提取DEM/DSM中的高程点
  10. 张勇云栖连讲三年,阿里云十年一剑,王者归来
  11. 文件分配表(File Allocation Table)入门
  12. agax分页查询必知知识,分页必须参数详解
  13. 流畅的Python(Fluent Python)
  14. MySQL中怎么对varchar类型排序问题(数字字符串和汉字拼音的顺序)
  15. 深圳赛意信息 怎么样_深圳鹏程整形医院怎么样_全新整形价目表_资质
  16. DBeaver21.1.5如何迁移已有数据库连接
  17. PBR渲染(四)——PBR头发渲染
  18. 简体繁体转换功能php,PHP输出控制功能在简繁体转换中的应用
  19. 夏令营+预推免小结(中南 东南 浙大)
  20. 【第十七届智能车】智能车图像处理(2)-赛道边界的简单提取和无元素循迹

热门文章

  1. 人工智能入门从这里开始
  2. 免打轴~半自动制作文字类游戏视频的翻译字幕♥ || V1.1 ET/BT Python实例
  3. MySQL全局锁、表级锁、行级锁介绍演示(详细)
  4. 基于JSP实现(Web)企业公司管理系统【100010324】
  5. 特写 | 被银行降薪的“金融民工”
  6. Catia V5高级图片造型视频教程 IMA宝马造型教程
  7. textmate 主题_Stylelint + TextMate集成
  8. 存储器管理之分区存储管理
  9. SFP+;与XFP区别
  10. revit卸载/完美解决安装失败/如何彻底卸载清除干净revit各种残留注册表和文件的方法...