首页 > 系统相关 >ubuntu软件以源码编译安装软件原理

ubuntu软件以源码编译安装软件原理

时间:2023-02-11 11:45:28浏览次数:75  
标签:文件 make 编译 源码 ubuntu 软件 安装

一.关于软件包

​ 在linux中安装软件是需要安装包的,软件的安装包有各种类型:.zip,.rar,.rpm,.tar.gz,.tar。软件包还可以分为源代码包和二进制

包,源代码包是没有经过编译的包,需要经过GCC、C++编译器环境编译才能运行。二进制包无需编译,可以直接安装使用。区分是否为

代码包还是二进制包还得基于软件包里面的文件来判断,包含.h、.c、.cpp、.cc等结尾的源码文件,称之为源代码包,而软件包里面存

在bin目录(bin目录里有可执行文件),称之为二进制包。源码包高度可定制,可以自由选择自己需要的功能

二.软件编译过程

1.将源码编译成可供Linux运行的二进制文件一共需要两步:

  • ​ 使用gcc编译器将源码编译成目标文件
  • ​ 再次使用gcc编译器将目标文件链接成二进制文件

这过程看似简单,实则不然。一个软件的源代码往往被封装在多个源文件中,此外这些文件有错综复杂的依赖关系,编译需要严格按照指

定的顺序进行,这无疑增加了编译的难度。好在make命令可以帮助我们简化编译过程。整个编译过程被浓缩在Makefile文件中(告诉

make命令需要怎么去编译和链接程序),当执行make命令时,make会去当前目录中寻找Makefile文件,并根据该文件中的要求完成整个

编译过程。而Makefile文件由configure命令产生。当执行configure命令时,configure会根据当前系统环境动态生成一个适合本系统的

Makefile文件,供make命令使用。

2.Linux源码安装步骤

  • ​ 获取源码并解压
  • ​ 查看INSTALL与README文件:解压后查看INSTALL与README文件,这两个文件中详细介绍了软件的安装方法和注意事项
  • ​ 创建Makefile文件:执行configure命令,生成Makefile文件
  • ​ 编译:执行make clean;make命令将源码编译成二进制文件。PS:make clean命令用来清除上一次编译生成的目标文件,这个步骤可有可无,但为了确保编译的成功,还是加上为好,防止由于软件中含有残留的目标文件导致编译失败
  • ​ 安装:执行make install命令将上一步编译好的二进制文件安装到指定的目录中去

三.编译安装常用参数

# ./configure
a. 指定安装路径,例如 --prefix=/usr/local/Nginx
b. 启用或禁用某项功能, 例如 --enable-ssl, --disable-filter --with-http_ssl_module
c. 和其它软件关联,例如--with-pcre
d. 检查安装环境(检查依赖到的外部环境),例如是否有编译器gcc,是否满足软件的依赖需求
最终生成:Makefile
# make  -j 4    #按Makefile文件编译,可以使用-j 4指定4核心cpu编译,提升速度
# make install  #按Makefile定义的文件路径安装
# make clean     #清除上次的make命令所产生的object和Makefile文件。使用场景:当需要重新执行configure时,需要执行make clean
#make  uninstall   #删除安装包,有时删除不干净,所以建议大家安装时,在configure步骤添加一个: --prefix  参数。这样删除或备份时,直接对删除--prefix指定的安装目录操作就可以了。

四.源码编译出错的解决思路

1.首先编译软件需要各种编译器,各种依赖包,编译之前先安装软件的依赖包能减少出错。注意查看INSTALL与README文件,这两个文

件详细介绍了软件的安装方法和注意事项;

2.根据./configure的报错信息来解决问题,缺少依赖包就安装依赖包。如果知道缺少依赖软件名,但是不知道依赖包,可以使用yum

search 软件名,查看属于哪个依赖包,然后安装;

3.可以使用http://www.rpmseek.com/index.html查找需要的软件。

五.各种软件安装方法的特点

  • ​ 使用yum 或者rpm直接安装软件:操作方便,软件版本低(稳定版),稳定性好,管理方便;
  • ​ 源码编译安装软件:操作麻烦,软件版本新,可以定制。

标签:文件,make,编译,源码,ubuntu,软件,安装
From: https://www.cnblogs.com/icaowu/p/17111123.html

相关文章

  • 为何我选择Ubuntu操作系统
    选择Ubuntu操作系统的原因十分简单。那就是我进行了占卜。卦象显示,用Ubuntu编程,才会收获一个较好的结果。于此,我又自相矛盾了。这下我将全面转战Ubuntu系统。的确,我的确憎恨......
  • ubuntu系统以源码方式安装gcc
    使用源码安装软件的三个步骤:配置(configure)、编译(make)与安装(makeinstall),如下图所示。(其中configure、Makefile.in一般由项目管理器自动生成的,GCC编译器需要安装。) 首先......
  • Ubuntu22.04 系统设置丢失及关联问题
    系统设置丢失问题描述设置点击无响应,或各位置的设置消失解决方法执行以下两条命令即可(没有立即生效尝试注销用户或重启)sudoapt-getinstallunity-control-centersu......
  • 在Ubuntu 20.04中使用源码方式安装python3.8
    在ubuntu上安装Python有两种方法:在线安装和源码编译安装。方法1:使用apt在线安装1.更新软件包列表并安装必备组件:$sudoaptupdate$sudoaptinstallsoftware-prop......
  • 淘宝客插件哪个好用(十大淘客软件排名)
    1.阿里指数阿里指数是Alibaba.com用户常用的数据分析工具。分析Alibaba.com的流行关键词,了解市场产品趋势是很实用的。这是一个了解市场趋势的数据分析平台。2.商店侦探......
  • Ubuntu 安装 MinIO
    MinIO是一个开源的高性能对象存储解决方案,支持多种安装方式,本例仅介绍最基础的单机安装方式。下载安装文件直接从MinIO官网下载安装文件。下载服务端wgethttps://dl......
  • 设计值得称赞的软件架构
    来自不同团队的四位不同的首席工程师向我们提出了尖锐的问题……他们正在仔细审查我为之做出重大贡献的软件设计。今天,我想谈谈软件设计。你如何设计经得起高级工程师审......
  • Ubuntu22.04LTS 修改镜像源
    方法一:Ubuntu22.04LTS可以在系统安装时修改源地址方法二:修改配置文件源/etc/apt/sources.list修改配置文件配置文件路径 /etc/apt/sources.listcp/etc/apt/sources.li......
  • drf,drf-jwt源码,自定义用户表签发和认证,simpleui的使用,权限控制(acl,rbac)
    内容回顾接口文档的编写word,md编写》存放位置:存放共享文件平台,git上,总之就是可以让其他人能访问到第三方的接口文档编写平台公司自己开发,使用开源搭建,Yapi自动生成接......
  • python之路68 drf从入门到成神 9 drf_jwt源码执行流程、自定义用户表签发和认证、simp
    drf-jwt源码执行流程(了解)签发(登录)源码分析登录接口,路由匹配成功,执行obtain_jwt_token----》post请求----》ObtainJSONWebToken的post方法path('login/',obtain_jwt......