linux bin文件安装文件,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 ]
;
do
echo
echo
"
Do you agree to the above license terms? [yes or no]
"
read reply leftover case
$
reply in y* | 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
"
]
;
then
outname
=$
localinstall
/
OUTNAME
else
outname
=
OUTNAME fi
echo
"
Unpacking...
"
tail -n
+
AAA
$
0
>
$
outname
if
[ -x
/
usr
/
bin
/
sum ]
;
then
echo
"
Checksumming...
"
sum
=
`
/
usr
/
bin
/
sum
$
outname` index
=
1
for
s in
$
sum
do
case
$
index in
1
)
sum1
=$
s
;
index
=
2
;
;;
2
)
sum2
=$
s
;
index
=
3
;
;;
esac done
if
[
$
sum1 !
=
SUM1 -o
$
sum2 !
=
SUM2 ]
;
then
echo
"
The download file appears to be corrupted.
"
echo
"
Please do not attempt to install this archive file.
"
exit
1
fi
else
echo
"
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
/
sh
PATH
=.
:
$
PATH
RPM
=
XXXX
.
rpm LICENSEBIN
=
YYYY
.
bin BASE
=$(
basename
$
RPM
.
rpm
)
sum
=
`sum
$
RPM` index
=
1
for
s in
$
sum
do
case
$
index in
1
)
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上执行;
五 参考:http://itboba.com/taxonomy/term/1015
bin文件和elf文件的区别
在Embedded中,如果上电开始运行,没有OS系统,如果将ELF格式的文件烧写进去,包含一些ELF格式的东西,arm运行碰到这些指令,就会导致失败,如果用arm--linux-objcopy生成纯粹的汇编,程序就可以一步一步运行。
elf文件里面包含了符号表,汇编等东东。BIN文件是将elf文件中的代码段,数据段,还有一些自定义的段抽取出来做成的一个内存的镜像。由于elf文件的信息比较全,所以可以用来以单步跟踪的方式运行,常用于仿真器进行调试。
linux bin文件安装文件,Linux .bin安装文件制作相关推荐
- Linux 学习笔记(一)如何安装.bin文件
1.如何安装.bin文件 如果你有root权限,那么./a.bin 即可,如果没有该权限,则chmod +x a.bin 2.如何创建文件夹 mkdir XXX文件夹名 3.如何删除文件夹 rm -r ...
- linux python qt 安装目录,Linux 下QT调用Python库文件 以及Linux 安装Python3.8开发环境 问题...
最近想运用linux系统下Qt来实现c++ 与python的混合编程,linux系统会自带python2.7版本或者python3.5版本(深度linux). Qt调用python文件需要在pro文件 ...
- redhat linux 9.0 拷贝u盘的文件,肿么用U盘安装Linux,安装的是red hat 9.0…用Ubuntu很方便,redhat可以吗?...
下面有两种安装方法. 从dos安装.这方法可以不用软盘,比较方便. 得到dosutils目录 这个目录里有从dos安装和软盘安装的工具.一般都在第一个iso文件里. 在linux下可以这样装载iso文 ...
- linux运行run.tar.gz,linux .run 文件的制作和安装
linux .run 文件的制作和安装 发布时间:2008-04-02 20:50:12来源:红联作者:compat 由于要安装nvidia 的驱动,所以才会遇到这个问题. 这里顺便找到.run文件的 ...
- linux运行bin not found,自己制作根文件后,程序-/bin/sh:XXX:not found错误
请教下,我自己做了一个根文件系统,下载到板子上后,显示内核加载成功了,在终端也可以进到各个系统文件对各个文件进行操作,但是如果我把自己写的程序放在系统的话,执行的时候会提示错误 "-/bin ...
- linux 文件安装大全,linux 文件包安装大全
一.必须先安装gcc环境(Linux 光盘把所有gcc包装上ok!) 二. Apache的安装: 安装Apache(2.2) tar xjvf2.2-.. cd http-. ./configure- ...
- linux oracle bin目录在哪,linux 安装软件装完后在哪个目录
Linux下安装应用程序时它的默认安装路径. 默认目录一般建议为 /usr 所有的软件都仍这里.一般没有选择余地,除非不想用这个程序-- 安装方式一般是: 1.rpm或者deb这种软件包,一般双击安装 ...
- 安装erlang没有bin文件夹_Windows10有关jdk13.0.1的详细安装过程
最近又在新学java,下面介绍一下如何在windows10系统安装jdk13.0.1: 首先,我们在Java | Oracle官网下载最新版的jdk,网址为https://www.oracle.com ...
- linux 中的目录 bin,Linux中的lt;/bingt;目录-bin文件夹
封面 持续更新,喜欢请加关注! /bin目录下包含了用户命令文件,也就是shell命令.提供给所有用户和脚本程序使用.所以,即使其他文件系统还没有被挂接时,它们也要能够工作,这是将这些内容放在根文件系 ...
- Linux 下载安装 rar 并解压rar压缩包(Linux下如何解压.zip和.rar文件)
Linux下如何解压.zip和.rar文件,对于Window下的常见压缩文件.zip和.rar,Linux也有相应的方法来解压它们: 1)对于zip linux下提供了zip和unzip程序,zip是 ...
最新文章
- 吴恩达深度学习笔记(109)-循环神经网络模型(RNN介绍)
- BZOJ3488 : [ONTAK2010]Highways
- 页面定时跳转(读秒)
- 12011.linux之看门狗应用开发
- SQL Server数据库导入导出数据方式比较
- 浅析 Community Server 在线用户列表与位置跟踪实现机制[原创]
- 实用供热空调设计手册_暖通空调设计与施工数据图表手册
- 家用简易NAS系统搭建
- 服务器硬件防火墙和软件防火墙的功能和区别
- 为什么 React17-rc.2 要发布新的 jsx 转换逻辑
- 安卓Intent 详解
- vue element-ui实现input输入框金额数字添加千分位
- TYUT太原理工大学2022数据库考试题型大纲
- ORACLE大数据查询
- 页面布局高度塌陷问题和解决方案
- 机器学习之recall、precision、accuracy
- ImageView中动态设置图片
- 为什么华为a1路由器网速变慢_凭什么网速就比别人快?华为路由 A1 畅享版体验...
- GPL对应的Bioconductor注释包(最全)
- WordPress美女写真源码 带搭建和采集教程