码迷,mamicode.com
首页 > 其他好文 > 详细

寒假-10

时间:2019-03-28 23:28:09      阅读:297      评论:0      收藏:0      [点我收藏+]

标签:down   完成   eps   odi   程序包安装   执行   option   rpm包管理   etc   

query
n. 疑问,质问;疑问号 ;[计] 查询
vi. 询问;表示怀疑
vt. 询问;对……表示疑问

软件包管理
预知识
静态和动态连接
连接主要作用是各个模块之间相互引用的部分处理好,使得各个模块之间能够正确衔接,分为静态和动态
静态:
把程序对应的依赖库复制到一份包里
libXXX.a
嵌入式程序包
升级难,需要重新编译
占用较多空间,迁移容易
动态:
只要把依赖加做一个动态连接
libxxx.so
连接指向
占用较小空间,升级方便

包管理器
二进制应用程序的组成部分
二进制文件 库文件 配置文件 帮助文件
程序包管理器
debian deb文件 dpkg包管理器
redhat rpm文件 rpm包管理器
rpm ====Redhat Package Manager
====RPM Package Manager

包命名和工具
包命名:
    源代码包:
            name-   VERSION.tar.gz|bz2|xz
    rpm包命名方式
        name-VERSION-releas.arch.rpm 
        其中: VERSION:major minor release
                release:release.OS
        常见的arch
                x86:i386   i486 i586 i686
                x86_64:x86 x86_64 amd64
                powerpc:ppc
               跟平台无关:noarch
包:分类和拆包
    Application-VERSION-ARCH.rpm 主包
    Application-devel-VERSION-ARCH.rpm 开发子包
    Application-utils-VERSION-ARCH.rpm 其他子包
    Application-libs-VERSION-ARCH.rpm 其他子包

包之间:可能存在依赖关系
解决依赖包的管理工具:
    yum  
    apt-get
    zypper
    dnf

