Linux软件包管理——rpm

/etc, /bin, /sbin, /lib, /usr/share/man
/etc, /bin, /sbin, /lib:系统启动就需要用到的程序,这些目录不能挂载在额外的分区,必须在根文件系统分区上

/usr/
     bin
     sbin
     lib
    
     操作系统核心功能,可以单独分区
    
/usr/local 建议单独分区
     bin
     sbin
     lib
     etc
     man
    
/opt:第三方默认安装位置,现在大多数为/usr/local目录下

/proc:不能单独分区,默认为空
/sys:不能单独分区,默认为空

/dev:设备,不能单独分区
/var:应该单独分区
/home:应该单独分区
/root:不能单独分区

/boot:内核,initrd(initramfs),可以单独分区
     内核:
    
     POST-->BIOS(HD)-->(MBR)bootloader(文件系统结构,ext2,ext3...)-->内核
    
Linux软件包管理器
     1. 打包成一个文件:二进制程序、库文件、配置文件、帮助文件
     2. 生成数据库,追踪所安装的每一个文件
软件包管理器的核心功能:
     1. 制作软件包;
     2. 安装、卸载、升级、查询、校验;
    
     RedHat、SUSE、Debian
     RedHat、SUSE:RPM
          RedHat Package Manager
          RPM is Package Manager
     Debian:dpt
         
     依赖关系:
          X-->Y-->Z
         
     前端工具:yum,apt-get
     后端工具:RPM,dpt
     yum:Yellowdog Update Modifier
    
rpm命令:
     rpm:
          数据库/var/lib/rpm
         
     rpmbuild:
安装、查询、卸载、升级、校验、数据库的重建、验证数据包等工作;

rpm命名:
     包:组成部分
          主包:
               bind-9.7.1-1.el5.i586.rpm
          子包:
               bind-libs-9.7.1-1.el5.i586.rpm
               bind-utils-9.7.1-1.el5.i586.rpm
     包名格式:
          name-version-release.arch.rpm
          bind-major.minor.release-release.arch.rpm
         
     主版本号:重大改进
     次版本号:某子功能发生重大变化
     发行号:修正了部分bug,调整了一点功能
    
     bind-9.7.1.tar.gz
    
rpm包:
     二进制格式*
          编译配置完成后,制作成rpm包
          bind-9.7.1-1.[el5.][x86|x64|x86_64|i686|noarch].rpm
         
     源码格式

rpm:
     1. 安装:
          rpm -i /PATH/TO/PACKAGE_FILE
               -h:以#显示进度,每个#号表示2%的进度;
               -v:显示纤细过程
               -vv:更详细的过程
              
          rpm -ivh /PATH/TO/PACKAGE_FILE
              
               --nodeps:忽略依赖关系;
               --replacepkgs:重新安装,替换原有安装;
               --replacefiles:替换文件
               --oldpackage:降级
               --force:强行安装,可以实现重装或降级
               --test:
     2. 查询
          rpm -q PACKAGE_NAME
          rpm -qa:查询已经安装的所有包
         
          rpm -qi PACKAGE_NAME:查询指定包的说明信息;
          rpm -ql PACKAGE_NAME:查询指定包安装后生成的文件列表;
          rpm -qc PACKAGE_NAME:查询指定包安装的配置文件;
          rpm -qd PACKAGE_NAME:查询指定包安装的帮助文件;
         
          rpm -q --scripts PACKAGE_NAME:查询指定包中包含的脚本
                   
          rpm -qf /PATH/TO/SOMEFILE:查询指定文件是由哪个rpm包安装生成的;
    
          如果某个rpm包尚未安装,我们需要查询其说明信息、安装以后会生成的文件;
          rpm -qpi     /PATH/TO/PACKAGE_FILE
          rpm -qpl     /PATH/TO/PACKAGE_FILE:查看由哪些文件构成
         
     3. 升级
          rpm -Uvh /PATH/TO/NEW_PACKAGE_NAME:如果装有老版本的,则升级;否则,则安装;
          rpm -Fvh /PATH/TO/NEW_PACKAGE_NAME:如果装有老版本的,则升级;否则,则退出;
               --oldpaclages:降级
              
     4. 卸载
          rpm -e PACKAGE_NAME
               --nodeps
         
     5. 校验
          rpm -V PACKAGE_NAME
         
     6. 重建数据库
          rpm
               --rebuilddb:重建数据库,不管有没有都会从头重建数据库
               --initdb:初始化数据库,没有猜建立,有就不用建立;
    
     7. 检验来源合法性,及软件包完整性
          加密类型:
               对称:加密解密使用同一个密钥;
               公钥:一对密钥,公钥,私钥;
               单向:
              
          ls /etc/pki/rpm-gpg/
                   
          rpm -K /PATH/TO/PACKAGE_FILE
               dsa,gpg:验证来源合法性,也即验证签名;可以使用--nosignature,略过此项
               sha1,md5:验证软件包完整性,可以使用--nodigest,略过此项
              
              
          rpm --import /etc/pki/gpm-gpg/RPM-GPG-KEY-redhat-release:导入密钥文件
         
         
         
         
         
         
         
              
              
         

    
    
     

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。