Linux的程序包管理介绍

API:Application Programing Interface (应用编程接口)

       POSIX:可移植

物理底层上是系统,系统上有各个系统接口可供调用

 

但是系统接口还是过于底层,不便于程序员编程和调用,于是在系统上又有了库,一个库调用可能包含多个系统调用指令。(系统多为C语言研发,所以库又称C库、系统库、系统集库)

 

库调用不论自身内部如何运算,向外输出统一的POSIX API接口,如此,程序源代码便可在各个不同的系统上调用库。

 

程序文件从源码到可以在设备上执行的过程:

程序源代码(文本、字串)——>预处理(变量声明、宏替换...等等)——>编译(编译成目标汇编代码 object coad)——>汇编(汇编为二进制机器指令代码)——>链接(共享库调用地址与代码相应符号链接)

静态编译:程序内部自带所需库文件。程序体积较大,但是可以不依赖外部环境。

       共享编译:多数程序的选择。直接调用系统的库文件,依赖环境。

 

ABI:Application Binary Interface (应用二进制接口,linux和windows不兼容)

Linux二进制可执行文件格式EFI,windows二进制可执行文件格式exe。

不同系统之间二进制可执行文件格式格式不同,同时链接的共享库调用地址也不一样(如:/lib64和C\WINDOWS\SYSTEM32下的.dll文件)

虽然API接口统一了,但是因为ABI接口的不同,所以程序在LINUX和WINDOWS上还是不能兼容运行

 

 

但也是有办法可以实现兼容的:库级别的虚拟化

linux上可以安装WINE,以在linux上提供软件需要的windows虚拟库接口,windows上可以安装cywin,以在windows上提供软件需要的linux虚拟库接口.

 

系统级开发:C ,C++

二进制应用程序的组成部分:二进制文件、库文件、配置文件、帮助文件。(二进制文件、库文件是程序源代码的组成部分,配置文件、帮助文件是辅助部分,通常由程序员直接提供放置于源代码目录中,无需编译。)

应用级开发:java,Python,php,per1,ruby

JDK:java开发工具箱

JVM:java运行工具

 

程序包管理器:

debian:deb,dpt

redhat:rpm,rpm (redhat package manager)->(rpm is package manager)

 

源代码命名:name-version.tar.gz

       version:主版本号major次版本号minor发行版本号release

rpm包命名方式:name-version-arch.rpm

       version:与源码一致: 主版本号major次版本号minor发行版本号release

       arch: rpm包的发行版本号release,[os适用系统级别],arch运行平台、架构

 

rpm包可拆包为:主包,支(子)包

                            包之间存在依赖关系

                                   testapp-version-arch.rpm 主包

                                   testapp-devel-version-arch.rpm 支包

 

yum:rpm包管理的前端工具,补充和丰富了rpm功能,用于实现对程序包之间的依赖关系做分析,并自动对依赖包进行下载、安装、删除。

 

查看二进制程序所依赖的库文件:

#ldd /PATH/TO/FILE

管理及查看本机装载的库文件

ldconfig,直接配置

#ldconfig -p  显示已经缓存的所有可用的库文件的名称和文件路径的映射关系

       配置文件为:/etc/ld.so.conf,/etc/ld.so.conf.d/*.conf

       缓存文件:/etc/ld.so.cache

程序包管理器

       功能:将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而方便快捷的实现程序包的安装、卸载、查询、升级和校验等管理操作

  1. 程序的组成清单(每个包独有)
    1. 文件清单
    2. 安装或卸载时运行的脚本
  2. 数据库(公共)

程序包名称及版本

依赖关系

功能说明

安装生成的各文件的路径及校验码信息

 

管理程序包的方式:

       使用包管理器:rpm

       使用前端工具:yum,dnf

 

获取程序包的途径:

  1. 系统发行版的光盘或官方的服务器

Centos镜像:http://mirrors.aliyun.com

                      http://mirrors.sohu.com

                      http://mirrors.163.com

  1. 项目官方站点
  2. 第三方组织

首选:Fedora-EPEL组织

              收索引擎:

                     http://pkgs.org

                     http://rpmfind.net

                     http://pbone.net

       4、自制

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值