库文件
    查看二进制程序所依赖的库文件
        ldd /path/to/binary_file  单个程序需要的库
        eg: ldd /usr/bin/ls
    管理及查看本机装载的库文件
        ldconfig 加载库文件
        /sbin/ldconfig  -p  显示本机已经缓存的所有可用库文件名及文件路径映射关系
    配置文件: /etc/ld.so.conf     /etc/ld.so.conf.d/*.conf
    缓存文件: /etc/ld.so.cacha

包管理器 :
    程序包管理器:
        功能:将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而方便实现
                安装 卸载 查询 升级 校验
    包文件组成(每个包独有)
        RPM 包内的文件
        RPM 的元数据,名称版本依赖性描述
        安装或卸载时运行的脚本
    数据库(公用)、/var/lib/rpm  系统统计的软件安装版本号什么的便于跟新和卸载
        程序包名称及版本
        依赖关系
        功能说明
        包安装后生成的各文件路径及校验信息
程序包的来源
    管理程序包的方式:
        使用包管理器RPM
        使用前端工具 yum dnf 
    获取程序包的途径:
        系统发版的光盘或官方服务器:
            CentOS镜像
        项目官方站点
        第三方组织:
            EPEL   Extra Packages  for ENterprise Linux 
            搜索引擎:
                http://pkgs.org
                http://rpmfind.net
                http://rpm.pbone.net 
                http://sourceforge.net 
        自己制作
            rpmbuild

rpm
CentOS 系统使用rpm命令管理程序包
安装 卸载 升级 查询 校验 数据库维护
安装:
rpm {-i|--install} [install-option] package_file
-v:verbose
-h 显示安装进度条
-p 查询安装包
-l, --list list files in package
rpm -ivh package_file
rpm -ql package_file 查询软件的所有文件
[install-option]
--test 测试安装,不真实安装,测试是否兼容
--nodeps 忽略依赖 关系
--replacepkgs|-replacefiles 安装时替换包或者文件
--nosignature不检测来源合法性
--import 公钥的路径,一般在光盘的根目录 用于检测有无合法的工具

        升级:
            rpm {-U|--upgrade}[install-option] Pack_file
            rpm {-F|-freshen} [install-option] pack _file 
                upgrade :安装有旧版程序包 则升级
                                没有则安装
                freshen 安装如果有就版程序,则升级
                                没有则不执行
                rpm -Uvh package-file  全名
                rpm -Fvh package-file 
                --oldpackage 降级
                --force  强制安装
                注意:安装内核的时候最好使用安装的方法rpm -ivh 避免直接覆盖,安装两个内核版本
                      linux支持多内核版本并存

                      如果源程序包的配置恩建安装后曾被修改,升级时,新版本的提供同一个配置文
                      文件不会直接覆盖老版本的配置文件,而是把新版本的文件重命名后保留 filename.rpmnew
        包查询 
             常用的查询方法:
                --changelog 查询rpm包的changelog
                -c 查询程序的配置文件
                -d 查询程序的文档
                -i information
                -l 查看指定的程序包安装后生成的所有文件
                --scripts 程序包自带的脚本
                --provides  列出指定程序包所提供的capability
                -R 查询指定程序包所依赖的capability
                -qi package 
                -qf file    file 来自哪个包安装的
                -qc package 
                -ql package         rpm -ql tree
                -qd package 
                -qpi package_file 
                -qpl package_file 
                -qa 
            rpm -qa |grep vs
        rpm -qf  /etc/passwd 查询文件由那个包生成,即是删了也可以查询的到
    rpm2cpio /misc/cd/Packages/tree.rpm| cpio -idv ./user/bin/tree 有可能解出来的权限不一致
rpm -qi bash  查询安装包信息,官网什么的
        包卸载:
            rpm -e [--allmatches][--nodeps][--noscripts][--notriggers][--test] package_name

        包检验
            rpm -V [select-options][verify-options]  rpm -V tree
            S file Size differs 
            M Mode differs 
            D Device major/minor number mismatch 
            L reaslink path mismatch
            U User ownership differs 
            G Group ownership differs
            T mTime differes
            P capbilities differ

            导入所需要公钥
            rpm -K rpmfile 检查包的完整性和签名
            rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
            rpm -qa "gpg-pubkey*"
安装前检查一下是否是原版,前提是导入公钥rpm -qa "gpg-publickey

修复重要包,可以在重启中进入救援模式,系统会进行新的系统挂载,不过根目录是在指定的文件夹下

yum 
    CentOS :yum dnf yum是rpm的二次封装,不能删除rpm
    YUM  Yellowdog Update Modifier ,rpm的前端程序,可以解决软件包相关依赖性,可定位多个库
原理:进行yum install 后 向yum服务器提出请求要安装什么,服务器寻找到包的元数据meta data返回给yumclient
        进行缓存以后也不删除,yum在吧新的需求发给yum服务器,服务器在吧所有需要的东西给client
        进行安装之后,删除包,但是元数据不删

        文件服务器:
                    http://
                    httpd://
                    ftp://
                    file:// 本地路径
    yum客户端配置文件
    /etc/yum.conf 为所有仓库提供公共配置
       文件底部# PUT YOUR REPOS HERE OR IN separate files named file.repo
                 # in /etc/yum.repos.d
    /etc/yum.repo.d/*.repo 为仓库的指向提供配置
            其中指向的定义
                [repositoryID]
                name=Some name for this repository  
                baseurl=url://path      baseurl=file:///misc/cd
                enable=1/0          默认为1 为零为失效
                gpgcheck=1/0        是否检测公钥,完成性,生产时要为1,可以
                gpgkey=url          可以不用gpgcheck 将路径加到gpgkey
                enablegroups=1/0
                failovemethod=roundrobin/priority/roundrobin(随机挑选,默认)
                cost = 默认为1000
                对于公钥的检测,可以用gpgkey=一个公钥的文件路径
                    gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-7
                中的keepcache改为1可以保留软件包,在装多台机器时建议

            在此目录创建yum源,名字一定为*.repo 有格式要求,可以自己查看一下,多个源可以放在
            同一个文件 但格式要复制一次

        yum出故障:配置文件格式错误
                    缓存问题,可删除缓存在重新装
                    yum clean all 

    yum 源 
        阿里云repo文件:
            http://mirrors.aliyun.com/repo/ 可以直接下载
        CentOS系统yum源
            阿里云:http://mirrors.aliyun.com/centos/$releasever/os/x86_64/
        EPELyum源
            阿里云:http://mirrors.aliyun.com/epel/$releasever/x86_64 

     yum 命令
        yum [option] [command] [package]
        显示仓库列表:
            yum repolist all/enable/disabled
        显示程序包
            yum list 
            yum list [all |glob_exp1]
            yum list installed/updates/available   [glob_exp1]  installed时,安装过的都是有@标记
        安装程序包
            yum install package1 package2...
            yum reinstall package package2...重新安装
    升级程序包:
            yum update package1 package2
            yum downgrade package1  降级
    检查可用升级:
            yum check-update 
    卸载程序包
            yum  remove package1 ..
    查看程序包:
            yum info package  yum info bash 
    查看指定的特性(有谁得来)
            yum provides  feature1 (部分)...  yum provides /usr/bin/ls
    清除本地缓存
        清除/var/cache/yum/$basearch/$releasever缓存路径
        缓存的数据是元数据
        yum clean [package  metadata  expire-cache  rpmdb plugins all ]
    构建缓存
        yum makecache一般不需要手动
    搜索:
        yum search string1....如果包的名字记得不是很清楚可以使用查询
    //查看指定包所依赖的capability
        yum deplist package 
    查看yum事务历史
        yum history   list/ info num  列出yum的使用信息,列出单条具体信息yum history info 8
                      redo num  重做    yum history redo 6
                      undo  num 撤销

    日志:、var/log/yum.log 

    注意 yum install 也可以直接加rpm包

    包租管理相关命令,功能相似的rpm包归到统一个组(套件)
        yum groupinstall group 
        yum grouplist 查看包租列表
        yum groupremove group
        yum groupinfo group

 yum命令行选项
    -nogpgcheck 禁止进行gpg check 
    -y 不会询问y/n 
    -q 静默 但是与-y 是不难合并
    --disablerepo=repoidglob 临时禁用此处指定的repo
    --enablerepo=repoidglob 临时启用此处指定的repo
    --noplugins 禁用所有插件

 系统光盘yum仓库
    系统安装光盘作为本地yum仓库:
        挂载光盘至某目录 eg /mnt/cdrom 
        创建配置文件/etc/yum.repo/ 下
        创建yum仓库repodata   createrepo directory  可以将单个安装包创建yum源数据repodata

echo ‘- - -‘  > /sys/class/scsi_host//host2/scan 加载硬件设备后在线重新加载
CentOS7上添加便捷目录 systemctl start autofs
                        systemctl enable autofs 

寒假-10

标签:down   完成   eps   odi   程序包安装   执行   option   rpm包管理   etc   

原文地址:https://blog.51cto.com/14240011/2370925

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!