ubuntu 20.04 离线安装nginx

打印 上一主题 下一主题

主题 1789|帖子 1789|积分 5367

准备工作


  • 一台有网的ubuntu机器,可利用apt-get获取离线安装包
  • 或者任意有网的Windows机器,访问http://archive.ubuntu.com/ubuntu/pool/main,搜索下载对应版本的包
  • 无网的机器具备内网ssh访问权限或硬件数据传输条件
有网机器上的流程

gcc/g++离线安装包获取

由于gcc/g++本身依赖的包目录较为复杂,必要编写shell脚本,递归下载依赖包以及依赖包的依赖包,设置了三层递归,基本可以满足所有依赖搜索的需求
  1. #!/bin/bash
  2. logfile=/home/perrin/Desktop/log
  3. ret=""
  4. function getDepends()
  5. {
  6.    echo "fileName is" $1>>$logfile
  7.    # use tr to del < >
  8.    ret=`apt-cache depends $1|grep Depends |cut -d: -f2 |tr -d "<>"`
  9.    echo $ret|tee  -a $logfile
  10. }
  11. # 需要获取其所依赖包的包
  12. libs="gcc"                  # 或者用$1,从命令行输入库名字
  13. # download libs dependen. deep in 3
  14. i=0
  15. while [ $i -lt 3 ] ;
  16. do
  17.     let i++
  18.     echo $i
  19.     # download libs
  20.     newlist=" "
  21.     for j in $libs
  22.     do
  23.         added="$(getDepends $j)"
  24.         newlist="$newlist $added"
  25.         apt install $added --reinstall -d -y
  26.     done
  27.     libs=$newlist
  28. done
复制代码
利用以上脚本,递归下载gcc、g++所需的依赖包,下载的包将生存在以下路径:
  1. /var/cache/apt/archives
复制代码
nginx编译相关安装包获取

下载make离线安装包
  1. apt-get install make -d
复制代码
下载pcre-8.45.tar.gz 地点:https://netix.dl.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gz
下载zlib-1.3.1.tar.gz 地点:https://www.zlib.net/zlib-1.3.1.tar.gz
下载openssl-1.1.1t.tar.gz 地点:https://objects.githubusercontent.com/github-production-release-asset-2e65be/7634677/d7446444-0f18-4771-85f3-2083574c7934?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20240508%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240508T122709Z&X-Amz-Expires=300&X-Amz-Signature=6d227e78c33fb8c3725d9e01e7daf662b204b46db65ce0b3dc0b17923f77d67f&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=7634677&response-content-disposition=attachment%3B%20filename%3Dopenssl-1.1.1t.tar.gz&response-content-type=application%2Foctet-stream
下载nginx-release-1.20.1.tar.gz 地点:https://codeload.github.com/nginx/nginx/tar.gz/refs/tags/release-1.20.1
打包上传

打包成如下目录传输到无网的机器上,目录如下:

无网机器上的流程

gcc/g++安装

利用以下命令查询gcc/g++安装依赖,确定安装顺序
  1. apt-cache depends gcc
复制代码
得到以下输出:
  1. root@master:/home/hadoop/app# apt-cache depends gcc
  2. gcc  Depends: cpp  Depends: gcc-9  Conflicts: gcc-doc |Recommends: libc6-dev  Recommends: <libc-dev>    libc6-dev  Suggests: gcc-multilib  Suggests: make    make-guile  Suggests: manpages-dev  Suggests: autoconf  Suggests: automake  Suggests: libtool  Suggests: flex  Suggests: bison  Suggests: gdb  Suggests: gcc-doc
复制代码
其中,Depends后列出的包是必须的依赖包,继承利用以下命令查询依赖的依赖包:
  1. apt-cache depends cppapt-cache depends gcc
  2. -9apt-cache depends cpp-9
