Linux的包管理工具介绍

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux的包管理工具介绍相关的知识,希望对你有一定的参考价值。

程序包管理:

将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而方便快捷地实现程序包的安装、卸载、查询、升级和校验等管理操作;


获取程序包的途径

(1)系统发版的光盘或官方的服务器;
CentOS镜像:
http://mirrors.aliyun.com
http://mirrors.sohu.com
http://mirrors.163.com

(2) 项目官方站点

(3) 第三方组织:
Fedora-EPEL
搜索引擎:
http://pkgs.org
http://rpmfind.net
http://rpm.pbone.net

(4) 自己制作


CentOS系统上rpm命令管理程序包:

功能:安装、卸载、升级、查询、校验、数据库维护


安装

格式:rpm -i[option] PACKAGE_FILE
选项:
     -i:表示install安装
     -v -vv:表示显示安装过程,后者显示更加详细;
     -h:以#号显示进度条格式;
     –nodeps:忽略依赖关系
     –force:强制动作,注意安装成功后可能不能运行;
     –test:测试安装,作为测试检查
     –nosignature:不检查签名就是来源合法性;
     –nodigest:不检查包完整性;MD5头;



升级

格式: rpm -U|F[optIon] PACAGE_FILE  
选项:
     -U:表示不管软件事先是否存在都要升级,存在就升级,不存在就安装;
     -F:表示软件软件存在就升级,如何不存在,就放弃升级;
     -oldpackage:降级,如果升级之后发现有Bug或者兼容性问题,可以使用此选项回滚到升级前的版本;
     -force:强制动作,注意安装成功后可能不能运行;
     -replacepkgs:注意不能替换配置文件;
     注意:
        (1)不要对kernel做升级操作;支持多kernel并存;可以直接安装;
        (2)修改过的配置升级不会覆盖,升级同新文件,会重命名为file.rpmnew


查询:

格式:rpm -q[option] [PACKAGE-NAME|PACKAGE_FILE]
选项:
     -qa:查询系统所有已安装的程序包;
     -qf /path/to/file:查询文件是由那个程序包生成;
     -ql:查询程序生成的文件:
     -qi:查询程序属性信息;
     -qc:查询程序配置文件;
     -qd:查询程序提供的文档
     -q -whatprovides CAPABILITY(功能):查询这种CAPABILITY由那个程序提供;
     -q -whatrequires CAPABILITY:查询这种CAPABILITY被哪些程序包依赖;
     -q -scripts:查询程序包生成的脚本;
     -q -changelog:查询软件历史
     查询未安装的软件包信息,需要加-p选项跟上面的选项结合使用,后面的参数必须是PACKAGE_FILE;
     列如:
        -qpi:查询指定PACKAGE_FILE的程序属性信息;

       


卸载

格式:rpm -e[option] PACKAGE-NAME
选项:
     -vh:显示过程
     -nodeps:忽略依赖
     -noscripts:忽略脚本
     -allmatches:卸载所有匹配指定名称的程序包,也就是说卸载软件名称中包含此名称的所有包;
     -test:测试检查卸载,不是真卸载
 注意:
     卸载会检查依赖关系,如果卸载的软件被其他程序依赖,请谨慎卸载,否则导致其依赖程序无法运行;

 

 

 

校验

工作原理:校验检查的是软件包来源的合法性和完整性,要想对它们校验检查,必须要有校验机制,这种机制是根据签名和加密实现的,通常发行版的光盘中会有一个包含所有软件特征码的文件,特征码是根据软件包特征提取的,通过单项加密实现的用来校验软件包的完整性,如果软件包在获取途中被修改,在系统中再次提取软件包特征码,跟系统已有的特征码文件比对,不同则判断被攥该,修改过的软件包,根据相同的加密算法提取的特征肯定不同;来源合法性是根据签名实现的;特征码文件被称为公钥;校验是由校验程序完成的,默认rpm命令安装时会调用;
公钥获取:
      官方网站
      系统光盘
      系统配置文件中,这是系统在安装时从安装光盘复制进去的
        系统公钥位置:/etc/pik/rpm-gpg/RPM-GPG-KEY-CentOS-7
导入公钥:
        rpm –import /path/to/pub.key
校验软件:
         rpm -V PACKAGE-NAME:校验安装文件自安装后是否被修改过,根据PMS记录信息判断;
         rpm -K PACKAGE_FILE:对指定未安装的软件包进行手工校验;


数据库重建

默认数据库目录位置:/var/lib/rpm
语法格式:
       rpm –initdb :初始化数据库
       rpm –rebuilddb :重新构建
       –dbpath=/path/ :指定数据库创建位置;



以上是关于Linux的包管理工具介绍的主要内容,如果未能解决你的问题,请参考以下文章

massCode 一款优秀的开源代码片段管理器

Linux 包管理工具之Yum

源代码管理工具GitHub介绍

源代码管理工具GitHub介绍

源代码管理工具——github介绍

介绍源代码管理工具-GitHub