linux 打bin包教程
一 Linux安装文件
linux常见的安装为tar,zip,gz,rpm,deb,bin等。我们可以简单的分为三类,
第一:打包或压缩文件tar,zip,gz等,一般解压后即可,或者解压后运行sh文件;
第二:对应的有管理工具的deb,rpm等,通常的这类安装文件可以通过第三方的命令行或UI来简单的安装,例如Ubuntu中的apt来安装deb,Redhat中的yum来安装rpm;
第三:像.bin类,其实就是把sh和zip打包为bin,或把sh和rpm打包为bin等,当在命令行运行bin安装文件时,其实就是bin里面的sh来解压bin中的zip或安装rpm的过程;
二 .bin安装文件
.bin安装文件可以认为是sh文件和zip或rpm等其他安装文件的打包形式。如下图:
.bin安装文件的优点:
1)只有一个包即.bin文件;
2)可以直接运行在Linux上,因为他是sh(他的前半部分是sh);
3)在sh中可以包含需要用户接收的协议信息,而且提示用户接收,如果用户不接收,安装退出;
三 .bin安装文件执行
1)超级简单: sh xxxx.bin 或直接xxxx.bin。
2)过程如下:
四 .bin安装文件制作
1) 组成之sh文件(例子:YYYY.bin)
#!/bin/sh
PATH=/usr/bin:/bin
umask 022
echo_args="-e "
localinstall=$1
more <<"EOF"
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
EOF
agreed=
while [ x$agreed = x ]; doechoecho "Do you agree to the above license terms? [yes or no] "read reply leftovercase $reply iny* | Y*)agreed=1;;n* | N*)echo "If you don't agree to the license you can't install this software";exit 1;;esac
done
if [ -d "$localinstall" ] ; thenoutname=$localinstall/OUTNAME
elseoutname=OUTNAME
fi
echo "Unpacking..."
tail -n +AAA $0 > $outname
if [ -x /usr/bin/sum ] ; thenecho "Checksumming..."sum=`/usr/bin/sum $outname`index=1for s in $sumdocase $index in1) sum1=$s;index=2;;;2) sum2=$s;index=3;;;esacdoneif [ $sum1 != SUM1 -o $sum2 != SUM2 ] ; thenecho "The download file appears to be corrupted."echo "Please do not attempt to install this archive file."exit 1fi
elseecho "Can't find /usr/bin/sum to do checksum. Continuing anyway."
fi
echo "Done."
exit 0
#此文件YYYY.bin可以重复使用,OUTNAME,SUM1,SUM2均为标识符,表示要打包到bin中的zip,rpm的路径,sum的checksum和filesize。
#用户协议处:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
#tail -n +AAA $0 > $outname,AAA为此sh文件的line count, 此命令即把bin中的sh后面的zip或rpm提取出来 ;
# sum用来检测所提取的zip或rpm文件是否正确;
#最后一定要exit 0,一定要。
#也可以在退出前云新unzip或rpm来安装,或者由用户自行来安装zip或rpm。
2)组成之zip,gz或rpm (例子:XXXX.rpm)
这个就是你要安装的zip或rpm。
3)创建bin安装文件的脚本sh(例子:createbin.sh,使用上面的YYYY.sh和XXXX.rpm)
#!/bin/shPATH=.:$PATH
RPM=XXXX.rpm
LICENSEBIN=YYYY.bin
BASE=$(basename $RPM .rpm)
sum=`sum $RPM`
index=1
for s in $sum
docase $index in1) sum1=$s;index=2;;;2) sum2=$s;index=3;;;esac
done
cat $LICENSEBIN | sed -e s/OUTNAME/$RPM/ -e s/SUM1/$sum1/ -e s/SUM2/$sum2/ > linux_license_new.bin
dos2unix -k -q linux_license_new.bin
cat linux_license_new.bin $RPM > ${BASE}-rpm.bin
sudo chmod a+x res/${BASE}-rpm.bin
# dos2unix 确保license shell为linux格式;
#且此shell文件需要在Linux上执行;
本文转自:https://www.cnblogs.com/itech/archive/2010/02/01/1661248.html
linux 打bin包教程相关推荐
- 兮米安装包制作工具 制作bin包 教程
兮米安装包制作工具的简介 1.兮米安装包制作工具是一款专业的傻瓜式 安装包制作 软件,该软件拥有让初学者上手容易.制作的安装程序功能完善等优点,无需任何复杂的脚本操作,只需填写制作器中提供的安装包配置 ...
- 华为固件解包工具linux,华为EMUI8.0固件解包教程(含提取recovery方法)
华为EMUI8.0固件解包教程(含提取recovery方法),现在出来的新款华为手机基本上都是EMUI8.0系统的,一些玩机新手便想着怎么提取一下固件中的相关文件,比如原版的recovery.img或 ...
- linux查看jar包内容命令,【达内Java教程】用linux查看jar包内文件命令
深圳java培训(sz.java.tedu.cn)专家教你用linux查看jar包内文件命令 jar vtf fileName.jar 用法: jar {ctxui}[vfm0Me] [jar-fil ...
- linux下bin安装包制作教程
基本思想: 制作简单的安装包的时候可以简单的用cat命令连接两个文件,然后头部是脚本文件,执行的时候把下面的文件分解出来就行了.一般这个后部分的文件是个压缩包,那样,就能够打包很多文件了,在脚本中解压 ...
- linux 后台运行jar包命令,Linux 运行jar包命令(Cent OS 7后台运行jar包)
Linux 运行jar包命令如下: 方式一 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 java -jar shareniu. ...
- Wireshark数据抓包教程之安装Wireshark
Wireshark数据抓包教程之安装Wireshark 安装Wireshark 通过上一节的学习可以根据自己的操作系统来下载安装Wireshark了.本书中已开发版1.99.7(中文版)为主,下面介绍 ...
- Linux 下 Redis 安装教程
Linux 下 Redis 安装教程 事先准备 下载 Redis 安装 Redis 设置 Redis 开机自启动 远程访问 Redis RDM 远程访问 Redis 笔者的运行环境: CentOS S ...
- mysql linux 安装_mysql-5.7.28 在Linux下的安装教程图解
2.上传tar包到服务器到 /usr/local/src 3.卸载系统自动的Mariadb rpm -qa | grep mariadb rpm -e --nodeps mariadb-libs-5. ...
- linux php环境搭建 图文教程,linux php环境搭建教程
1) 安装依赖包yum -y install wget vim pcre pcre-devel openssl openssl-devel \libicu-devel gcc gcc-c++ auto ...
最新文章
- 【微信小程序企业级开发教程】订阅消息功能
- Boost:boost::mp11的使用实例
- QT的QBufferDataGenerator类的使用
- superMap添加marker及连线
- layui父页面调用子页面的渲染_layui的iframe父子操作方法
- 使用Vim,让你工作效率更高
- 扫描路径_npj: 纳米团簇表面的自动扫描—吸附位点和扩散路径
- xming+putty在windows下远程linux主机图形界面程序及putty乱码解决
- Hybrid A*论文解析(4)
- 不会写Java面试简历?看这一篇就够了(项目经历,个人技能)
- Java短信平台实战第二天
- 基于matlab的双闭环直流调速系统,基于Matlab双闭环直流调速系统设计与仿真
- linux md5检测工具下载,教你校验 Debian 软件包的MD5
- SpringBoot微信小程序授权登录
- org.csource.common.MyException: item “tracker_server“ in null not found异常已解决
- Tensorflow of python36 in win10
- VC中字符串形式ip地址和整数形式ip地址转换
- 【信号与系统】系统线性时不变、因果稳定性的判定
- 黄铮,张一鸣,宿华退居二线的背后,暗藏玄机,没那么简单
- docker内应用连接宿主机mysql
热门文章
- 明道云联合契约锁共建人事场景电子签约解决方案
- Jquery 添加删除属性、添加删除class、添加删除Css
- 道路交通流量监控学习笔记(一)
- 人机交互是指用户与计算机,人机交互与人机界面
- 信息系统监理与审计 我国实践与美国的经验
- 百度高德离线地图二次开发入门步骤
- vb6.0+vc6.0 写变速齿轮 HOOK timeGetTime
- 20210b高考成绩查询,高考成绩6月23日公布!两种方式可查分
- 只有偏执狂才能生存-Oracle开始对Red Hat Linux用户提供服务支持
- java 源文件 编译jar_将java源文件制成jar包