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

2019-01-22  本文已影响0人  epiiplus1equal0

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): 检测用户的操作环境, 以下为检测内容:

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

4. 什么是Tarball的软件

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

5. 如何安装与升级软件

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

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

(编译, 参数, 链接)

#仅将源码编译成目标文件, 并不制作链接等功能
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私房菜>, 归纳整理, 在此致谢鸟哥.
上一篇 下一篇

猜你喜欢

热点阅读