复制代码
得到如下效果:
  1. root@master:/home/hadoop/app# apt-cache depends cppcpp  Depends: cpp-9  Conflicts: cpp-doc  Suggests: cpp-docroot@master:/home/hadoop/app# apt-cache depends gcc
  2. -9gcc-9  Depends: cpp-9  Depends: gcc-9-base  Depends: libcc1-0  Depends: binutils  Depends: libgcc-9-dev  Depends: libc6  Depends: libgcc-s1  Depends: libgmp10  Depends: libisl22  Depends: libmpc3  Depends: libmpfr6  Depends: libstdc++6  Depends: zlib1g  Recommends: libc6-dev  Suggests: gcc-9-multilib  Suggests: gcc-9-doc  Suggests: gcc-9-locales  Replaces: cpp-9root@master:/home/hadoop/app# apt-cache depends cpp-9cpp-9  Depends: gcc-9-base  Depends: libc6  Depends: libgmp10  Depends: libisl22  Depends: libmpc3  Depends: libmpfr6  Depends: zlib1g  Breaks: <hardening-wrapper>  Breaks: libmagics++-dev  Suggests: gcc-9-locales
复制代码
以此类推,可以确定开端的安装顺序,以上流程以gcc为例,g++相关依赖的安装顺序简直定流程与之类似。从而形成以下安装顺序脚本,cd到安装包所在路径后运行脚本即可执行安装流程:
  1. dpkg -i binutils-common_2.34-6ubuntu1.9_amd64.deb
  2. dpkg -i libquadmath0_10.5.0-1ubuntu1~20.04_amd64.deb
  3. dpkg -i binutils-x86-64-linux-gnu_2.34-6ubuntu1.9_amd64.deb
  4. dpkg -i libgomp1_10.5.0-1ubuntu1~20.04_amd64.deb
  5. dpkg -i libc-dev-bin_2.31-0ubuntu9.15_amd64.deb
  6. dpkg -i libstdc++-9-dev_9.4.0-1ubuntu1~20.04.2_amd64.deb
  7. dpkg -i libasan5_9.4.0-1ubuntu1~20.04.2_amd64.deb
  8. dpkg -i libcrypt1_1%3a4.4.10-10ubuntu4_amd64.deb
  9. dpkg -i libitm1_10.5.0-1ubuntu1~20.04_amd64.deb
  10. dpkg -i libtsan0_10.5.0-1ubuntu1~20.04_amd64.deb
  11. dpkg -i libatomic1_10.5.0-1ubuntu1~20.04_amd64.deb
  12. dpkg -i libctf0_2.34-6ubuntu1.9_amd64.deb
  13. dpkg -i liblsan0_10.5.0-1ubuntu1~20.04_amd64.deb
  14. dpkg -i libubsan1_10.5.0-1ubuntu1~20.04_amd64.deb
  15. dpkg -i libbinutils_2.34-6ubuntu1.9_amd64.deb
  16. dpkg -i gcc-9-base_9.4.0-1ubuntu1~20.04.2_amd64.deb
  17. dpkg -i libcc1-0_10.5.0-1ubuntu1~20.04_amd64.deb
  18. dpkg -i binutils_2.34-6ubuntu1.9_amd64.deb
  19. dpkg -i libgcc-9-dev_9.4.0-1ubuntu1~20.04.2_amd64.deb
  20. dpkg -i libc6_2.31-0ubuntu9.15_amd64.deb
  21. dpkg -i libc6-dev_2.31-0ubuntu9.15_amd64.deb
  22. dpkg -i libgcc-s1_10.5.0-1ubuntu1~20.04_amd64.deb
  23. dpkg -i libgmp10_2%3a6.2.0+dfsg-4ubuntu0.1_amd64.deb
  24. dpkg -i libisl22_0.22.1-1_amd64.deb
  25. dpkg -i libmpc3_1.1.0-1_amd64.deb
  26. dpkg -i libmpfr6_4.0.2-1_amd64.deb
  27. dpkg -i libstdc++6_10.5.0-1ubuntu1~20.04_amd64.deb
  28. dpkg -i zlib1g_1%3a1.2.11.dfsg-2ubuntu1.5_amd64.deb
  29. dpkg -i cpp-9_9.4.0-1ubuntu1~20.04.2_amd64.deb
  30. dpkg -i cpp_4%3a9.3.0-1ubuntu2_amd64.deb
  31. dpkg -i gcc-9_9.4.0-1ubuntu1~20.04.2_amd64.deb
  32. dpkg -i gcc_4%3a9.3.0-1ubuntu2_amd64.deb
  33. dpkg -i g++-9_9.4.0-1ubuntu1~20.04.2_amd64.deb
  34. dpkg -i g++_4%3a9.3.0-1ubuntu2_amd64.deb
