1. Linux 界的两大主流: RPM 与 DPKG

    • distribution 代表 软件管理机制 使用指令 在线升级机制(指令)
      Red Hat/Fedora RPM rpm, rpmbuild YUM (yum)
      Debian/Ubuntu DPKG  dpkg APT (apt-get)

        

  2. RPM与SRPM
    1. RPM 是以一种数据库记录的方式来将你所需要的软件安装到你的 Linux 系统的一套管理机制。
      1. 优点:
        1. 由于已经编译完成并且打包完毕,所以软件传输与安装上很方便 (不需要再重新编译);
        2. 由于软件的信息都已经记录在 Linux 主机的数据库上,很方便查询、升级与反安装
      2. 问题:
        1. 软件档案安装的环境必须与打包时的环境需求一致或相当;
        2. 需要满足软件的相依属性需求;
        3. 反安装时需要特别小心,最底层的软件不可先移除,否则可能造成整个系统的问题!
    2. SRPM(Source RPM)所提供的软件内容『并没有经过编译』, 他提供的是原始码。通常 SRPM 的扩展名是以 ***.src.rpm 这种格式来命名的。
      1. 先将该软件以 RPM 管理的方式编译,此时 SRPM 会被编译成为 RPM 档案;
      2. 然后将编译完成的 RPM 档案安装到 Linux 系统当中
  3. 什么是 i386, i586, i686, noarch, x86_64
    1. rp-pppoe-3.1-5.i386.rpm----档案的意义
      1. rp-pppoe - 3.1 -   5 .i386 .rpm
        软件名称 软件的版本信息 释出次数  适用的平台 扩展名
  4. RPM 是透过预先编译并打包成为 RPM 文件格式后,再加以安装的一种方式,并且还能够进行数据库的记载。所以 RPM 有以下的优点:
    1. RPM 内含已经编译过的程序与配置文件等数据,可以让用户免除重新编译的困扰;
    2. RPM 在被安装之前,会先检查系统的硬盘容量、操作系统版本等,可避免档案被错误安装;
    3. RPM 档案本身提供软件版本信息、相依属性软件名称、软件用途说明、软件所含档案等信息,便于了解软件;
    4. RPM 管理的方式使用数据库记录 RPM 档案的相关参数,便于升级、移除、查询与验证。
  5. RPM 软件管理程序: rpm
    1. 利用RPM安装的软件相关的信息会被写入 /var/lib/rpm/ 目录下的数据库档案中
    2. RPM 安装 (install)
      1. rpm -ivh package_name
        1. -i :install 的意思
        2. -v :察看更细部的安装信息画面
        3. -h :以安装信息列显示安装进度
    3. RPM 升级与更新 (upgrade/freshen)
      1. rpm -[UF]vh package_name
        1. -Uvh:后面接的软件即使没有安装过,则系统将予以直接安装;若后面接的软件有安装过旧版,则系统自动更新至新版;
        2. -Fvh:如果后面接的软件并未安装到你的 Linux 系统上,则该软件不会被安装;亦即只有已安装至你 Linux 系统内的软件会被『升级』!
    4. RPM 查询 (query)
      1. rpm -qa <==已安装软件
      2. rpm -q[licdR] 已安装的软件名称 <==已安装软件
      3. rpm -qf 存在于系统上面的某个文件名 <==已安装软件
      4. rpm -qp[licdR] 未安装的某个文件名 <==查阅RPM档案
        1. 查询已安装软件的信息:
        2. -q :仅查询,后面接的软件名称是否有安装;
        3. -qa :列出所有的,已经安装在本机 Linux 系统上面的所有软件名称;
        4. -qi :列出该软件的详细信息 (information),包含开发商、版本与说明等;
        5. -ql :列出该软件所有的档案与目录所在完整文件名 (list);
        6. -qc :列出该软件的所有配置文件 (找出在 /etc/ 底下的档名而已)
        7. -qd :列出该软件的所有说明文件 (找出与 man 有关的档案而已)
        8. -qR :列出与该软件有关的相依软件所含的档案 (Required 的意思)
        9. -qf :由后面接的文件名,找出该档案属于哪一个已安装的软件;
        10. 查询某个 RPM 档案内含有的信息:
        11. qp[icdlR]:注意 -qp 后面接的所有参数与上面的说明一致。但用途仅在于找出某个 RPM 档案内的信息,而非已安装的软件信息!注意!
    5. RPM 验证与数字签名 (Verify/signature)
      1. 作用的方式是『使用 /var/lib/rpm 底下的数据库内容来比对目前 Linux 系统的环境下的所有软件档案 』也就是说,当你有数据不小心遗失, 或者是因为你误杀了某个软件的档案,或者是不小心不知道修改到某一个软件的档案内容, 就用这个简单的方法来验证一下原本的文件系统吧!
      2. rpm -Va
      3. rpm -V 已安装的软件名称
      4. rpm -Vp 某个 RPM 档案的档名
      5. rpm -Vf 在系统上面的某个档案
        1. -V :后面加的是软件名称,若该软件所含的档案被更动过,才会列出来;
        2. -Va :列出目前系统上面所有可能被更动过的档案;
        3. -Vp :后面加的是文件名,列出该软件内可能被更动过的档案;
        4. -Vf :列出某个档案是否被更动过~
      6. 例:[root@www ~]# rpm -Vf /etc/crontab
        1. ..5....T c /etc/crontab
        2. 前面的八个信输出说明:
          1. S :(file Size differs) 档案的容量大小是否被改变
          2. M :(Mode differs) 档案的类型或档案的属性 (rwx) 是否被改变?如是否可执行等参数已被改变
          3. 5 :(MD5 sum differs) MD5 这一种指纹码的内容已经不同
          4. 5 :(MD5 sum differs) MD5 这一种指纹码的内容已经不同
          5. L :(readLink(2) path mis-match) Link 路径已被改变
          6. U :(User ownership differs) 档案的所属人已被改变
          7. G :(Group ownership differs) 档案的所属群组已被改变
          8. T :(mTime differs) 档案的建立时间已被改变
        3. 第九个字段说明:
          1. c :配置文件 (config file)
          2. d :文件数据文件 (documentation)
          3. g :鬼档案~通常是该档案不被某个软件所包含,较少发生!(ghost file)
          4. l :许可证文件 (license file)
          5. r :自述文件 (read me)
    6. 数字签名 (digital signature)
      1. 当你要安装一个 RPM 档案时:
        1. 首先你必须要先安装原厂释出的公钥档案;
        2. 实际安装原厂的 RPM 软件时, rpm 指令会去读取 RPM 档案的签章信息,与本机系统内的签章信息比对,
        3. 若签章相同则予以安装,若找不到相关的签章信息时,则给予警告并且停止安装喔。
      2. 安装原厂释出的 GPG 数字签名的公钥档案
        1. locate GPG-KEY或find /etc -name '*GPG-KEY*'  --------查找
        2. rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 ---------安装
    7. RPM 反安装与重建数据库 (erase/rebuilddb)
      1. rpm -e package_name ------删除某个软件
      2. rpm --rebuilddb  ------<==重建数据库
  6. SRPM 的使用 : rpmbuild
    1. 利用默认值安装 SRPM 档案 (--rebuid/--recompile)
      1. rpmbuild [--rebuild --recompile] SRPM包
        1. --rebuild:『编译』与『打包』的动作,最后会产生 RPM 的档案。
        2. --recompile:『编译』『打包』并且『安装』
    2. SRPM 使用的路径与需要的软件 -----需要安装rpm-build-4.2-0.69.i386.rpm包-------806
    3. 打包自己的RPM软件------------811
  7. 利用 yum 进行查询、安装、升级与移除功能
    1. yum [option] [查询工作项目] [相关参数] 选项
      1. [option]:主要的选项,包括有:
        1. -y :当 yum 要等待用户输入时,这个选项可以自动提供 yes 的响应;
        2. --installroot=/some/path :将该软件安装在 /some/path 而不使用默认路径
      2. [查询工作项目] [相关参数]:这方面的参数有:
        1. search :搜寻某个软件名称或者是描述 (description) 的重要关键字;
        2. list :列出目前 yum 所管理的所有的软件名称与版本,有点类似 rpm -qa;
        3. info :同上,不过有点类似 rpm -qai 的执行结果;
        4. provides:依档案去搜寻软件!类似 rpm -qf 的功能!
      3. 列出目前服务器上可供本机进行升级的软件有哪些?
        1. [root@www ~]# yum list updates
    2. 安装/升级功能:yum [install|update] 软件
      1. yum [option] [查询工作项目] [相关参数]
        1. install :后面接要安装的软件!
        2. update :后面接要升级的软件,若要整个系统都升级,就直接 update 即可
    3. 移除功能:yum [remove] 软件
      1. yum remove pam-devel
    4. yum 的配置文件
      1. vi /etc/yum.repos.d/CentOS-Base.repo
      2. 内容说明:
        1. [base]:代表容器的名字!中刮号一定要存在,里面的名称则可以随意取。但是不能有两个相同的容器名称, 否则 yum 会不晓得该到哪里去找容器相关软件列表档案。
        2. name:只是说明一下这个容器的意义而已,重要性不高!
        3. mirrorlist=:列出这个容器可以使用的映射站台,如果不想使用,可以批注到这行;
        4. baseurl=:这个最重要,因为后面接的就是容器的实际网址! mirrorlist 是由 yum程序自行去捉映像站台, baseurl 则是指定固定的一个容器网址!当你要找容器所在网址时, 最重要的就是该网址底下一定要有个名为 repodata 的目录存在
        5. enable=1:就是让这个容器被启动。如果不想启动可以使用 enable=0 喔!
        6. gpgcheck=1:还记得 RPM 的数字签名吗?这就是指定是否需要查阅 RPM 档案内的数字签名!
        7. gpgkey=:就是数字签名的公钥文件所在位置!使用默认值即可
  8. 修改容器产生的问题与解决之道
    1. yum clean [packages|headers|all]
      1. packages:将已下载的软件档案删除
      2. headers :将下载的软件文件头删除
      3. all :将所有容器数据都删除!
  9. yum 的软件群组功能
    1. yum [群组功能] [软件群组]
      1. grouplist :列出所有可使用的『套件组』,例如 Development Tools 之类的;
      2. groupinstall:这个好用!可以安装一整组的套件群组,相当的不错用!
      3. groupremove :移除某个套件群组;
  10. 全系统自动升级
    1. vim /etc/crontab
    2. 0 3 * * * root /usr/bin/yum -y update

