鸟哥的Linux私房菜10.28 软件安装:原始码与 Tarball

第22章 软件安装:原始码与 Tarball

测试一个文件是不是可执行二进制文件,可以用 “file 文件路径” 来测试

make和configure

make是一支程序,执行它时,make会在当时的目录下搜寻Makefile(or makefile)文本文件,判别原始码是否变动过,然后自动更新执行文件。

configure(or config)是用来侦测用户的作业环境、是否有所需功能等的一个程序。

Tarball软件

将软件的所有原始码文件先以tar打包,然后再以压缩技术来压缩。

编译程序:

才知道vim就是这么直接调用来使用的啊……黑乎乎的

编译与测试程序:gcc 程序名(这种情况下执行文件的文件名会自动设定为a.out)

                                || 程序名 a.out

或者         gcc -c 程序名

                 || 程序名(无后缀)*

调用外部函数库

编译时加入额外函数库的方式:

-lm意义重大:其中"-l" 是“加入某个函数库”的意思,"m" 则是 libm.so 这个函数库

gcc的简易用法(编译、参数与链接)

鸟哥的Linux私房菜10.28 软件安装:原始码与 Tarball_第1张图片

鸟哥的Linux私房菜10.28 软件安装:原始码与 Tarball_第2张图片

----------------------------------------------------------------------------------------------------------

用make进行宏编译

make的优点:1.简化编译时需要下达的指令,2.若在编译完成之后,修改了某个原始码文件,则make仅会针对被修改了的文件进行编译,其他的object file不会被改动,3.最后可以按照相依性来更新执行文件。

make的基本语法规则

makefile里面的数据可以用变量来写比较简单,规则是:

1.变量与变量内容以“=”隔开,同时两边可以具有空格;

2.变量左边不可以有<tab>;

3.变量与变量内容在“=”两边不能具有“:”

4.在习惯上,变量名称最好是大写字母

5.运用变量时,以$(变量)或${变量}使用;

6.在该shell的环境变量是可以被套用的

7.在指令列模式也可以给予变量

环境变量取用的规则如下:

1.make指令列后面所加的环境变量优先;

2.makefile里面指定的第二

3.shell原本具有的环境变量第三

此外,有一个特殊变量   $@  代表目前的标的(target)

-------------------------------------------------------------------------------------------------------

Tarball的管理与建议

Tarball的安装步骤

1.取得原始文件:将tarball文件在/usr/local/src目录下解压缩;

2.取得步骤流程:进入新建目录底下,查阅相关文件;

3.相依属性软件安装:(非必要)

4.建立makefile:以自动侦测程序(configure或config)侦测作业环境,建立makefile文件

5.编译:用make程序并使用该目录下的makefile作为参数配置文件

6.安装

利用patch更新原始码

1.测试旧版程序的功能

2.查阅patch file内容

3.更新原始码,并且重新编译程序,使用 patch -p1 < 文件名

-------------------------------------------------------------------------------------------------------

链接库管理

静态链接库:1.扩展名为.a;2.编译行为(文件比较大);3.独立执行;4.升级比较麻烦

动态链接库:1.扩展名为.so;2.编译行为(文件小);3.不能独立执行;4.升级方便

ldconfig与 /etc/ld.so.conf

为了加快动态链接库的读取速度,需要将它加载到高速缓存中,方法如下:

1.必须要在/etc/ld.so.conf 里面写下“想要读入高速缓存当中的动态链接库所在的目录”,记住是目录

2.利用 ldconfig 将 /etc/ld.so.conf 中的资料读入快取中

3.同时也记录一份在/etc/ld.so.cache这个文件中

此外,ldconfig还可以用来判断动态链接库的链接信息。

鸟哥的Linux私房菜10.28 软件安装:原始码与 Tarball_第3张图片

程序的动态链接库解析:ldd

鸟哥的Linux私房菜10.28 软件安装:原始码与 Tarball_第4张图片

---------------------------------------------------------------------------------------------

检验软件正确性

文件指纹验证啊

md5num / shalsum

用来检验一个文件的指纹码

Linux底下必须要建立指纹数据库的文件有:

/etc/passwd;        /etc/shadow     /etc/group     /usr/bin/passwd    /sbin/portmap     /bin/login     /bin/ls     /bin/ps     /usr/bin/top

你可能感兴趣的:(linux,测试,gcc,File,makefile,patch)