linux RPM、YUM

  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. 例:[[email protected] ~]# 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. [[email protected] ~]# 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 帮你自动执行这一类型的指令,就加上他吧!

时间: 2024-10-25 13:08:16

linux RPM、YUM的相关文章

LINUX RPM、YUM软件包的管理

一.RPM.YUM 软件包管理管理工具的简介 1.首先讲一下自己的感觉:对于 初学linux的人来说安装软件是比较头疼的事,大家习惯了windos的操作,是中文的,只要上网一搜什么都有,然后下一步安装就行啦,卸载的话更是简单,在卸载或更改程序了么也很简单,还有360等.linux软件包大致分三种:以.rpm .压缩包.源码包最为常见,却他们的安装方法也是有差别的.掌握好软件安装卸载工具是以后搭建服务不可缺少的必备能力,而 RPM.YUM 就是不可或缺的利器. 2.rpm的简单介绍 1.可以安装.

linux软件包管理之rpm 、yum基本使用

linux软件包管理之rpm .yum基本使用 一.RPM RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux.S.u.S.E.以及TurboLinux等Linux的分发版本都有采用,可以算是公认的行业标准了. RPM主要功能在于对linux中以.rpm为后缀的软件包的安装.升级.卸载.校验及查询进行便捷管理. 1.安装软件包及常用选项       rpm

第一章安装Linux,RPM、YUM, systemctl

时间挺长了,补充下第二节课,虚拟机软件及linux系统安装:RPM.YUM 安装软件及systemctl初始化进程最有用的需掌握的几条管理服务的命令systemctl start 启动systemctl stop 停止systemctl restart 重启systemctl status 查看systemctl enable 启动项 原文地址:https://blog.51cto.com/13812690/2393341

程序包管理:rpm、yum、编译

概述: 在系统管理中,软件包的管理是最重要的,是系统管理的基础的基础,只有我们学会了软件包的管理才能谈得上其它的应用,软件包的安装.更新.查询,以及几个常用的软件包管理工具rpm.yum.编译. 不同发行版系统程序包管理器: Debian:dpt.dpkg.deb Redhat:rpm S.u.S.E:  rpm..rpm 一.Rpm 1.概述:rpm包里包含可执行的二进制程序,这个程序和window是的软件包中的.exe文件类似是可执行的:一个rpm包中     的应用程序,有时除了自身所带的

Python+Selenium自动化模拟用户登录(备注:记录一次强行卸载rpm依赖包,引发的rpm、yum等命令异常,无法远程xftp工具)

近期在摸索Python+Selenium自动化,实现模拟用户登录搜索等操作,反馈相关日志,再交由Zabbix分析,监控页面访问是否正常. 期间需要对Linux火狐浏览器进行升级,由于生产环境为内网环境,无法使用yum进行升级.本想在外网环境下使用Docker进行安装,然后打成镜像后迁移到内网环境.但由于系统为Red Hat 6.4对Docker支持较差,故在外网将相关依赖包下载后进行安装. 外网环境下,下载Firefox及相关依赖组件相关操作.         1.更新本地yum源为阿里yum源

软件安装rpm、yum

rpm.yum rpm包安装: 命名:eg:xlockmore-5.31-2.el6.x86_64.rpm 软件包名字-主版本号.次版本号-发行版本号.系统版本.cpu的架构.rpm 构成: 软件包的元数据信息(软件版本.作者.安装前后需要执行的脚本等)+软件文件(程序.配置文件.文档等) 选择: 1.选择适合自己的系统版本 2.选择适合自己cpu架构 x86_64 只能安装xx.x86_64的软件包 i386,i586,i686 的软件包,可以安装在32位 64位的系统 noarch 包不选择

学习笔记之Linux程序包管理rpm、yum、编译

无论是Windows系统还是Linux系统,我们用户想要在操作系统上获得更多的乐趣还是更多的功能的话,就需要在一个干净的系统上安装各式各样的软件程序,Linux上的是ELF格式的,目前比较常见的程序包管理器如: Redhat软件包管理器---rpm Debian软件包管理器---dpkg 一.1.RPM 安装:rpm {-i|--install} [install-options] PACKAGE_FILE... -v: verbose,详细信息 -vv: 更详细的输出 -h: hashmark

linux CentOS7 中安装包管理:rpm 、yum及源码包安装使用

一. 安装软件包的三种方法 yum ---python rpm工具 yum工具 源码包 二. rpm包介绍 设置光驱并挂载: [[email protected] ~]# mount /dev/cdrom /mntmount: /dev/sr0 写保护,将以只读方式挂载 [[email protected] ~]# ls /mntEULA    isolinux  repodata                      TRANS.TBL GPL     LiveOS    RPM-GPG-

Linux学习笔记 第十课 rpm、yum、编译安装

一.rpm 二.yum 三.编译安装 一.rpm   1.rpm简介 2.rpm 安装命令 (rpm -ivh --nodeps --force) 3.rpm 卸载 (rpm -e) 4.rpm 查询 (rpm -q -qa -ql -qf) 1.rpm 简介: rpm:(Redhat Package Manager),可以在Redhat和Suse系统使用 [[email protected] ~] mount /dev/cdrom /mnt   // 挂载光驱 [[email protecte