rpm 安装时常用的选项与参数说明

可下达的选项 代表意义
--nodeps

使用时机:当发生软件属性相依问题而无法安装,但你执意安装时

危险性: 软件会有相依性的原因是因为彼此会使用到对方的机制或功能,如果强制安装而不考虑软件的属性相依, 则可能会造成该软件的无法正常使用!

--replacefiles

使用时机: 如果在安装的过程当中出现了『某个档案已经被安装在你的系统上面』的信息,又或许出现版本不合的讯息 (confilcting files) 时,可以使用这个参数来直接覆盖档案。

危险性: 覆盖的动作是无法复原的!所以,你必须要很清楚的知道被覆盖的档案是真的可以被覆盖喔!否则会欲哭无泪!

--replacepkgs 使用时机: 重新安装某个已经安装过的软件!如果你要安装一堆 RPM 软件档案时,可以使用 rpm -ivh*.rpm ,但若某些软件已经安装过了, 此时系统会出现『某软件已安装』的信息,导致无法继续安装。此时可使用这个选项来重复安装喔!
--force  使用时机:这个参数其实就是 --replacefiles 与 --replacepkgs 的综合体!
--test 

使用时机: 想要测试一下该软件是否可以被安装到使用者的 Linux 环境当中,可找出是否有属性相依的问题。

