美文网首页
开放源码的软件安装与升级简介

开放源码的软件安装与升级简介

作者: epiiplus1equal0 | 来源:发表于2019-01-22 15:04 被阅读0次

    Linu上面的软件几乎都经过GPL授权, 所以每个软件几乎均提供源代码, 并且你可以自行修改该程序代码, 以符合你个人的需求!

    1. 什么是开放源码, 编译程序与可执行文件

    写完的程序就是所谓的源代码, 这个程序代码文件其实就是一个纯文本文件, 再来就是把这个文件"编译"成操作系统看的懂得二进制文件(Linux上真正识别的可执行文件其实是二进制文件)

    在编译的过程中还会生成目标文件(Object file), 这些文件是以 *.o 的扩展名形式存在的

    file /bin/bash
    /bin/bash: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
    #如果是二进制程序且可执行时, 它就会显示可执行文件类(ELF 64-bit LSB executable), 同时会说明是否使用共享库(shared libs)
    

    2. 什么是函数库

    类似子程序的角色, 可以被调用来执行一段功能函数

    3. 什么是make与configure

    make: 简化编译过程

    当进行make时, make会在当前的目录下搜索Makefile(or makefile)文件, 而Makefile里面则是记录了源码如何编译的详细信息. make会自动判别源码是否经过变动而自动更新执行文件.

    configure (or config): 检测用户的操作环境, 以下为检测内容:

    • 是否有合适的编译程序编译本软件的程序代码
    • 是否已存在本软件所需的函数库或其他相关软件
    • 操作系统平台是否适合本软件, 包括Linux的内核版本
    • 内核的头定义文件(header include)是否尊在(驱动程序必要的检测)

    你真正需要做的事情只有两个:

    • 1.执行configure来新建Makefile
    • 2.再以make调用所需要的数据来进行编译

    4. 什么是Tarball的软件

    tarball文件一般的扩展名就会写成 *.tar.gz 或者简写为 *.tgz, tarball是一个软件包, 你将它解压后, 通常有如下文件:

    • 源代码文件
    • 检测程序文件(configure or config)
    • 本软件的简易说明与安装说明(INSTALL or README)

    5. 如何安装与升级软件

    一个tarball软件是如何安装的? 基本流程如下:

    • 1.将Tarball由厂商的网页下载
    • 2.解压生成源码文件
    • 3.开始以gcc进行源码编译(会生成目标文件)
    • 4.以gcc进行函数库, 主程序, 子程序的链接, 以形成主要的二进制文件
    • 5.将上述的二进制文件以及相关的配置文件安装到自己的主机上

    使用传统程序语言进行编译的简单范例

    (编译, 参数, 链接)

    #仅将源码编译成目标文件, 并不制作链接等功能
    gcc -c hello.c #会自动生成hello.o这个文件, 但不会生成可执行文件
    
    #在编译的时候, 依据操作环境给与优化执行速度
    gcc -O -c hello.c #会自动生成hello.o文件并进行优化
    
    #在制作二进制文件的同时, 将链接的函数库与相关的路径写入
    gcc sin.c -lm -L/lib -L/usr/lib -I/usr/include
    #这个命令最终生成可执行的二进制文件
    #-lm指的是libm.so或libm.a这个函数库文件, 其中lib与.so均不用写
    #-L后面接的路径是上面那个函数库的搜索目录
    #-I后面接的路径是源码内的include文件所在目录
    
    #将编译的结果输出成某个特定的文件名
    gcc -o hello hello.c #-o后面接的是生成的二进制文件的文件名
    
    #在编译时输出见多的说明信息
    gcc -o hello hello.c -Wall
    
    #通常称-Wall或-O这些非必要的参数为标志(FLAGS), 因为我们使用的是C程序, 所以有时也会简称这些标识为CFLAGS
    

    用make进行宏编译

          本文基于<鸟哥的Linux私房菜>, 归纳整理, 在此致谢鸟哥.

    相关文章

      网友评论

          本文标题:开放源码的软件安装与升级简介

          本文链接:https://www.haomeiwen.com/subject/aagljqtx.html