一 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包教程相关推荐

  1. 兮米安装包制作工具 制作bin包 教程

    兮米安装包制作工具的简介 1.兮米安装包制作工具是一款专业的傻瓜式 安装包制作 软件,该软件拥有让初学者上手容易.制作的安装程序功能完善等优点,无需任何复杂的脚本操作,只需填写制作器中提供的安装包配置 ...

  2. 华为固件解包工具linux,华为EMUI8.0固件解包教程(含提取recovery方法)

    华为EMUI8.0固件解包教程(含提取recovery方法),现在出来的新款华为手机基本上都是EMUI8.0系统的,一些玩机新手便想着怎么提取一下固件中的相关文件,比如原版的recovery.img或 ...

  3. linux查看jar包内容命令,【达内Java教程】用linux查看jar包内文件命令

    深圳java培训(sz.java.tedu.cn)专家教你用linux查看jar包内文件命令 jar vtf fileName.jar 用法: jar {ctxui}[vfm0Me] [jar-fil ...

  4. linux下bin安装包制作教程

    基本思想: 制作简单的安装包的时候可以简单的用cat命令连接两个文件,然后头部是脚本文件,执行的时候把下面的文件分解出来就行了.一般这个后部分的文件是个压缩包,那样,就能够打包很多文件了,在脚本中解压 ...

  5. linux 后台运行jar包命令,Linux 运行jar包命令(Cent OS 7后台运行jar包)

    Linux 运行jar包命令如下: 方式一 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 java -jar shareniu. ...

  6. Wireshark数据抓包教程之安装Wireshark

    Wireshark数据抓包教程之安装Wireshark 安装Wireshark 通过上一节的学习可以根据自己的操作系统来下载安装Wireshark了.本书中已开发版1.99.7(中文版)为主,下面介绍 ...

  7. Linux 下 Redis 安装教程

    Linux 下 Redis 安装教程 事先准备 下载 Redis 安装 Redis 设置 Redis 开机自启动 远程访问 Redis RDM 远程访问 Redis 笔者的运行环境: CentOS S ...

  8. mysql linux 安装_mysql-5.7.28 在Linux下的安装教程图解

    2.上传tar包到服务器到 /usr/local/src 3.卸载系统自动的Mariadb rpm -qa | grep mariadb rpm -e --nodeps mariadb-libs-5. ...

  9. linux php环境搭建 图文教程,linux php环境搭建教程

    1) 安装依赖包yum -y install wget vim pcre pcre-devel openssl openssl-devel \libicu-devel gcc gcc-c++ auto ...

最新文章

  1. 【微信小程序企业级开发教程】订阅消息功能
  2. Boost:boost::mp11的使用实例
  3. QT的QBufferDataGenerator类的使用
  4. superMap添加marker及连线
  5. layui父页面调用子页面的渲染_layui的iframe父子操作方法
  6. 使用Vim,让你工作效率更高
  7. 扫描路径_npj: 纳米团簇表面的自动扫描—吸附位点和扩散路径
  8. xming+putty在windows下远程linux主机图形界面程序及putty乱码解决
  9. Hybrid A*论文解析(4)
  10. 不会写Java面试简历?看这一篇就够了(项目经历,个人技能)
  11. Java短信平台实战第二天
  12. 基于matlab的双闭环直流调速系统,基于Matlab双闭环直流调速系统设计与仿真
  13. linux md5检测工具下载,教你校验 Debian 软件包的MD5
  14. SpringBoot微信小程序授权登录
  15. org.csource.common.MyException: item “tracker_server“ in null not found异常已解决
  16. Tensorflow of python36 in win10
  17. VC中字符串形式ip地址和整数形式ip地址转换
  18. 【信号与系统】系统线性时不变、因果稳定性的判定
  19. 黄铮,张一鸣,宿华退居二线的背后,暗藏玄机,没那么简单
  20. docker内应用连接宿主机mysql

热门文章

  1. 明道云联合契约锁共建人事场景电子签约解决方案
  2. Jquery 添加删除属性、添加删除class、添加删除Css
  3. 道路交通流量监控学习笔记(一)
  4. 人机交互是指用户与计算机,人机交互与人机界面
  5. 信息系统监理与审计 我国实践与美国的经验
  6. 百度高德离线地图二次开发入门步骤
  7. vb6.0+vc6.0 写变速齿轮 HOOK timeGetTime
  8. 20210b高考成绩查询,高考成绩6月23日公布!两种方式可查分
  9. 只有偏执狂才能生存-Oracle开始对Red Hat Linux用户提供服务支持
  10. java 源文件 编译jar_将java源文件制成jar包