Nginx Bug
离线安装nginx的一些问题补充
回顾
前几日,回答了几个关于nginx离线安装的问题,由于个人原因,在文章和回答中缺失了一个基本的前提,就是nginx所在的机器是完全脱离互联网的,很难从互联网上把一些文件或者包直接下载到本地的,所以,我在文章和回答中提到的yum和apt-get命令,是有一个很大的bug所在。
解决方案
既然问题产生了,那么,作为一个合格的软件研发人员,那么,笔者就要来解决这个问题。
解决思路:既然是离线进行安装,那么,脱离了互联网的情况,就需要把我们依赖的一些包和软件从有联网的机器上先行下载下来,并拷贝到离线的机器上。再次进行安装。那么,如何进行下载哪?对应的包有没有其他的依赖包需要下载哪?
非常幸运,我们需要的这几个包,再次依赖其他的包的情况并没有,所以,只需要安装了这些包,我们基本上就可以正常的进行nginx的源码编译和执行了。
Centos系统下
在Centos系统中,我们使用的yum命令进行安装的,在没有互联网的情况下,我们可以在有联网的机器上使用命令进行下载相应的文件。
yum install --downloadonly --downloaddir=/file/ pcre-devel
稍微解释下命令的参数:
downloadonly 标识当前只下载相应的依赖和包,不需要进行安装,
downloaddir 表示要把文件下载到那里的目录。
后面可以跟着一个或多个软件包的名称。
正常的情况下,使用这条命令就可以下载成功了。但有时,我们可能在这台机器上安装过相应的软件包,这个时候,使用命令install 就会提示已安装
那么,我们就可以使用reinstall命令来执行重新安装;这个地方需要您放心的是,该reinstall并不会重新安装您的软件,因为后面跟着downloadonly参数。只会下载。
yum reinstall --downloadonly --downloaddir=/file/ pcre-devel
下载完成后,可以在设置的目录看到相应的文件。
我们把该文件拷贝到离线机器上,切换到当前文件所在目录,使用命令安装即可。
yum install pcre-devel
Ubuntu系统
同样,使用命令进行离线下载:
apt-get download pcre-devel
由于暂时没有ubuntu系统,没有进行截图。同样,命令也没有进行验证。待后续验证后再来更新。