Linux制作run格式安装包

Posted COCO_PEAK_NOODLE

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux制作run格式安装包相关的知识,希望对你有一定的参考价值。

首先介绍一下run格式安装包,run安装包包含2个文件,一个是要安装的文件(一般会以压缩文件的形式存在),另一个是安装脚本(是用来指导安装文件安装解压到哪个目录)

ok,这里我会给大家2个脚本,一个是用来指导文件的安装,一个是用来一键生成run安装包文件

1-把要安装的文件放在一个文件夹里

我放在install里,所以脚本里要对应写install

2-把install.sh脚本和install文件夹放到同一目录下

这里把install.sh脚本贴到这里,自行拷贝

#!/bin/bash

#跳转行数,负责定位到压缩包所在的位置
lines=62

#检查系统的架构是否符合
if [[ "x86_64" =~ "$(arch)" ]]
then
	echo "架构相同"
else
	echo "架构不同, 本机架构为$(arch)"
	exit 0
fi

homepath=/home/peak/runtest
#获取安装路径
echo "输入安装路径, 按下回车确认,默认路径($homepath)"
read -p "请输入:" installpath
if [ ! -n "$installpath" ]; then
	installpath=$homepath
fi


#解压对应的程序包
#根据安装脚本的行数,跳转到压缩包所在的位置
tail -n +$lines $0 >./install.tar.gz

#解压缩
tar zxvf ./install.tar.gz 

#将解压缩之后文件拷贝到对应的安装目录
mkdir -p $installpath
cp -r install $installpath

#检查用户路径,获取桌面路径
#test -f ~/.config/user-dirs.dirs && . ~/.config/user-dirs.dirs
#desktopDir=~/$XDG_DESKTOP_DIR##*/

#生成快捷方式,替换快捷方式中的安装路径
#sed -i "s#INSTALLPATH#$installpath#g" $installpath/install/test/test.desktop

#applications文件夹如果不存在则创建
#if [ ! -d ~/.local/share/applications ];then
#    mkdir -p ~/.local/share/applications
#fi

#拷贝桌面快捷方式
#cp $installpath/install/test/test.desktop ~/.local/share/applications

#自定义协议启动
#xdg-mime default test.desktop x-scheme-handler/clerk

#快捷方式发送到桌面,并修改可执行权限
#cp $installpath/install/test/test.desktop $desktopDir
#chmod +x $desktopDir/test.desktop

#移除无用文件
#rm -rf $installpath/install/test/test.desktop
rm -rf install
rm -rf install.tar.gz
exit 0
3-把package.sh脚本放到install同一目录下

这里把package.sh脚本贴到这里,自行拷贝,package.sh脚本可以把install文件夹和install.sh一起打包形成一个run文件。
可自行在脚本里修改run文件最终名字

#!/bin/bash
#将源文件打包成压缩包
tar czvf install.tar.gz install
#创建.run的输出目录
mkdir -p OutputPackageManager

#从外界获取输入的版本号
echo "请输入版本号,回车结束, 示例(1.0.0.20221201_beta)"
read -p "请输入:" version
if [ ! -n "$version" ]; then
	version=1.0.0.default
fi

# 打包生成.run文件
cat install.sh install.tar.gz > OutputPackageManager/OKAGV-SLAM-2d-V"$version".run
# 为安装包赋予权限
chmod +x OutputPackageManager/OKAGV-SLAM-2d-V"$version".run
# 删除之前的文件压缩包
rm -rf install.tar.gz
exit 0

4-执行package.sh生成run文件。
5-执行run文件安装到指定位置

后记:
install.sh 文件一开头有个lines=62,这个是干啥的呢?
解释:我们形成的run文件其实是在install.sh文件后拼接了一个install.tar.gz文件,所以解压时要用lines=62告诉我们拼接的位置(就是install.tar.gz的位置),然后方便我们解压,然后拷贝到指定位置。

ok,如果大家还有什么更便捷的安装包工具或方式,也行评论留言,3Q!

以上是关于Linux制作run格式安装包的主要内容,如果未能解决你的问题,请参考以下文章

linux 下软件安装包的制作工具都有哪些

Linux系统Yum仓库制作

Linux中Qt的安装

Linux学习-软件安装

Ubuntu16.04解决Qt安装包(.run文件)不能用./命令执行的问题

linux下bin安装升级包制作