范例为:rpm -ivh pkgname.i386.rpm --test

--justdb 使用时机: 由亍 RPM 数据库破损或者是某些缘故产生错误时,可使用这个选项来更新软件在数据库内的相关信息。
--nosignature 使用时机: 想要略过数字签名的检查时,可以使用这个选项。
--prefix 新路径 使用时机: 要将软件安装到其他非正规目录时。举例来说,你想要将某软件安装到 /usr/local 而非正规的/bin, /etc 等目录, 就可以使用『 --prefix /usr/local 』来处理了。
--noscripts

使用时机:不想让该软件在安装过程中自行执行某些系统指令。

说明: RPM 的优点除了可以将档案放置到定位之外,还可以自动执行一些前置作业的指令,例如数据库的初始化。 如果你不想要让 RPM 帮你自动执行这一类型的指令,就加上他吧!

linux RPM、YUM的更多相关文章

  1. Linux RPM、YUM、APT包管理工具

    ⒈rpm包的管理 1)介绍 rpm是一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中,它生成具有.RPM扩展名的文件,RPM是RedHat Package Manager(RedH ...

  2. Linux下常用的3种软件安装方式—rpm、yum、tar

    一:Linux源码安装    1.解压源码包文件    源码包通常会使用tar工具归档然后使用gunzip或bzip2进行压缩,后缀格式会分别为.tar.gz与.tar.bz2,分别的解压方式:   ...

  3. 8、Linux基础--rpm、yum、yum私有仓库、系统优化

    笔记 1.晨考 1.文件的三种时间属性,每一种时间属性在什么情况下改变 atime : 访问时间 mtime :修改时间 ctime :修改属性时间 2.权限的类型 可读(r, 4) 可写(w, 2) ...

  4. Linux软件包安装(rpm、yum、apt-get)

    转载自:https://blog.csdn.net/wzq__janeGreen_/article/details/81774924 rpm/yum适用于Redhat.CentOS.Suse等平台: ...

  5. Linux思维导图之rpm、yum、编译

    yum安装失败: 1.yum client 路径指向不正确:2.yum server 缓存未清理(yum clean all;yum makecache):3.网络不连通

  6. Linux RPM、TAR包管理

    一.RPM软件包命令的使用 RPM主要有5种基本操作模式:安装.卸载.刷新.升级及查询.下面分别介绍. 1.安装软件包 命令语法: rpm -ivh [RPM包文件名称] 命令中各参数的含义如下: - ...

  7. 程序包管理rpm、yum与简单编译安装程序

    Linux程序包管理 Linux中软件的安装主要有两种形式:一种是直接下载源代码包自行编译后安装,另一种直接获取rpm软件包进行安装. 程序的组成部分: 二进制程序:程序的主体文件,比如我们运行一个l ...

  8. CentOS系统程序包管理器【rpm、yum】

    将编译好的文件打包成一个或有限的几个文件,可用于实现便捷的安装.卸载.升级.查询,校验等程序管理. centos常用的程序管理器有rpm和yum rpm: redhat package manager ...

  9. CentOS 7上的程序管理:rpm、yum和源码编译安装

    简介 在Linux的早期时代(也许吧?我猜的.也可能是Unix.),想要在系统上安装一款应用程序,是比较复杂的.需要专业的人员自行获取程序的源代码,并且编译安装,这是非常的复杂且需要一定的专业功底的, ...

随机推荐

  1. HTML元素事件

    事件触发模型 简要说明 onclick 鼠标单击链接 ondbclick 鼠标双击链接 onmousedown 鼠标在链接的位置按下 onmmouseout 鼠标移出链接所在的位置 onmouseov ...

  2. Unity3d程序运行的时候在unity3d标志哪里进不去的原因

    我那个去,居然是有两个error..我郁闷了,unity编译器有error居然也能打包能apk.我真是醉了.搞了我几个小时.

  3. messagePaneHost

    Microsoft.Dynamics.Framework.UI.WinForms.Controls.MessageBarType messageBarType; super(); imageList ...

  4. (Hibernate进阶)Hibernate映射——一对一双向关联映射(六)

    上一篇博客我们介绍了一对一的单向关联映射,单向是指只能从人(Person)这端加载身份证端(IdCard),但是反过来,不能从身份证端加载人得信息.如图所示: 关键原因在于对象模型具有方向性: 单向: ...

  5. session的常用方法。

    void setAttribute(String attribute, Object value) 设置Session属性.value参数可以为任何Java Object.通常为Java Bean.v ...

  6. STL之序列容器deque

    首先看看deque的模板声明: template <class T,  class Alloc = allocator<T>>  // 原本还有个参数BufSize,现在新版本 ...

  7. myeclipse中将整块的代码所选中的代码左右移动的快捷键

    myeclipse中将整块的代码/所选中的代码左右移动的快捷键选择你要移动的代码,TAB 右移ctrl+TAB左移(我的使用Shift+TAB管用)要是不使用快捷键就是:选中代码,点击右键选中Shif ...

  8. 在linux下写一只优雅的爬虫---优雅的获取沈航所有学生的个人信息

    一:ubuntu下安装python集成环境pycharm以及免费激活 安装 首先去下载最新的pycharm 2016.2.3,进行安装.可以直接在官网下载.选择自己所对应的版本 PyCharm 的激活 ...

  9. java正则随笔

    一.string校验 要求字符串只能输入数字,字母大小写和‘@‘’‘.’‘_’三个特殊字符 public static boolean check1(String str){ String patte ...

  10. HP_UX系统批量创建LV或raw设备的Shell 脚本

    mkdir /dev/yjfsvg02 #创建lvm v2.0的VG,PE Size=64MB,不需要执行mknod创建group文件了.vgcreate -V 2.0 -s 64 -S 10t /d ...