linux学习笔记之软件包管理

软件包管理
    软件包组成
    二进制程序
    配置文件
        单文件
        将主配置文件切割成多个小文件,并放置于某个目录中。
            /etc/profile ,/etc/profile.d/*
            /etc/pam.conf , /etc/pam.d/*
        单文件,在内部分割成多个片段。
        [mysql] [mysqld]...
    库文件: 二进制 可执行  函数(c程序都由函数组成) 共享模块
        静态库
        动态库
    帮助文件
        手册页
        文档(/usr/share/doc)
        /bin /sbin 系统启动使用
        /usr/bin  /usr/sbin 大多数软件
        /usr/local/bin /usr/local/sbin 第三方软件     
        操作系统启动文件都在/上  redhat6以后/usr也不可独立分区.
        为减小/bin /sbin 大小 部分系统启动文件也放在/usr/bin /usr/sbin上。
        第三方软件比较多时可以独立分出/usr/local

    库文件
        /lib /lib64 /usr/lib  
        /etc/ld.so.conf.d/*.conf
        系统找不到/usr/local下的库文件  /etc/ld.so.conf so shared object
        在/usr/local/lib 下的库文件   在建立/etc/ld.so.conf.d/xxx.conf 存放
        搜索路径。系统的则写入/etc/ld.so.conf
        /etc/httpd/  httpd软件的

    帮助文件:
        /usr/share/man
        /etc/man.conf    指定man到哪里找man文件  doc
        /usr/share/doc

    头文件;
        /usr/include
        kernel  glibc  app    os三大组成部分
        glibc  c语言标准通用库

    硬件架构:
        x86 x64 poverpc sparc arm
    二进制程序: 有格式 特定于硬件平台(编译器自身在软件编译时在特定平台上的运行进行优化)
        name-version-release-.arch.rpm
        version: 3.2.4
            major minor release
        32bit  x86
            i386  i486  i586  i686
        64bit  x86
            x86_64
        noarch.rpm 平台无关  平台文件
        
        name-version:主包
        name-subname-version:子包
        name-devel-version: 库文件 头文件

        循环依赖的需同时安装。

        yum: yellowdog update modifier   rpm前端
        yum依赖于rpm 是其升级版。
        dpkg -----> apt-get
        rpm----->deb

        rpm包 rpm yum
        源码包    编译安装
        制作好的二进制包压缩包,解压后配置使用。
            mysql  mongoDB
        
        rpm install    ---------------> rpm -i pkg1  pkg2   ...... // path
        rpm eraser     ---------------> rpm -e pkg1   ....
        rpm update     ---------------> rpm -U | -F pkg1....
        rpm verify     ---------------> rpm -V pkg1.....
        rpm query      ---------------> rpm -q ...
        
        install:
            rpm -i
                -v  verbose
                -h  #  progress
                --test
                --nodeps 忽略依赖
                --replacepkgs
                --force  无视冲突。

        before install     pre
        after install   post 收尾
        卸载之前    preun
        卸载之后    postun

        uninstall:
            rpm -e pks1   被依赖不可卸载。
            rpm -e php-cli
        update  :
            F freshing    无old,则不new
            U update    无old,则安装new
            --oldpackages
            内核不应该升级安装。 内核允许多版本并存。
        query:
            rpm -q  
            rpm -qi   
            签名:单向加密  提取数据的指纹信息  数据特征
                如果原数据一样,结果数据一定一样
                雪崩效应,原数据有一点点不同,结果大不同。
            rpm 提取特征码,附加在软件包上。 官方使用自己的私钥。
            私钥加密,公钥解密。
            篡改则破坏特征码.私钥。
            公钥解密得到官方提供的特征码,自己再使用同样的方法提取特征码
            ,并比较和解密出来的特征码是否一致。
            rpm -ql  pkg1    list 显示安装哪些文件
            rpm -qf  file         根据文件查rpm包
            rpm -qc   pkg         查看配置文件
            rpm -qd   pkg         查看文档 man  readme install

            rpm -a --scripts   pkg1   执行安装的脚本 内置脚本
            
            还未装则加 p 参数
            
            rpm -V pkg1
            rpm -K pkg1 检查签名
            rpm  --import key1   导入公钥  /etc/pki/rpm-gpg/xxx
            没签名    sha1 md5 ok
            sha1 md5 数据包完整校验
            --nodigest  不检查单向加密    sh1 md5
            --nosignature  不检验签名信息  gpg dsa
            
        重建rpm数据库
            /var/lib/rpm
            *db*  锁文件
            其它的是锁文件
            rpm --initdb   被删除 或不存在 存在则不覆盖
            rpm --rebuilddb     覆盖 重建


        源码制作成rpm包
    
yum
    route    rpm包集合    xml文档  元数据文件
    redhat5   包分开存放:
        server    常用的基本软件  
            /repodata   yum源信息   父目录即仓库
        Cluster  集群   
         ClusterStore  集群存储相关   
        VT
        yum源何在  
        下载到本地缓存  元数据缓存到本地
        协议3种:
            本地  file:///协议
            远程服务器  ftp:// http://
        yum仓库:    
        rpm包
        repodata/目录  xml文件 只有包含此目录为其子目录的那个路径才可以用作yum源
        repomd.xml  保存时间戳  看是否有变化
        primary.xml.gz  当前yum仓库内每一个rpm包的名字及彼此之间的依赖关系:
            此外还包含每一个rpm包能够安装生成的文件;
        filelists.xml.gz: 所有rpm包包含的安装生成文件的文件列表。
        other.xml.gz :  额外信息  主要包含rpm包的chnagelog;
        
        rpm包包组的定义
        yum 配置文件 子命令
        /etc/yum.conf/*
        /etc/yum.repos.d/*
        /etc/yum/pluginconf.d/*
        全局配置  分段配置   
        全局 /etc/yum.conf

        yum
        yum    repolist
        yum    list { installed | available | updates | all }
        yum    clean { all | packages | metadata}    // /var/cache/yum
        yum    grouplist
        yum    groupinfo  "group_name"
        yum    info    "PKG_NAME"
            provides FILE
            install -y    
            remove
            update
            groupinstall    
            localinstall
            reinstall
            check-update

            install createrepo

            createrepo dir

            --nogpgcheck

        

        
        createrepo
    redhat6   
        Package  
            server

    createrepo -g xxx

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