首页 > 技术文章 > Linux 程序包管理

guowei-Linux 2018-10-02 07:59 原文

Linux程序包管理
    API:Application Programming Interface
        各个平台的库文件对外呈现相同标准的接口,虽然它们的实现方式不同;但是相同的源代码在不同平台上经过编译以后都可以运行;
    POSIX:Portable OS
        程序源代码→预处理→编译→汇编→连接   
            详细解释:https://blog.csdn.net/derkampf/article/details/71597684
            静态编译:库文件整合到程序内部的;
            共享编译(动态链接库):多个程序调用共同的库文件;
    ABI:Application Programming Interface
        不同源代码在经过编译以后形成的可执行程序文件格式不尽相同,所以经过编译的源代码通常不能在不同平台上运行;
            linux:ELF格式
            Windows:EXE格式
            可以通过库级别的虚拟化来实现不同平台的兼容
                Linux:WINE
                Windows:Cywin
        系统级开发:C,C++
        应用级开发:Python,Java,PHP(世界上最好的语言)等;(滑稽脸)
        二进制应用程序的组成部分
            二进制文件,库文件(程序本身提供给他人的,容许其调用进行二次开发的库文件),配置文件,帮助文档;
        程序包管理器:
            debin:deb格式,dpt管理器;
            redhat:rpm格式,rpm管理器;
                rpm:redhat package manager
                rpm:rpm is Package Manager
        源代码:name-VERSION.tar.gz
            VERSION:major.minor.release
            rpm包命名方式:
                name-VERSION-ARCH.rpm
                    VERSION:major.minor.release
                    ARCH:release.so.arch
                    
                    zlib-1.2.7-13.el7.i686.rpm
                testapp:拆包
                    testapp-VERSION-ARCH.rpm:主包
                    testapp-devel-VERSION-ARCH.rpm:子包
                    testapp-testing-VERSION-ARCH.rpm:子包
                包依赖关系:
                    rpm包之间可能存在依赖关系,比如安装某个包之前需要提前安装另一个或多个包;
                    yum:rpm包管理器的前端工具;
                    apt-get:deb包管理器的前端工具;
                    zypper:suse上rpm的前端管理工具;
                查看依赖关系的命令:
                    ldd /PATH/TO/ELF_FILE:显示某二进制程序所依赖的库文件;
                    ldconfig -p:显示加载到内存中的所有可用库文件名称,及文件路径映射关系;
                        其配置文件为:/etc/ld.so.conf,/etc/ld.so.conf.d/*.conf
                        缓存文件:/etc/ld.so.cache
            程序包管理:
                功能:将编译好的应用程序的各组成文件打包成一个或几个程序包文件,从而方便快捷的完成程序包的安装、卸载、查询、升级和检验等管理操作;
                
                    程序的组成清单(每个包独有):
                        文件清单
                        安装或卸载时运行的脚本
                    数据库(公共):
                        程序包的名称及版本
                        依赖关系
                        功能说明
                        安装生成的各文件的路径及校验码信息
                管理程序包的方式:
                    使用包管理器:rpm,deb等
                    使用前端工具:yum,apt-get等
                获取程序包途径:
                    系统发行版所带的光盘或官网;
                    Centos镜像:
                        http://mirrors.aliyun.com
                        http://mirrors.sohu.com
                        http://mirrors.163.com
                    项目官方站点
                    第三方组织
                        Fedora-EPEL
                    搜索引擎:
                        http://pkgs.org
                        http://rpmfind.net
                        http://rpmpbone.net
                    自己制作
                建议:使用前检查其合法性;
                    来源合法性;
                    程序包完整性;
                    
    

注:根据马哥视频做的学习笔记,如有错误,欢迎指正;侵删

 

推荐阅读