zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    2019年4月
    20190423
    20190419
    20190418
    20190417
    free命令详解(转载)
    https改造过程中的一个坑
    GitLab 实现代码自动部署(转载自https://segmentfault.com/a/1190000011561808)
    js和php写日历
    shell递归遍历目录的方法
  • 原文地址:https://www.cnblogs.com/zwj-linux/p/11643033.html
Copyright © 2011-2022 走看看