Nginx rpm编译

arm环境 源码编译

!/bin/bash

#centos7编译nginx的rpm包并利用sftp上传脚本
######################变量##########################
config=https://nginx.org/packages/centos/7/SRPMS/nginx-1.20.1-1.el7.ngx.src.rpm
var=$config
#截取名称,截取包名-版本,为传输做准备,这是该组件通用,不用修改;
rpmname="`echo ${var#*SRPMS/}`"
var2="`echo ${rpmname%-*}`"
#连接sftp
user=sftp
passwd='sftp'
port=18884
ip=192.168.0.173
#传输目的地
addr='/sftp/centos7/rpm'
############编译#####################################
yum install -y wget vim rpm-build gcc gcc-c++ make
 yum install openssl-devel zlib-devel pcre-devel -y
yum install -y libxslt-devel gd-devel perl-ExtUtils-Embed perl-devel GeoIP-devel

wget  $var
rpm -ivh *.rpm
rpmbuild -ba /root/rpmbuild/SPECS/nginx.spec
#增加仓库
yum install createrepo -y
createrepo /root/rpmbuild/RPMS/aarch64


cd /root/rpmbuild/RPMS/

mkdir $var2
cd /root/rpmbuild/RPMS/aarch64/
cp -r *   ../$var2

#利用sftp传输脚本生成的包
yum install vim wget -y
yum install glibc-headers gcc-c++ make unzip -y
cd /opt
#编译tcl,expect编译依赖tcl
wget  http://core.tcl.tk/tcl/zip/release/tcl.zip
unzip tcl.zip
cd ./tcl/unix
./configure && make -j4 && make install
cd /opt
#编译expect,expect提供了shell中的人机交互
wget https://jaist.dl.sourceforge.net/project/expect/Expect/5.45.3/expect5.45.3.tar.gz --no-check-certificate
tar -xzvf expect5.45.3.tar.gz && cd expect5.45.3/
./configure --build=arm-linux && make -j4 && make install
#安装sftp,传输需要
yum install openssh-clients -y

cd /root/rpmbuild/RPMS

#利用expect工具和sftp协议进行传输编译的包
/usr/local/bin/expect <<-EOF
set timeout -1
spawn sftp -oPort=$port  $user@$ip
expect {
"yes/no" { send "yes\r"; exp_continue }
"Password:" { send "$passwd\r"; exp_continue }
"sftp" { send "put -r  ./$var2/ $addr\r" }
}
send "exit\r"
expect eof
EOF
##########结束语############################
echo "make over finishjrt"