一 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安装文件制作相关推荐

  1. Linux 学习笔记(一)如何安装.bin文件

    1.如何安装.bin文件 如果你有root权限,那么./a.bin 即可,如果没有该权限,则chmod +x a.bin 2.如何创建文件夹 mkdir XXX文件夹名 3.如何删除文件夹 rm -r ...

  2. linux python qt 安装目录,Linux 下QT调用Python库文件 以及Linux 安装Python3.8开发环境 问题...

    最近想运用linux系统下Qt来实现c++ 与python的混合编程,linux系统会自带python2.7版本或者python3.5版本(深度linux). Qt调用python文件需要在pro文件 ...

  3. redhat linux 9.0 拷贝u盘的文件,肿么用U盘安装Linux,安装的是red hat 9.0…用Ubuntu很方便,redhat可以吗?...

    下面有两种安装方法. 从dos安装.这方法可以不用软盘,比较方便. 得到dosutils目录 这个目录里有从dos安装和软盘安装的工具.一般都在第一个iso文件里. 在linux下可以这样装载iso文 ...

  4. linux运行run.tar.gz,linux .run 文件的制作和安装

    linux .run 文件的制作和安装 发布时间:2008-04-02 20:50:12来源:红联作者:compat 由于要安装nvidia 的驱动,所以才会遇到这个问题. 这里顺便找到.run文件的 ...

  5. linux运行bin not found,自己制作根文件后,程序-/bin/sh:XXX:not found错误

    请教下,我自己做了一个根文件系统,下载到板子上后,显示内核加载成功了,在终端也可以进到各个系统文件对各个文件进行操作,但是如果我把自己写的程序放在系统的话,执行的时候会提示错误 "-/bin ...

  6. linux 文件安装大全,linux 文件包安装大全

    一.必须先安装gcc环境(Linux 光盘把所有gcc包装上ok!) 二. Apache的安装: 安装Apache(2.2) tar xjvf2.2-.. cd http-. ./configure- ...

  7. linux oracle bin目录在哪,linux 安装软件装完后在哪个目录

    Linux下安装应用程序时它的默认安装路径. 默认目录一般建议为 /usr 所有的软件都仍这里.一般没有选择余地,除非不想用这个程序-- 安装方式一般是: 1.rpm或者deb这种软件包,一般双击安装 ...

  8. 安装erlang没有bin文件夹_Windows10有关jdk13.0.1的详细安装过程

    最近又在新学java,下面介绍一下如何在windows10系统安装jdk13.0.1: 首先,我们在Java | Oracle官网下载最新版的jdk,网址为https://www.oracle.com ...

  9. linux 中的目录 bin,Linux中的lt;/bingt;目录-bin文件夹

    封面 持续更新,喜欢请加关注! /bin目录下包含了用户命令文件,也就是shell命令.提供给所有用户和脚本程序使用.所以,即使其他文件系统还没有被挂接时,它们也要能够工作,这是将这些内容放在根文件系 ...

  10. Linux 下载安装 rar 并解压rar压缩包(Linux下如何解压.zip和.rar文件)

    Linux下如何解压.zip和.rar文件,对于Window下的常见压缩文件.zip和.rar,Linux也有相应的方法来解压它们: 1)对于zip linux下提供了zip和unzip程序,zip是 ...

最新文章

  1. 吴恩达深度学习笔记(109)-循环神经网络模型(RNN介绍)
  2. BZOJ3488 : [ONTAK2010]Highways
  3. 页面定时跳转(读秒)
  4. 12011.linux之看门狗应用开发
  5. SQL Server数据库导入导出数据方式比较
  6. 浅析 Community Server 在线用户列表与位置跟踪实现机制[原创]
  7. 实用供热空调设计手册_暖通空调设计与施工数据图表手册
  8. 家用简易NAS系统搭建
  9. 服务器硬件防火墙和软件防火墙的功能和区别
  10. 为什么 React17-rc.2 要发布新的 jsx 转换逻辑
  11. 安卓Intent 详解
  12. vue element-ui实现input输入框金额数字添加千分位
  13. TYUT太原理工大学2022数据库考试题型大纲
  14. ORACLE大数据查询
  15. 页面布局高度塌陷问题和解决方案
  16. 机器学习之recall、precision、accuracy
  17. ImageView中动态设置图片
  18. 为什么华为a1路由器网速变慢_凭什么网速就比别人快?华为路由 A1 畅享版体验...
  19. GPL对应的Bioconductor注释包(最全)
  20. WordPress美女写真源码 带搭建和采集教程

热门文章

  1. 三维可视化技术都有哪些运用
  2. idea导入android工程,idea怎样导入Android studio 项目?
  3. 【计算机问题】 火狐浏览器不能下载东西
  4. 将数字字符串转换为整数
  5. 嵌入式学习--使用定时器输出PWM波形,实现LED呼吸灯的效果
  6. h5 页面判段是否是微信内,是否是IOS,区分qq内置浏览器和QQ浏览器
  7. HarmonyOS 基于JS范式的应用开发 —— 分布式拉起、迁移
  8. muse ui 的table组件的选择事件说明
  9. 通过lnmp脚本升级php,lnmp nginx和php升级方法
  10. csu1334 好老师