#软件管理

#软件管理
###1. 获取程序包的途径
系统发行版的光盘或官方的服务器
http://mirrors.aliyun.com
http://mirrors.sohu.com
http://mirrors.163.com
项目官方站点
第三方组织
Fedora-EPEL(推荐)
搜索引擎:
http://pkgs.org
http://rpmfind.net
http://rpm.pbone.net
自己制作
###2. 软件包管理器的职责
将二进制程序,库文件,配置文件,帮助文件打包成一个文件;
安装软件时按需将二进制文件,库文件,配置文件,帮助文件放到相应的位置;
生成数据库,追踪所安装的每一个文件;
软件卸载时根据安装时生成的数据库将对应的文件删除
###3. 软件包管理器的核心功能
制作软件包
安装软件
卸载软件
升级软件
查询软件
校验软件
###4. 软件包管理
程序的组成清单(每个包独有)
文件清单
安装或卸载时运行的脚本
数据库(公共)
程序包名称及版本
依赖关系
功能说明
安装生成的各文件的文件路径及校验码信息
###5. 软件包分类

  • 源码格式(需要编译,也叫定制)
    命名方式:name-VERSION.tar.gz
    VERSION:major.minor.release
    ###6. 软件包管理工具
  • 分类:
    前端工具,常用的前端工具有以下这些:
  • yum
  • apt-get
  • zypper (suse上的rpm前端管理工具)
  • dnf(Fedora 22+ rpm前端管理工具)
    后端工具,常用的后端工具有以下这些:
  • rpm
  • dpt
    注意:
    前端工具是依赖于后端工具的
    前端工具是为了自动解决后端工具的依赖关系而存在的
    ###7. 软件安装方式
    通过前端工具安装
    通过后端工具安装
    编译安装
    ###8. rpm包命名规范
  • 包的组成
    主包:bind-9.7.1-1.el5.i586.rpm
    子包:bind-libs-9.7.1-1.el5.i586.rpm bind-utils-9.7.1-1.el5.i586.rpm
  • 包名格式
    name-version-release-arch.rpm
    bind-major.minor.release-release.arch.rpm
  • 包名格式说明
    major(主版本 ):重大改进
    minor(次版本 ):某个子功能发生重大变化
    release(发行 ):修正了部分bug,调整了一点功能

–test: 测试安装,但不真正执行安装过程

–nodeps: 忽略依赖关系

–replacepkgs: 重新安装,替换原有安装

–oldpackage: 降级

–force: 强行安装,可以实现重装或降级

–nodigest: 不检查包的完整性

–noscripts: 不执行程序包脚本片断
%pre:安装前脚本 –nopre
%post:安装后脚本 –nopost
%preun:卸载前脚本 –nopreun
%postun:卸载后脚本 –nopostun
//安装软件包, 需要指定软件包绝对路径
[root@localhost ~]# rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
[root@localhost ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm

//在软件包所在目录下可以不指定绝对路径
[root@localhost ~]# cd /mnt/Packages/
[root@localhost Packages]# rpm -ivh zsh-5.0.2-28.el7.x86_64.rpm

//测试一个软件包是否能在该系统上安装
[root@localhost ~]# rpm -ivh –test /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm

//如果软件包存在, 强制再次安装
[root@localhost ~]# rpm -ivh –force /mnt/Packages/tree-1.5.3-3.el6.x86_64.rpm

rpm -qpi /PATH/TO/PACKAGE_FILE //查询指定未安装包的说明信息
rpm -qpl /PATH/TO/PACKAGE_FILE //查询未安装的软件包会产生哪些文件
//查询httpd这个rpm包是否安装

//模糊查找系统已安装的rpm包

//查询httpd软件包的相关信息

//查询rpm包所安装的文件

//查询rpm包相关的配置文件

//查询配置文件或命令来自于哪个rpm包

//查询未安装的软件包会产生哪些文件

//查询未安装的软件包会产生哪些文件

###9.4 RPM包升级
rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE //如果装有老版本的,则升级;否则,则安装
rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE //如果装有老版本的,则升级;否则,退出
–oldpackage:降级

升级注意事项:

不要对内核做升级操作
Linux支持多内核版本并存,因此,可直接安装新版本内核
如果原程序包的配置文件安装后曾被修改,升级时,新版本提供的同一个配置文件并不会直接覆盖老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留
###9.5 RPM包卸载
//语法:rpm -e PACKAGE_NAME

//先查询, 然后卸载

注意:如果其他包依赖于要卸载的包,这个被依赖的包是无法卸载的,除非强制卸载,强制卸载后依赖于这个包的其他程序将无法正常工作
#yum工具的使用
###1. rpm的弊端
前面我们讲了下rpm,那么rpm有什么弊端呢弊端是显而易见的,当用rpm安装软件时,若遇到有依赖关系的软件,必须先安装依赖的软件才能继续安装我们要安装的软件,当依赖关系很复杂的情况下,这种安装方式就很让人头疼,所以我们需要另一种安装方式来解决这个问题,今天我们要来学习的就是这样一个工具–yum
###2. yum的优劣势
yum有什么优势呢um最大的优势就是能够解决rpm的依赖问题,yum能够自动解决软件安装时的依赖关系。
当然了,有优势就有劣势,人无完人嘛,软件也是一样的,yum的缺陷就是如果在未完成安装的情况下强行中止安装过程,下次再安装时将无法解决依赖关系,Fedora22+、redhat7和centos7等可以通过手动安装dnf工具来解决此问题。
dnf是redhat7上用来代替yum的一个工具,其存在的意义就是处理yum的缺陷,但其用法与yum是完全一样的,甚至连选项都是一样的,你可以理解为dnf就是yum,只是换了个名字而已。所以说只要学会了yum就自然会dnf,大家不用担心学了yum又要去学dnf之类的问题
###3. 什么是yum及其作用
那么什么是yum呢um是yellowdog update manager的简称,它能够实现rpm管理的所有操作,并能够自动解决各rpm包之间的依赖关系。yum是rpm的前端工具,是基于rpm来实现软件的管理的一个工具。
你不能用yum去管理windows的exe程序包,也不能用yum去管理ubuntu的deb程序包,只能用yum来管理redhat系列的rpm包
###4. 挂载光盘
插入光盘
执行以下命令

###5. yum的原理
yum的工作需要两部分来合作,一部分是yum服务器,另一部分就是client的yum工具。下面分别介绍两部分工作原理。

  • yum服务器端工作原理
    所有要发行的rpm包都放在yum服务器上以提供别人来下载,rpm包根据kernel的版本 ,cpu的版本 分别编译发布。yum服务器只要提供简单的下载就可以了,ftp或者http的形式都可以。yum服务器有一个最重要的环节就是整理出每个rpm包的基本信息,包括rpm包对应的版本 、conf文件、binary信息,以及很关键的依赖信息。在yum服务器上提供了createrepo工具,用于把rpm包的基本概要信息做成一张“清单”,这张“清单”就是描述每个rpm包的spec文件中信息。

  • 声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年7月2日
下一篇 2022年7月2日

相关推荐