Nginx为什么需要编译安装?

MaxZhao_it 发布于 09/19 16:18
阅读 1K+
收藏 1

最近开始使用Nginx,很奇怪,为什么不能像其它中间件一样提供安装包直接启动?难道在x86的CentOS与Ubuntu 上,编译后的文件还不一样?

加载中
3
ArchitectureMaster
ArchitectureMaster

原因很简单里面含有c的源码。

1.高级语言如java基于虚拟机所写代码编译后是字节码会由虚拟机解释成原始汇编。

2.c语言的源码如nginx则直接就jit成汇编。

3.汇编执行需要不同的指令集,而x86/amd64、arm指令集是不同的、我国的loongarch64指令集基于mips。不同的指令集能解读的汇编也不同。所以需要nginx在不同的操作系统下编译成不同的指令集支持的内容。

4.nginx在 arm linux下源码编译生成的就是arm 64指令集。在mips指令集就是mips的内容。所以会出现楼主说的那种每种平台要重新编译的情况。

5.如果做成对应的deb包或rpm包其实步骤也基本相同,只不过是安装包程序帮你完成了这个工作。但deb包这里就已经打包了,就算同为linux如arm包和mips包是无法混用的。

必威体育app手机版windows平台可以直接安装的原因很简单,windows 过去只有win32的x86指令集。而只有这一种指令集所以只需要出一个安装包即可。现在则会出现windows arm 和x86两种安装包而这两种也不能混用。

编译安装的好处就是不用做成很多不同的安装包,只需要cmake就可以了。

 

xiexiaowei
xiexiaowei
又学到了
pyboy58
pyboy58
+1
2
墨盒
墨盒

必威体育app手机版大概率是因为是用c写的吧,c的特性就是一次编写,处处编译

0
自由PHP
自由PHP

必威体育app手机版nginx可以制作免安装包

0
M
Magician专区

可以用yum,apt,docker

MaxZhao_it
MaxZhao_it
you know who?
0
湖水没了
湖水没了

一次编写 到处编译

0
Firxiao
Firxiao

版本/插件支持问题

必威体育app手机版一般生产用的发行版的安装包版本较低

必威体育app手机版编译安装可以使用最新版

同样适用于其他软件

另外 如果对版本/插件没要求,一般发行版自带的就能满足需求。

0
zhaoyaogit
zhaoyaogit
原因很简单,很多使用ng都是需要增加定制化开发module,而不是用的标准版。增加模块需要编译的
0
_snake_
_snake_

直接用docker 运行不就行了?如果需要额外的拓展插件,自己构建docker镜像也能完美解决。

0
z
zb79463626

必威体育app手机版不知道现在马路都通了吗?大家都用上手机了!

0
pyboy58
pyboy58

必威体育app手机版应该有定制的傻瓜式安装包,得找找不一定要编译,看下哪个网友比较人品好,自己做好的编译包上传上来

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部