zoukankan      html  css  js  c++  java
  • 第五部分 linux 软件安装RPM SRPM与YUM

    第五部分  linux  软件安装RPM    SRPM与YUM

     
    软件管理员简介
    RPM与DPKG两大主流
    rpm: redhat       centos     suse    命令:yum
    redhat package manager 将软件先编译   再打包成rpm机制
    包中记录的安装的时候必须具备的相依赖属性   当安装时候    rpm会先依照软件里的资料查询linux主机的相依赖属性软件是否满足    如果满足则安装   如果不满足  则不安装     。
    1. rpm软件管理存在的问题
    软件安装环境必须与打包时候的环境要求一致或相当
    需要满足软件的相依赖属性
    卸载时,底层的软件不可以先卸载 否则会造成整个系统的问题
    2. 如果需要其他发行版的rpm软件   则需要srpm这个文件   source rpm的意思   即就是这个RPM文件里面包含未经过编译的原始代码   
    仍然包含该关键需要的相依性说明以及所有rpm文件提供的资料    
    与rpm不同的地方:提供了参数设置文件   也就是configure   与makefile
    通常此文件的扩展文件名是***.src.rpm
    安装此文件时  需要
    先将该软件以RPM管理的方式编译   此时SRPM会被编译成为RPM文件
    再将编译完成的RPM文件安装到linux系统当中
    所以就可以通过修改srpm内的参数配置文件 然后重新编译生成能适合我们linux环境的rpm文件
     
    3.rpm在打包软件的时候,同时加入一些信息登陆的功能,这些信息包括软件的版本,作者,依赖关系,软件功能说明,软件的所有文件记录等等,然后在linux系统上面也建立一个rpm软件资料库,当安装的时候,rpm会检验一下资料库里面是否已经存在相关的软件了。
    4.克服依赖关系 可以用yum线上安装的方式
    原理:在rpm包内会有记录相依赖关系的文件,在安装此软件的时候 与系统内已经安装的软件相比较,没有安装的相依赖软件一同安装,就会解决相依赖关系的问题 此种机制就是YUM
    centos 1 将软件放在yum服务器上
    2.分析这些软件的依赖关系 形成软件依赖的清单列表 这些信息与软件所在的本机或网络位置称为容器或者软件仓库
    3.客户端有安装的需求时,用户端主动的向yum服务器下载依赖的清单列表,然后通过此表与本机的rpm数据库 已存在的软件比较,就能够一起安装需要的相依赖的软件了
    默认清单会更新到本地的/var/cache/yum里面   利用此清单与本地的rpm数据库进行比较    这样就知道应该安装什么
    然后yum会在yum server下载所有需要的软件 (因为清单里面含有详细的地址),然后再通过rpm机制安装下载下来的软件。
    yum服务器提供的软件内容差异:
    原版文件           更新的文件      特殊的文件(例如第三方软件)这三类不同的软件需要软件库的概念来处理    不同类型的软件放在不同的位置。

      dpkg: b2d ubuntu 命令:apt-get

     
    rpm软件管理程序:rpm
    软件安装完毕后
    相关信息会写到/var/lib/rpm/目录下面的数据库文件中,此文件比较重要,比较版本和查询都需要此文件
    安装软件的相关目录
    /etc 配置文件
    /usr/bin 可执行文件
    /usr/lib 动态函数库
    /usr/share/doc 软件使用手册与说明
    /usr/share/man man page文件
     
    1.rpm安装   install
    root身份   
    rpm -ivh  /mnt/packages/****.rpm
    -i install
    -v verbose  详细
    -h 显示安装进度
    光盘:
    rpm -ivh /mnt/Packages/rp***.rpm
    安装多个软件
    rpm -ivh a.rpm   b.rpm   *.rpm
    网络安装
    rpm -ivh http://website.name/pkgname.rpm
     
    可以利用参数强制安装
    --nodeps 不考虑依赖
    --replacefiles 覆盖安装  当出现已安装或者版本不合适     无法还原
    --replacepkgs 重复安装  只适合已经安装过的软件
    --force 是上面两个的综合   
    --test 尝试安装  测试软件是否有依赖关系的问题
    --justdb rpm数据库出现错误时   利用此参数来更新数据库中的相关信息
    --nosignature 忽略数字签名
    --prefix 新路径 将软件安装到其他的非正规目录   安装到/usr/local   或者其他的目录   而非/bin  /etc等
    --noscripts 不让改软件在安装过程中 自动执行某些系统脚本命令
     
    举例:光盘安装
    挂载: mount /dev/sr0 /mnt
    找文件的实际路径: find /mnt -name 'pam-devel*'
    测试相依性: rpm -ivh pam-devel... --test
    直接安装: rpm -ivh pam-devel...
    卸载光盘: umount  /mnt
    2.RPM升级与更新
    -Uvh 软件未安装过   则直接安装    ;如果是旧版   则自动更新到新版
    -Fvh 如果未安装过   则不会安装   也就是只有安装过的软件才会被升级
    尽量使用Fvh   避免不需要的软件被安装进系统
    3.RPM 查询 query
    查询的数据库文件为/var/lib/rpm/这个目录下的文件    rpm也可以查询未安装的rpm文件内的信息   
    -qa 已经安装的软件
    -q[licdR]已安装的软件的名称
    -qf 存在于系统上面的某个文件名
    -qp[licdR]未安装的某个文件的名称    
    q后面跟的参数
    a 列出所有 all
    i 详细信息 information
    l 所有文件与目录所在的完整文件名 list
    c 列出配置文件 config
    d 列出说明 description
    R 相依赖软件的有关文件 required
    f 后面接的文件名称  找出该文件属于哪一个已经安装的软件
    --scripts 列出是否有安装后需要执行的脚本文件,可以用debug
    -qp 找出某个未安装的软件的信息   packages   这里需要加上完整的文件名    版本号等
    范例:
    rpm -q logrotate   
    rpm -ql logrotate  列出属于该软件提供的所有目录与文件   可以用于追踪
    rpm -qR logrotate   如果成功安装软件  还需要什么文件的帮忙
    rpm -qpR  filename.i386.rpm   找出该文件需求的文件
     
    RPM验证与数字签名    verify/signature    侧重于安全方面
    使用/var/lib/rpm下面的rpm数据库来比对目前linux系统的环境下的软件,当不小心遗失文件时或错误修改文件时,可以用此方法来验证原来的文件系统,了解修改哪些文件了
    语法:
    rpm -Va   列出所有可能更动过的文件
    rpm -V 已经安装的软件名称   该软件包含的文件被更动过  才会列出来
    rpm -Vp 某个RPM文件的文件名
    rpm -Vf  在系统上面的某个文件  某个文件是否被更动过
    范例
    rpm -V logrotate
    软件是否被更动过
    rpm -Vf /etc/crontab 查询一下此文件是否被更动过
    查询更动过的内容
    rpm -V logrotate
    出现..5....T.  c  /etc/logrotate.conf
    c 代表的是configuration
    S 文件的容量大小
    M   文件的类型或属性
    5 MD5这个指纹码的内容不同
    T 文件的建立的时间
    ........
    所以上面例子中的 md5值和建立的时间已经改变了
    SM5DLUGTP     c     filename    对应的位置
    例子中的c   代表配置文件
    d 数据文件
    g ghost file    
    l license file 授权文件
    r read me  读我文件
     
    数字签名   GNU的gpg   签名系统
    先安装厂商提供的公钥文件
    再安装rpm软件的时候,rpm指令会去读取RPM文件的数字签名   与本机的签名比对
    如果相同则安装     否则不安装
    cat /etc/pki/rpm-gpg/RPM-GPG-KEY-cENTos-7
    内容为乱数
    安装公钥系统软件
    安装方式:rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-Centos-7   
    寻找此文件的命令:locate GPG-KEY
    或者
    find /etc -name '*GPG-KEY*'
    查看某软件的公钥文件
    rpm-qa | grep pubkey
    rpm -qi gpg-pubkey-f4a8.......
    出现的内容就是厂商提供的公钥信息
     
    RPM反安装与重建数据库(erase/rebuilddb)
    卸载的过程必须由上层忘下层卸载   先拆第6层楼   再拆第5层  最后到地基
    语法:
    rpm -e pam
    卸载   安装  升级过程中可能会导致rpm数据库被破坏   可以利用--rebuilddb选项来重建rpm数据库
    命令:rpm  --rebuilddb
    yum线上升级机制
     
    yum查询、安装、升级与删除功能
    查询
    yum  [list|info|search|provides|whatprovides]
    yum [option][查询工作项目][相关参数]
     
    -y yes   去掉交互
    --installroot=/some/path    将软件安装到后面的额路径  而不是默认的路径
    search 搜寻某个软件名称或者是秒数的重要关键字
    list 类似于rpm -qa    列出目前yum 所管理的所有软件名称与版本
    info 类似rpm -qai
    provides 根据文件去搜索软件    查询是哪个软件提供的     很有用
  • 相关阅读:
    [论文笔记] On Construction of Cloud IaaS for VM Live Migration Using KVM and OpenNebula (ICA3PP, 2012)
    [论文笔记] Energyaware resource allocation heuristics for efficient management of data centers for Cloud computing (FGCS, 2012)
    [概念学习] hypervisor
    [论文泛读] Dynamic placement of virtual machines for managing sla violations (IM, 2007)
    [论文笔记] Costs of virtual machine live migration A survey (SERVICES, 2012)
    [论文笔记] Live Migration of Multiple Virtual Machines with Resource Reservation in Cloud Computing Environments (CLOUD, 2011)
    vscode如何搭建vue项目
    jenkins部署
    yum命令Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
    Spring 笔记——核心数据规则篇
  • 原文地址:https://www.cnblogs.com/dongguolei/p/7896358.html
Copyright © 2011-2022 走看看