nginx安装过程中为啥同时需要zlib与zlib-devel,不是有zlib就可以了吗?

为啥需要zlib-devel?
同样有openssl了,为啥还需要openssl-devel?

阅读 2.4k
1 个回答

那是RHEL和Debian的分包策略喜欢分成所谓的“运行环境”和“构建环境”,实际上ArchLinux之类的包管理策略就不用这种了,就一个zlib包,相当于同时包含了Debian的zlib和zlib-devel。

言归正传,以Debian/Ubuntu为例,按照他们一贯的分包策略,zlib只包含运行环境,也就是大概libz.so文件,一些手册,一些LISCENSE文件之类的东西

而zlib-devel包含构建环境的依赖,一般就是/usr/include/下的头文件,以及pkgconfig的配置文件zlib.pc文件,只有编译程序的时候你的程序依赖zlib可能才需要用这个包

你安装的如果是二进制包,比如nginx-full,那么自然不需要这些-devel包,如果你要在本地编译安装,那肯定需要devel包,否则会告诉你找不到头文件之类的错误。

实际上我们检查nginx包的依赖,确实是不会有devel包的:

# apt depends nginx
nginx
  Depends: libc6 (>= 2.28)
  Depends: libcrypt1 (>= 1:4.1.0)
  Depends: libpcre3
  Depends: libssl1.1 (>= 1.1.1)
  Depends: zlib1g (>= 1:1.1.4)
  Depends: lsb-base (>= 3.0-6)
  Depends: adduser
  Conflicts: nginx-common
  Conflicts: nginx-core
  Replaces: nginx-common
  Replaces: nginx-core
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题