ubuntu 生成deb文件,生成bin文件

dpkg–命令

-c:显示软件包中的文件列表;
-e:将主控信息解压;
-f:把字段内容打印到标准输出;
-x:将软件包中的文件释放到指定目录下;
-X:将软件包中的文件释放到指定目录下,并显示释放文件的详细过程;
-W:显示软件包的信息;
-l:显示软件包的详细信息;
-R:提取控制信息和存档的清单文件;
-b:创建debian软件包。
整体文件目录架构
|----DEBIAN
       |-------control #控制文件
       |-------preinst #安装前执行 like shell
       |-------postinst #安装后执行 like shell
       |-------copyright #版权
|----opt #放置代码编译文件 安装deb包后会直接拷贝的目录,根目录开始
       |----- sourceCode
|----lib #放置自启动脚本
       |----- system

生成deb文件,生成bin文件,build.sh

#!/bin/bash                                                                                                       
/usr/local/bin/pyinstaller web_start.py -F -p ./web/control -p ./web/service -p ./web/config -p ./web/database -p ./web/urls
version='1.0.0'                                                                                                                                                 
product='Web_NF1500'
git='50bddac381a9'
system='Ubuntu16.04'
time=`date +"%Y%m%d"`
deb_dir='/data/tiger/NF2000/DebBuild'
architecture=`arch`
#architecture='aarch64'
source_dir='/data/xxx/xxx'

if [ $? -ne 0 ];then
     echo "Package backend fail"
else
     mv ./dist/web_start  ./    
     rm -rf ./build ./dist
     echo "success"
fi
cd ../DebBuild/DEBIAN
mkdir -p $deb_dir/opt/swweb/upgrade/backend/data
mkdir -p $deb_dir/opt/web_config
cp -rf   $source_dir/backend/data/*      $deb_dir/opt/swweb/upgrade/backend/data
cp -rf   $source_dir/backend/data/web_config/* $deb_dir/opt/web_config
cp -rf   $source_dir/backend/data_bak/*  $deb_dir/opt/swweb/upgrade/backend/data
cp -rf   $source_dir/backend/web_start   $deb_dir/opt/swweb/upgrade/backend
#cp -rf   $source_dir/frontend            $deb_dir/opt/swweb/upgrade

sed  -i "s/VERSION/${version}/g"  ${deb_dir}/DEBIAN/control
#version='aarch64'
#if [ $version == 'x86_64' ];then
#     cp ../config/amd64.control ./control
#elif [ $version == 'aarch64' ];then
#     cp ../config/arm64.control ./control 
#else 
#    echo 'success'
#fi
#make -f  Makefile.builddeb
cd ../../
filename=$product'_V'$version'_'$architecture'_'$system'_'$time'_Git'$git.deb
dpkg-deb -b DebBuild/ $filename
if [ $? -ne 0 ];then
     echo "Package web install deb file fail"
else
     rm -rf  ./DebBuild/opt
     echo "Package web install deb file success"
fi
 
mv  ./$filename ./backend/install/source_install/swweb
cd ./backend/install
./build_bin.sh $version $git                                            

生成.bin文件

#!/bin/sh -e
version=$1
if [ ! $version ]; then
    echo 'Please enter version info'
    exit -1
fi    
git_version=$2
if [ ! $git_version ] ; then
    echo 'Please enter git version'
    exit -1
fi    
#rm source_install.tar
tar -zcf source_install.tar ./source_install 

build_exe(){
architecture=`arch`
time=`date +"%Y%m%d"`
md5_source=$(md5sum source_install.tar | awk '{print $1}')
file_name=SM_Web_V${version}_${architecture}_Ubuntu16.04_${time}_Git${git_version}.bin 
sed -e "s/%%source_md5%%/$md5_source/" ./install.sh >$file_name
#bin文件执行脚本打进去
cat source_install.tar >> ${file_name}
#生成bin文件
chmod +x ${file_name}
echo 'Source md5 : ' $md5_source
echo 'New install bin file generated:' ${file_name}      
}

if [ $? -ne 0 ];then
    echo "Package backend fail"                                                                                                                                                        
else
    build_exe  
fi


bin安装执行脚本

#!/bin/sh -e
outname=`pwd`
tail -n +70 $0 > $outname/source_install.tar   
source_md5=%%source_md5%%
echo 'Source md5 : ' $source_md5
md5_source=`md5sum source_install.tar | awk '{ print $1 }'`
if [ $md5_source != $source_md5 ];then
   echo
   echo ">>>ERROR: Unable to verify source archive checksum"
   echo ">>>Expected: $md5_source"
   echo ">>>Found   : $source_md5"
   exit 1
else
    echo "Md5 verify pass!"
fi    

echo 'Unzip sfweb dependences'
tar -xvf source_install.tar >/dev/nul
cd ./source_install/sfweb_dependence


#install ntp for web sync date time
echo 'Install sfweb dependence ntp'
dpkg -i  ntp_*.deb 
echo 'Install sfweb dependence ntpdate'
dpkg -i ntpdate*.deb


#install nginx for web to manager port
#stop sfrest to release port(for old version)
systemctl stop sfrest
echo 'Install nginx depends'
dpkg -i liblua*.deb
dpkg -i libgeoip1_*.deb

echo 'Install nginx common module'
dpkg -i nginx-common*.deb
cp nginx.conf /etc/nginx/
cp MyCompanyLocalhost.cer /etc/nginx
cp MyCompanyLocalhost.pvk /etc/nginx
cp default /etc/nginx/sites-enabled

echo 'Install nginx core module'
dpkg -i nginx-core*.deb

echo 'Install nginx '
dpkg -i nginx_*.deb

echo 'Install nginx success'
systemctl start sfrest

#install web server
cd ../sfweb
echo 'install sfweb server'
dpkg -i Web_*.deb

#copy uninstall file to /opt/uninstall
#rm -rf /opt/uninstall   
if [ ! -d "/opt/uninstall" ];then
    mkdir /opt/uninstall
fi
cp ../web_uninstall.sh /opt/uninstall
echo 'Web uninstall file install to /opt/uninstall'

echo 'Clear install source file'
rm -rf $outname/source_install*

echoInstall complete!exit 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老虎爱代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值