linux软件安装:源码(1)
在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进行函数库,主程序,子程序的链接,形成主要的二进制文件 将上述额二进制文件和相关的配置文件安装在自己的主机上。
posted on 2016-07-21 21:45 sichenzhao 阅读(139) 评论(0) 编辑 收藏 举报