linux 包介绍

ABI与API
     ABI:应用程序二进制接口 (Application Binary Interface)  定义了一组在PowerPC系统软件上编译应用程序所需要遵循的一套规则。主要包括基本数据类型,通用寄存器的使用,参数的传递规则,以及堆栈的使用等等。
               Windows与Linux不兼容
                    ELF(Executable and Linkable Format)
                    PE(Portable Executable)
                库级别的虚拟化:
                    Linux: WINE
                    Windows: Cygwin
     API:应用程序编程接口 (Application Programming Interface)  顾名思义,是编程的接口,换句话说也就是你编写“应用程序”时候调用的函数之类的东西。对于内核来说,它的“应用程序”有两种:一种是在它之上的,用户空间的真正的应用程序,内核给它们提供的是系统调用这种接口,比如 read(2),write(2);另一种就是内核模块了,它们和内核处于同一层,内核给它们提供的是导出的内核函数,比如 kmalloc(),printk()。
        POSIX:Portable OS
    程序源代码 --> 预处理 --> 编译 --> 汇编 --> 链接
        静态编译:.a
        动态编译:.so

        源代码:name-VERSION.tar.gz|bz2|xz
            VERSION: major.minor.release
        rpm包命名方式:
            name-VERSION-release.arch.rpm
            例:在光盘的Packages文件夹下存在常用的包
            
            VERSION: major.minor.release
            release:release.OS
            常见的arch:
            x86: i386, i486, i586, i686       intel的开发的一种32位指令集
            x86_64: x64, x86_64, amd64    兼容x86的全新64为指令集
            powerpc: ppc                           一种精简指令集(RISC)架构的中央处理器(CPU),其基本的设计源自IBM(国际商用机器公司)的POWER,相关软件需到ibm相关网站下载
            跟平台无关:noarch
    包的分类
            Application-VERSION-ARCH.rpm: 主包
            Application- devel-VERSION-ARCH.rpm 开发子包
            Application- utils-VERSION-ARHC.rpm 其它子包
            Application- libs-VERSION-ARHC.rpm 其它子包
    

包管理器
    程序包管理器:
        功能:将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而方便快捷地实现程序包的安装、卸载、查询、升级和校验等管理操作
    包文件组成 (每个包独有)
        RPM包内的文件
        RPM的元数据,如名称,版本,依赖性,描述等
        安装或卸载时运行的脚本
    数据库(公共):/var/lib/rpm
        程序包名称及版本
        依赖关系
        功能说明
        包安装后生成的各文件路径及校验码信息
    二进制应用程序的组成部分:
        二进制文件、库文件、配置文件、帮助文件
    程序包管理器:
        debian:deb文件, dpkg包管理器
        redhat: rpm文件, rpm包管理器
        rpm: Redhat Package Manager
        RPM Package Manager
    包之间:可能存在依赖关系,甚至循环依赖
    解决依赖包管理工具:
        yum:rpm包管理器的前端工具
        apt-get:deb包管理器前端工具
        zypper: suse上的rpm前端管理工具
        dnf: Fedora 18+ rpm包管理器前端管理工具

库文件
    查看二进制程序所依赖的库文件
        ldd /PATH/TO/BINARY_FILE
    管理及查看本机装载的库文件
        ldconfig 加载库文件
        /sbin/ldconfig -p: 显示本机已经缓存的所有可用库文件名及文件路径映射关系
        配置文件:/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf
        缓存文件:/etc/ld.so.cache

程序包的来源
    管理程序包的方式:
        使用包管理器:rpm
        使用前端工具:yum, dnf
    获取程序包的途径:
        (1) 系统发版的光盘或官方的服务器;
            CentOS镜像:
            https://www.centos.org/download/
            http://mirrors.aliyun.com
            http://mirrors.sohu.com
            http://mirrors.163.com
        (2) 项目官方站点
        (3) 第三方组织:
            Fedora-EPEL:
                Extra Packages for Enterprise Linux
            Rpmforge:RHEL推荐,包很全
            搜索引擎:
                http://pkgs.org
                http://rpmfind.net
                http://rpm.pbone.net
                https://sourceforge.net/
        (4) 自己制作
            注意:第三方包建议要检查其合法性
            来源合法性,程序包的完整性
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值