在Linux下安装源码包是最常用的 。在日常的管理工作中,阿铭的大部分软件都是通过源码安装的 。安装源码包,需要我们把源代码编译成可执行的二进制文件 。如果你能读懂这些源代码,就可以修改这些源代码的自定义功能,然后再按你的需求编译 。使用源码包除了可以自定义修改源代码外,还可以定制相关的功能,因为源码包在编译时可以附加额外的选项 。
源码包的编译用到了 Linux 系统里的编译器 。常见的源码包一般都是用 C 语言开发的,因为 C 语言是 Linux 上最标准的程序语言 。Linux 上的 C 语言编译器称为 gcc,利用它可以把 C 语言编译成可执行的二进制文件 。所以,如果你的机器上没有安装 gcc,就无法编译源码,你可以使用命令 yum install -y gcc 来完成安装 。
安装源码包通常需要以下 3 个步骤 。
(1) ./configure
这一步可以定制功能,加上相应的选项即可,具体有什么选项可以通过命令./configure –help 来查看 。这一步会自动检测你的 Linux 系统与相关的套件是否有编译该源码包时所需要的库,因为一旦缺少某个库,就不能完成编译 。只有检测通过后,才会生成 Makefile 文件 。
(2) make
使用这个命令,会根据 Makefile 文件中预设的参数进行编译,这一步其实就是 gcc 在工作了 。
(3) make install
这一步是安装步骤,用于创建相关软件的存放目录和配置文件 。
对于以上这 3 个步骤,并不是所有的源码包软件都一样,也就是说,源码包的安装并没有标准的安装步骤 。这就需要你拿到源码包解压后,进入目录,找到相关的帮助文档(通常,会以 INSTALL 或者 README 为文件名) 。下面阿铭会编译安装一个源码包来帮助你更深刻地理解安装源码包的过程 。
下载源码包
下载源码包一定要去官方站点,因为你从其他网站下载的源码包很有可能是被修改过的 。我们先把 Nginx 的源码包下载到/usr/local/src/目录下,如下所示:
# cd /usr/local/src/# wget http://nginx.org/download/nginx-1.22.0.tar.gz 阿铭提供的下载地址为 Nginx 下载地址,如果该地址已失效,请到其官网获取最新的 Nginx 下载地址 。在下载之前,阿铭先进入/usr/local/src 目录,这是因为阿铭习惯把源码包都放到这个目录下 。这样做的好处是方便自己和其他管理员维护 。所以,阿铭建议你将下载的源码包都统一放到这个目录下 。
解压源码包
解压.tar.gz 格式的压缩包,这在前面已经介绍过,示例命令如下:
# tar -zxvf nginx-1.22.0.tar.gz 配置相关的选项并生成 Makefile
首先,进入解压后的源码目录,在配置之前可以查看可用的配置参数,如下所示:
# cd nginx-1.22.0# ./configure --help |less --helpprint this message--prefix=PATHset installation prefix--sbin-path=PATHset nginx binary pathname--modules-path=PATHset modules path--conf-path=PATHset nginx.conf pathname--error-log-path=PATHset error log pathname--pid-path=PATHset nginx.pid pathname--lock-path=PATHset nginx.lock pathname--user=USERset non-privileged user forworker processes--group=GROUPset non-privileged group forworker processes 限于篇幅,后面的内容阿铭省略了 。常用的配置选项有–prefix=PREFIX,它的意思是定义软件包的安装路径 。如果你想了解其他配置选项,也可以使用命令./configure –help 查看详情 。这里阿铭把 Nginx 安装在/usr/local/nginx 目录下,该选项的配置为–prefix=/usr/local/nginx 。配置过程如下所示:
# ./configure --prefix=/usr/local/nginxchecking for OS + Linux 4.18.0-348.el8.0.2.x86_64 x86_64checking for C compiler ... found + using GNU C compiler + gcc version: 8.5.0 20210514 (Red Hat 8.5.0-10) (GCC)checking for gcc -pipe switch ... foundchecking for -Wl,-E switch ... foundchecking for gcc builtin atomic operations ... foundchecking for C99 variadic macros ... foundchecking for gcc variadic macros ... foundchecking for gcc builtin 64 bit byteswap ... foundchecking for unistd.h ... foundchecking for inttypes.h ... foundchecking for limits.h ... foundchecking for sys/filio.h ... not foundchecking for sys/param.h ... foundchecking for sys/mount.h ... foundchecking for sys/statvfs.h ... foundchecking for crypt.h ... foundchecking for Linux specific featureschecking for epoll ... foundchecking for EPOLLRDHUP ... foundchecking for EPOLLEXCLUSIVE ... foundchecking for eventfd() ... foundchecking for O_PATH ... foundchecking for sendfile() ... foundchecking for sendfile64() ... found 中间省略./configure: error: the HTTP rewrite module requires the PCRE library.You can either disable the module by using --without-http_rewrite_moduleoption, or install the PCRE library into the system, or build the PCRE librarystatically from the source with nginx by using --with-pcre=<path> option.
推荐阅读
- 自己装电脑操作系统详细流程 安装版系统怎么装
- 锌钢护栏会生锈吗
- 只需要13步就完成 solidworks安装教程
- 宽带错误651最简单解决方法 网络连接错误651是什么原因
- 转换视频格式最简单的办法 视频转换格式的软件哪个好
- 高层窗户内安全护栏怎么安装
- 热水器进水管怎么安装
- 毛巾架一般安装在什么位置
- pdf文件转换成cad最简单方法 pdf转cad怎么弄
- 台盆下水管怎么安装