复制代码
注意:利用开端的顺序安装仍有大概出现报错,报错信息一般为:
  1. dpkg: dependency problems prevent configuration of libstdc++-9-dev:amd64:
  2. libstdc++-9-dev:amd64 depends on gcc-9-base (= 9.4.0-1ubuntu1~20.04.2); however:
  3.   Version of gcc-9-base:amd64 on system is 9.3.0-10ubuntu2.
  4. libstdc++-9-dev:amd64 depends on libgcc-9-dev (= 9.4.0-1ubuntu1~20.04.2); however:
  5.   Version of libgcc-9-dev:amd64 on system is 9.3.0-10ubuntu2.
  6. libstdc++-9-dev:amd64 depends on libc6-dev (>= 2.13-0ubuntu6); however:
  7.   Package libc6-dev:amd64 is not configured yet.
复制代码
必要根据报错信息对脚本中的安装顺序进行调整,比方,在上述报错信息中提示,libstdc+±9-dev安装顺序应在gcc-9-base、libgcc-9-dev、libc6-dev之后。
安装完成之后,可利用以下命令检察是否安装成功,若安装成功应提示gcc和g++的版本信息:
  1. root@master:/home/hadoop/app# gcc -v
  2. Using built-in specs.
  3. COLLECT_GCC=gcc
  4. COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper
  5. OFFLOAD_TARGET_NAMES=nvptx-none:hsa
  6. OFFLOAD_TARGET_DEFAULT=1
  7. Target: x86_64-linux-gnu
  8. Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.2' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-9QDOt0/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
  9. Thread model: posix
  10. gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2)
  11. root@master:/home/hadoop/app# g++ -v
  12. Using built-in specs.
  13. COLLECT_GCC=g++
  14. COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper
  15. OFFLOAD_TARGET_NAMES=nvptx-none:hsa
  16. OFFLOAD_TARGET_DEFAULT=1
  17. Target: x86_64-linux-gnu
  18. Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.2' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-9QDOt0/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
  19. Thread model: posix
  20. gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2)
复制代码
make安装

make安装较为简朴,在切换到安装包所在目录后,输入以下命令进行安装:
  1. dpkg -i make_4.2.1-1.2_amd64.deb
复制代码
pcre安装

起首将pcre解压
  1. tar -zxvf pcre-8.45.tar.gz
复制代码
解压后开始安装
  1. cd pcre-8.45
  2. ./configure
  3. make
  4. make install
复制代码
zlib安装

起首将zlib解压
  1. tar -zxvf zlib-1.3.1.tar.gz
复制代码
解压后开始安装
  1. cd zlib-1.3.1
  2. ./configure
  3. make
  4. make install
复制代码
openssl安装

起首将zlib解压
  1. tar -zxvf openssl-1.1.1t.tar.gz
复制代码
解压后开始安装
  1. cd openssl-1.1.1t
  2. ./config
  3. make
  4. make install
复制代码
nginx安装

起首将nginx解压
  1. tar -zxvf nginx-1.20.1.tar.gz
复制代码
解压后开始安装
  1. cd nginx-1.20.1
  2. ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-openssl=/home/hadoop/app/openssl-1.1.1t --with-pcre=/home/hadoop/app/pcre-8.45 --with-zlib=/home/hadoop/app/zlib-1.3.1
  3. make
  4. make install
复制代码
nginx启动与验证

  1. cd /usr/local/nginx
  2. ./sbin/nginx -c ./conf/nginx.conf
复制代码
验证nginx设置文件是否正确
  1. ./sbin/nginx -t
复制代码
显示如下输出则设置正确
  1. nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
  2. nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
复制代码
输入ip:80,验证可否正常访问

成功!
参考链接


  • https://blog.csdn.net/dyeln/article/details/119451007
  • https://blog.csdn.net/weixin_43872895/article/details/130428778
  • https://blog.csdn.net/junbujianwpl/article/details/52811153
  • https://zhuanlan.zhihu.com/p/466440088
  • https://blog.csdn.net/wu10188/article/details/124970453

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

天空闲话

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表