您的位置:首页 > 运维架构 > Linux

linux软件安装:源码(1)

2016-07-21 21:45 393 查看
在windows上安装软件只要不断点击下一步下一步就行,但是无法修改软件的源代码,如果要增加或者减少软件的某些功能,只能求助于当初发行软件的厂商了。

而linux上面的软件几乎都经过GPL授权的,也就是说每个软件都提供源代码,可以自行修改程序。

何为GPL:GPL,是General Public License的缩写,是一份GNU通用公共授权非正式的中文翻译,保证你共享和修改自由软件的自由。——保证自由软件对所有用户是自由的。

linux上真正识别的可执行文件其实是二进制文件,那么我们如何做出一个二进制的程序呢,首先要写程序,比如vim编写程序,这就是所谓的源代码,就是一般的纯文本文件,在完成这个源文件的编写后,进行编译成os能够识别的二进制程序,而要编译的话自然需要编译程序来操作。

比如使用c语言进行源代码编写,写完后,用linux上标准的c语言编译程序gcc来编译,就可以制作一个二进制文件。

事实上,在编译过程中还会生成所谓的目标文件,拓展名.o结尾,有的时候会在程序中调用其他的外部子程序,这时在编译过程中就必须把函数库加进去,如此,编译程序就可以将us哦呦的程序代码和函数库做一个链接(link)以生成正确的执行文件。

目标文件是指源文件经过编译程序产生的能被cpu直接识别二进制文件。
可执行文件就是将目标文件连接后形成的可执行文件,当然也是二进制的。

make configure
使用gcc编译的过程并不简单,如果源码很大的话。此时可使用make命令来简化编译命令。
make是一个程序,当执行make时,make会在当前目录下搜寻makefile这个文本文件,makefile记录了源码如何编译的详细信息,而makefile如何得到,通过软件开发商都会写一个
检测程序来检测用户的操作环境。检测程序完毕后,会新建这个makefile规则文件,通过这个检测程序的文件名叫configure或config
那么为什么要检测操作环境呢?
虽然每个linux distribution用的是相同的内核,但是内核的调用不同,而且每个软件所需的函数库也不同,同时,软件开发商不仅会针对linux开发,而是会针对整个unix-like做开发
因此也必须检测该操作系统是否有合适的编译器,一般来说,检测程序会检测的数据如下:
是否有合适的编译程序可以编译本软件的程序代码。
是否已经存在本软件所需要的函数库或其他需要的相关软件。
操作系统是否适合本软件
内核的头定义文件是否存在

也就是说,首先要执行configure来新建makefile,这个步骤很重要,然后用make调用所需要的数据来编译即可。

由于不同的linux distribution的函数库文件所放置的位置的路径或者是函数库的文件名都不相同,理论上在centos上编译编译出的二进制文件在ubuntu上无法执行,所以同一套
软件要在不同平台上面执行时,必须要重复编译,因此需要源码。

软件的安装和升级
软件的更新分两大类:
直接以源码通过编译来安装和升级
直接用编译好的二进制程序来安装和升级

tarball文件:一个软件包,压缩文件
解压后:
源代码文件
检测程序文件
软件的安装说明(install、readme)

tarball安装流程:
下载tarball
解压缩得到很多源文件
用gcc编译生成目标文件
用gcc进行函数库,主程序,子程序的链接,形成主要的二进制文件
将上述额二进制文件和相关的配置文件安装在自己的主机上。

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: