Linux下rpm、yum和源码三种安装方式简介

Linux下rpm、yum和源码三种安装方式简介

1、源码安装

源码安装优点

1、文档齐全

2、因为可以定位到代码,所以debug方便

3、本机兼容性最好(由于是本机编译的,只要编译通过,就没有各种库的依赖的问题)

源码包安装详解

卸载

        通过源码包安装的软件,当你想要卸载的时候,只需要把整个安装路径删除掉就行了,100%卸载,不会像windows那样经常会残留那多注册表之类的垃圾。

        根据你的安装时候选择的安装路径,源码包的卸载又仓库两种情况:

        如果你安装时候指定的路径为: --prefix=/usr/local/XXX,那么卸载的时候只需要把XXX这个文件夹删除即可,因为该软件安装的所有文件都是放置在XXX这个文件夹。

        但如果你进行源码包安装的时候没有指定位置(默认值一般为/usr/local/),或指定的位置为--prefix=/usr/local,则这时候你安装软件生成的文件将分别存储在/usr/local/里面的bin、lib或ect等目录中,这时候卸载起来就相对麻烦一点了


2、RPM包安装

  RPM命名“RedHat Package Manager”,简称则为RPM。这个机制最早由Red Hat这家公司开发出来的,后来实在很好用,因此很多distributons就使用这个机制来作为软件安装的管理方式,包括Fedora,CentOS,SuSE等知名的开发商都是用它。

        RPM最大的特点就是需要安装的软件已经编译过,并已经打包成RPM机制的安装包,通过里头默认的数据库记录这个软件安装时需要的依赖软件。当安装在你的Linux主机时,RPM会先依照软件里头的数据查询Linux主机的依赖属性软件是否满足,若满足则予以安装,若不满足则不予安装。

命名规则

软件名称-版本号-发布次数.适合linux系统.硬件平台.rpm

对于一个rpm包来说,都是有"-"和"."构成的,基本上有以下几部分组成:

* 包名 *版本信息 * 发布版本号 * 运行平台,当出现noarch,代表的是软件可以平台兼容

RPM优缺点

优点:

1)软件已经编译打包,所以传输和安装方便,让用户免除编译

2)在安装之前,会先检查系统的磁盘、操作系统版本等,避免错误安装

3)软件的信息都已经记录在linux主机的数据库上,方便查询、升级和卸载

缺点:

1)软件包安装的环境必须与打包时的环境一致或相当

2)必须安装了软件的依赖软件

3)卸载时,最底层的软件不能先移除,否则可能造成整个系统不能用

RPM安装原理图

 常用用法

2.1.1 安装

rpm -i 需要安装的包文件

rpm -iv 需要安装的包文件(显示安装详情)

rpm -ivh 需要安装的包文件(显示安装详情及进度)

2.1.2 升级

rpm -U 需要升级的包文件

rpm -Uvh 需要升级的包文件(显示升级详情及进度)

2.1.3 卸载

rpm -e 需要卸载的软件包

注:如果其他程序依赖要卸载的包,系统会提示不能删除,若需要强行删除加上--nodeps,

会强制删除,但可能导致依赖于它的软件不能运行。

2.1.4 查看已安装

rpm -qa

2.1.5 查看指定包

rpm -qa | grep "软件或者包的名字"


3、yum安装

        YUM可以看作是CS架构的软件,YUM的存在很好的解决了RPM的属性依赖问题。

        YUM通过依赖rpm软件包管理器, 实现了rpm软件包管理器在功能上的扩展, 因此YUM是不能脱离rpm而独立运行的。

YUM的特点

1)可以同时配置多个资源库(Repository)

2)简洁的配置文件(/etc/yum.conf)

3)自动解决增加或删除rpm包时遇到的依赖性问题

4)使用方便

5)保持与RPM数据库的一致性

   Server端先对程序包进行分类后存储到不同repository容器中; 再通过收集到大量的rpm的数据库文件中程序包之间的依赖关系数据, 生成对应的依赖关系和所需文件在本地的存放位置的说明文件(.xml格式), 存放在本地的repodata目录下供Client端取用

        Cilent端通过yum命令安装软件时发现缺少某些依赖性程序包, Client会根据本地的配置文件(/etc/yum.repos.d/*.repo)找到指定的Server端, 从Server端repo目录下获取说明文件xxx.xml后存储在本地/var/cache/yum中方便以后读取, 通过xxx.xml文件查找到需要安装的依赖性程序包在Server端的存放位置, 再进入Server端yum库中的指定repository容器中获取所需程序包, 下载完成后在本地实现安装。

   Server端先对程序包进行分类后存储到不同repository容器中; 再通过收集到大量的rpm的数据库文件中程序包之间的依赖关系数据, 生成对应的依赖关系和所需文件在本地的存放位置的说明文件(.xml格式), 存放在本地的repodata目录下供Client端取用

        Cilent端通过yum命令安装软件时发现缺少某些依赖性程序包, Client会根据本地的配置文件(/etc/yum.repos.d/*.repo)找到指定的Server端, 从Server端repo目录下获取说明文件xxx.xml后存储在本地/var/cache/yum中方便以后读取, 通过xxx.xml文件查找到需要安装的依赖性程序包在Server端的存放位置, 再进入Server端yum库中的指定repository容器中获取所需程序包, 下载完成后在本地实现安装。

 YUM原理图

        注意:YUM是一个在线软件管理工具,所以使用YUM进行的操作大都是需要在联网的条件下才能正常使用。

 

3.1 安装流程

1、安装: yum install 软件

2、升级: yum update 软件

3、删除: yum remove 软件

4、查看: yum info 软件

5、搜索软件: yum search 软件

6、查看依赖关系: yum deplist 软件

7、查看已安装软件: yum list installded

3.2  [选项] [参数]:

-e 静默执行

-t 忽略错误

-R[分钟] 设置等待时间

-y 自动应答yes

check-update 检查可更新的包

clean all 清除全部

clean packages 清除临时包文件(/var/cache/yum 下文件)

clean headers 清除rpm头文件

clean oldheaders 清除旧的rpm头文件

deplist 列出包的依赖

list 可安装和可更新的RPM包

list installed 已安装的包

list extras 已安装且不在资源库的包

info 可安装和可更新的RPM包 信息

info installed 已安装包的信息(-qa 参数相似)

install[RPM包] 安装包

localinstall 安装本地的 RPM包

update[RPM包] 更新包

upgrade 升级系统

search[关键词] 搜索包

provides[关键词] 搜索特定包文件名

reinstall[RPM包] 重新安装包

repolist 显示资源库的配置

resolvedep 指定依赖

remove[RPM包] 卸载包

 

参考文档: https://www.cnblogs.com/gmlkl/p/9354254.html   https://www.jianshu.com/p/d021380f6d02

原文地址:https://www.cnblogs.com/zwj-linux/p/11643033.html