专用机 rpm 脚本打包

#!/bin/bash
#Date:6/18/2021
#Function:快速制作SMJ安装包

clear
function cecho {
echo -e "\033[$1m$2\033[0m"
#fonts color:31-red;32-green;36-deepgreen;34-blue;
}

##################################脚本说明##############################################
function explain {
[ -d ~/rpmbuild/myscript ] || mkdir -p ~/rpmbuild/myscript
[ -d ~/rpmbuild/SOURCES ] || mkdir -p ~/rpmbuild/SOURCES
[ -d ~/rpmbuild/SPECS ] || mkdir -p ~/rpmbuild/SPECS
cd ~/rpmbuild/

cat <<EOF
*************************************************************************************************************
注意:1.此脚本只适用于制作无需编译的安装包.
2.请确认你所要导入系统的文件已经放到了 ~/rpmbuild/myscript/ 目录下
3.如已经操作过,回复Y继续,没有回复N,退出脚本后手动把你自己的脚本拷贝到myscript下,重新运行脚本即可
*************************************************************************************************************
EOF
read -p "请选择(Y/N):" choice
case $choice in
y|Y)
menu
unpack;;
n|N)
cecho 31 "请手动拷贝所需脚本到myscript下,重新运行脚本!!"
exit;;
*)
cecho 31 "输入有误,退出脚本!!"
exit;;
esac
}

#################################脚本选择菜单###########################################
function menu {
read -p "请输入安装包名:" softname
read -p "请输入安装包版本(如1.0.0):" version
cat <<EOF
********************************************************
(1) /usr/bin/ 下
(2) /usr/local/bin/ 下
(3) 自定义
(4) 退出
*******************************************************
EOF
read -p "你想把包打在哪个目录下:" softpath
case $softpath in
1)
softpath=/usr/bin/;;
2)
softpath=/usr/local/bin/;;
3)
read -p "请手动敲打你要把包打在哪个目录下:" softpath;;
4)
cecho 32 Byebye
exit;;
*)
cecho 31 "不要瞎敲,手别抖,重新运行脚本试试吧!"
exit;;
esac

platform=noarch

}

###########################主程序打包#############################################
function unpack {
#打包
chmod +x myscript/*
mkdir -p ${softname}-${version}
cp -a myscript/* ${softname}-${version}
tar -zcvf $softname.tar.gz ${softname}-${version}
#把包拷到SOURCES下
cp -a $softname.tar.gz SOURCES/
rm -rf $softname-$version
rm -rf $softname.tar.gz


#编写spec文件
cat >$PWD/SPECS/$softname.spec<<EOF
Name: $softname
Version: $version
Summary: script for secret machine
Release: 1
Vendor: halton
Source0: $softname.tar.gz
#Buildarch: noarch
#BuildRequires:
#Requires:

License: GPL
Group: System Enviroment/Base
BuildRoot: /var/tmp/$softname-buildroot

%description
none

%prep
%setup -q
%build
%install
rm -rf \$RPM_BUILD_ROOT
mkdir -p \$RPM_BUILD_ROOT$softpath
cp -rf * \$RPM_BUILD_ROOT$softpath

%clean
rm -rf \$RPM_BUILD_ROOT

%files
$softpath/*

%changelog
* Mon Jun 29 2020 xxx - 1.0.0-02
add xx
EOF

#sed -i '22c rm -rf $RPM_BUILD_ROOT' $PWD/SPECS/$softname.spec
#sed -i '23c mkdir -p $RPM_BUILD_ROOT$softpath' $PWD/SPECS/$softname.spec
#sed -i '24c cp * $RPM_BUILD_ROOT$softpath' $PWD/SPECS/$softname.spec

#进行打包
rpmbuild -ba --target=$platform $PWD/SPECS/$softname.spec
cecho 32 "$softname-$version-1.$platform安装包制作完成!!"
}

#case $platform in
# 1|2|3)
explain
# 4)
# echo "Byebye"
# exit;;
# *)
# echo "你输入有误,请重新运行脚本!!!"
#esac

 

posted @   zwbsoft  阅读(264)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示