linux之软件管理

一、软件运行编译

        1、软件相关概念

        ABI 应用程序二进制接口

        API 应用程序接口

        POSIX 可移植操作系统接口

        2、C语言程序的实现过程

       

         源码=》预处理=》编译=》汇编=》链接=》可执行程序

        3、动态链接和静态链接

                 静态链接,把需要链接的库文件包括进现有的项目中。

                 动态链接,可执行文件和库文件是分开的,执行的时候需要根据链接将库文件中的内容load到内存中。

                 动态库:.so | .dll   静态库 .a

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

二、软件包和包管理器

        软件包:开源软件最初只提供了.tar.gz的打包的源码文件,用户必须自已编译每个想在GNU/Linux上运行的软件。用户急需系统能提供一种更加便利的方法来管理这些软件,当Debian诞生时,这样一个管理工具dpkg也就应运而生,可用来管理deb后缀的"包"文件。从而著名的“package”概念第一次出现在GNU/Linux系统中,稍后Red Hat才开发自己的rpm包管理系统。

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

注意:ubuntu的包叫deb包,小红帽的包叫rpm包,windows的包叫exe包。

            redhat:rpm文件,rpm包管理器,

            debian:deb文件,dpkg包管理器,

 命名介绍:

        源代码打包文件命名

        name-VERSION.tar.gz|bz2|xz
        VERSION: major.minor.release
        #nginx-1.22.0.tar.gz
        #major   主版本号
        #minor   次版本号
        #release  修正版本号

        rpm包命名方式

        name-VERSION-release.arch.rpm
        VERSION: major.minor.release
        release:release.OS
        #http-parser-2.8.0-9.el8.x86_64.rpm
        #httpd-2.4.37-41.module+el8.5.0+695+1fa8055e.x86_64.rpm
        #nginx-1.14.1-9.module+el8.4.0+542+81547229.x86_64.rpm
        #major   主版本号
        #minor   次版本号
        #release  修正版本号
        #el8 EL是Red Hat Enterprise Linux(EL)的缩写, EL8是Red Hat 8.x,CentOS 8.x,
        el8.4.0+ 是指 适配redhat8.4.0以上及centos8.4.0以上的系统 

        常见的arch:
        x86: i386, i486, i586, i686
        x86_64: x64, x86_64, amd64
        powerpc: ppc
        跟平台无关:noarch   跟平台无关的包里面,通常放的是手册文件

        包的依赖
        软件包之间可能存在依赖关系,甚至循环依赖,即:A包依赖B包,B包依赖C包,C包依赖A包,安装软
        件包时,会因为缺少依赖的包,而导致安装包失败。
        解决依赖包管理工具:
        yum:rpm包管理器的前端工具   红帽
        dnf:Fedora 18+ rpm包管理器前端管理工具,CentOS 8 版代替 yum  红帽
        apt:deb包管理器前端工具
        zypper:suse上的rpm前端管理工具

CentOS

        包管理器rpm

        CentOS系统上使用rpm命令管理程序包,功能:安装、卸载、升级、查询、校验、数据库维护

        yum和dnf

        CentOS使用 yum, dnf 解决rpm的包依赖关系
        YUM: Yellowdog Update Modififier,rpm的前端程序,可解决软件包相关依赖性,可在多个库之间定
        位软件包,up2date的替代工具
        CentOS 8 用dnf 代替了yum ,不过保留了和yum的兼容性,配置也是通用的

Ubuntu

        dpkg:package manager for Debian,类似于rpm, dpkg是基于Debian的系统的包管理器。可以安装,删除和构建软件包,但无法自动下载和安装软件包或其依赖项


        apt:Advanced Packaging Tool,功能强大的软件管理工具,甚至可升级整个Ubuntu的系统,基于客户/服务器架构(c/s)

三、程序包编译

        有特定适用场景,在某些时候,我们没有办法直接使用已经编译好的包,有的时候跟系统其他软件冲突,有的时候某些依赖库装不上,有的时候需要裁减只要特定的几个特性和功能。在这种场景下我们就需要自行通过源码编译出符合自己的环境的二进制包。

        编译之前需要有源码和编译工具链。 

        

        C语言源代码编译安装过程

        ./configure

        make && make install

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值