Linux基本配置和管理 7 ---- 软件安装:源码和Tarball

简介: 一 开放源码的软件安装和升级简介      1 Linux上面的软件几乎都是经过GPL的授权,所以每个软件几乎均提供源代码,并且你可以自行修改程序代码      2 在Linux系统上面,一个文件能不能被执行看的是有没有可执行的那个权限(...


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

     1 Linux上面的软件几乎都是经过GPL的授权,所以每个软件几乎均提供源代码,并且你可以自行修改程序代码

     2 在Linux系统上面,一个文件能不能被执行看的是有没有可执行的那个权限(具有x权限),不过Linux上面真正识别的可执行文件其实是二进制文件,例如/usr/bin/passwd

     3 程序代码文件其实就是一个一般的纯文本文件,在完成这个源码文件的编写之后,再来就是要将这个文件“编译”成为操作系统看的懂的二进制文件,而要编译自然要写“编译程序”来操作,经过编译程序的编译与链接之后,就会生成一个可以执行的二进制程序

     4 总之,我们可以这么说

        开放源码:就是程序代码,写给人类看的程序语言,但机器不认识,所以无法执行

        编译程序:将程序代码转译成为机器看得懂的语言,就类似翻编者的角色

        可执行文件:经过编译程序变成二进制程序之后机器看得懂的所以可以执行的文件 

     5 函数库类似子程序的角色,可以被调用来执行的一段功能函数。分为静态函数库和动态函数库

     6 有的时候有一堆的程序代码文件,我们需要去手动编译,但是很多编译命令让我们写到疯掉,这个时候我们可以利用make这个命令的相关功能来进行编译过程的命令简化

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

     8 makefile是怎么产生的呢?一般我们在当前的目前下会有一个configure,这个configure检测程序可以找到所需函数库,编译器及其他资料

     9 所谓的Tarball文件,其实就是将软件的所有源码文件先以tar打包,然后再以压缩技术来压缩,通常最常见的就是gzip来压缩了,因为利用了tar和gzip的功能,所以tarball的文件一般的扩展名为*.tar.gz或者是*.tgz

     10 一个软件的tarball是如何安装的呢,基本流程是这样的

         1 将tarball由厂商的网页下载下来

         2 将tarball解压缩,生成很多的源码文件

         3 开始以gcc进行源码的编译(会生成目标文件)

         4 然后以gcc进行函数库,主程序,子程序的链接,以形成主要的二进制文件

         5 将上面的二进制文件以及相关的文件配置安装到自己的主机上面


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

     1 在默认的情况下,如果我们直接以gcc编译源码,并且没有加上任何参数,则执行文件的文件名会被自动的设置为a.out这个文件名

     2 gcc的简易用法

        1 gcc -c tmp.c  

           -c参数是仅将源码编译成为目标文件,并不制作链接等功能

           会生成tmp.o这个文件,但是并不会生成可执行文件

        2 gcc -o tmp.c -c

           -o参数在编译的时候,依据操作环境给予优化速度

           会自动的生成tmp.o这个文件,并且进行优化

        3 gcc tmp.c -lm

           -lm指的是libm.so或libm.a这个函数库文件

        4 gcc -o main tmp.c -wall

           -o tmp指定生成的可执行文件为main

           -wall 会把详细的信息列出


三 Tarball的管理与建议

     1 Tarball安装的基础操作大多是以下流程:

        1 取得源文件:将tarball文件在/usr/local/src目录下解压缩

        2 取得步骤流程:进行新建立的目录下面,去查阅INSTALL与README等相关文件内容

        3 相关属性软件安装:根据INSTALL/README的内容查看并安装好一些相关的软件

        4 建立makefile:以自动检测程序configure检测操作环境,并建立Makefile这个文件

        5 编译:以make这个程序并使用该目录下的Makefile作为它的参数配置文件,来进行编译的操作

        6 安装:以make这个程序,并以Makefile这个参数配置文件,以及install这个目标的指定来安装到正确的路径

     2 所谓的更新源码只是更新少部分,很多的软件开发商在更新了源码之后,都会发布所谓的patch file

     3 我们只要下载了patch file就能够对你的软件源码更新了,只不过更新了源码并非软件就更新,我们还需要将该软件进行编译後才会是最终的正确的软件,因为patch的功能主要是更新源码而已 

     4 我们可以使用MD5这个指纹验证机制来判断该文件有没有被改动过

  


目录
相关文章
|
2月前
|
网络协议 安全 Linux
如何配置Linux端的ftp?
如何配置Linux端的ftp?
144 64
|
14天前
|
Java Linux 网络安全
NIFI在Linux服务区上的部署配置过程是什么?
【10月更文挑战第21天】NIFI在Linux服务区上的部署配置过程是什么?
35 2
|
27天前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
223 3
|
1月前
|
监控 安全 网络协议
快速配置Linux云服务器
【10月更文挑战第3天】快速配置Linux云服务器
|
29天前
|
Ubuntu Linux
Linux中软件安装问题
【10月更文挑战第4天】
19 1
|
2月前
|
Oracle Java 关系型数据库
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决
如果遇到"exec format error"问题,文章建议先检查Linux操作系统是32位还是64位,并确保安装了与系统匹配的JDK版本。如果系统是64位的,但出现了错误,可能是因为下载了错误的JDK版本。文章提供了一个链接,指向Oracle官网上的JDK 17 Linux版本下载页面,并附有截图说明。
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决
|
2月前
|
Linux 编译器 开发工具
快速在linux上配置python3.x的环境以及可能报错的解决方案(python其它版本可同样方式安装)
这篇文章介绍了在Linux系统上配置Python 3.x环境的步骤,包括安装系统依赖、下载和解压Python源码、编译安装、修改环境变量,以及常见安装错误的解决方案。
96 1
|
2月前
|
Ubuntu Linux
Linux服务器的自动启动可以在哪里进行配置?
Linux服务器的自动启动可以在哪里进行配置?
153 3
|
1月前
|
应用服务中间件 Linux Shell
Linux 配置 Nginx 服务的详细步骤,绝对干货
Linux 配置 Nginx 服务的详细步骤,绝对干货
67 0
|
1月前
|
Unix Linux Go
Linux 使用Yum安装Go和配置环境
Linux 使用Yum安装Go和配置环境