首页 > 系统相关 >linux bin 包制作

linux bin 包制作

时间:2023-03-09 17:35:56浏览次数:32  
标签:bin tar gz sh install linux path 制作

一 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安装文件可以认为是sh文件和zip或rpm等其他安装文件的打包形式。如下图:


  image.png

1、bin文件制作

shell脚本:

#!/bin/bash

path=`pwd`
#判断字符串是否相等
if [ "$path" = "/" ];then
    path=''
fi

#提取压缩包
sed -n '1,/^exit 0$/!p' $0 >$path/install.tar.gz
#解压出安装包
tar -zxvf $path/install.tar.gz

echo "finish"
exit 0

脚本很简单,关键在于sed那一行,大概意思是匹配exit 0,如果匹配到了,把它后面的打印出来。

然后将安装包打包成 install.tar.gz,如:

tar zcvf install.tar.gz postgresql-9.4.0.tar postgre9.4.sh clouddoc_v20_demo.bak pg_hba.conf postgresql postgresql.conf

最终将上述两个文件打包成bin文件,并赋予执行权限

cat test.sh install.tar.gz > install.bin
chmod u+x install.bin

执行bin文件和执行shell脚本一样,直接运行

sh install.bin

Tip:提取文件也可以使用tail来分割文件的,这个有时候可能会失败(网上很多人都说tail方法可能有各种问题,我测试没碰见)。建议使用sed方式提取文件

#lines表示shell脚本行数+1
tail -n +$lines $0 > $path/install.tar.gz


作者:游侠胖虎
链接:https://www.jianshu.com/p/09cb8a113c39
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。       RPM:

 

 

 

tar.gz 脚本。

 

#!/bin/bash

path=`pwd`
#判断字符串是否相等
if [ "$path" = "/" ];then
    path=''
fi

#提取压缩包
sed -n '1,/^exit 0$/!p' $0 >$path/install.tar.gz
#解压出安装包
tar -zxvf $path/install.tar.gz

echo "finish"
exit 0


exit 0 后面 不能有空格。






参考:
https://www.jianshu.com/p/09cb8a113c39

标签:bin,tar,gz,sh,install,linux,path,制作
From: https://www.cnblogs.com/rebrobot/p/17199288.html

相关文章

  • linux 域名配置
    #/etc/sysconfig/network-scripts/网络接口配置文件#systemctlrestartnetwork启用,禁用网络接口配置#/etc/hostname主机名称配置文件#/etc/resolv.conf域名解析配......
  • linux运行 netcore,linux 下netcore程序开机自动启动服务
    [Unit]Description=aixiezuo守护进程[Service]WorkingDirectory=/www/wwwroot/fuwu/linux-x64ExecStart=/usr/bin/dotnet/www/wwwroot/fuwu/linux-x64/AIXieZuoNetC......
  • cdc-file-transfer 谷歌开源的windows 到linux 同步工具
    cdc-file-transfer是基于contentdefinedchunking以及fastcdc技术,cdc-file-transfer目前提供了两种工具cdc_rsync类似rsync的同步能力,进行文件拷贝,但是性能相比rsync......
  • 利用Python为女神制作一个专属网站
     一、数据准备首先是测试图片的获取,毕竟萝卜哥当前还没有那么多女神的照片这里我使用如下网站的高清图片,嗯,各个都是大美女   抓取的代码比较简单importreque......
  • Linux离线安装jdk8
    1、下载地址https://www.oracle.com/java/technologies/downloads/#java82、使用一个非root用户上传到/usr/local下,使用非root用户解压 tar-zxvfjdk-8u301-l......
  • Linux-1-030323
    #在后面的说明中,#号表示注释,它后面的内容不要输入到终端中#在后面的说明中,#号表示注释,它后面的内容不要输入到终端中#从下面开始是你要在终端中输入的命令(不包括#号后......
  • Linux 常用命令
    Linux运维常用命令解压/压缩tar–cvfjpg.tar*.jpg #将目录里所有jpg文件打包成tar.jpgtar-zcvftest.tar.gz./test/  #将文件夹test压缩成test.tar.gztar–xvf......
  • 手把手带你玩转Linux
    今天这篇文章带你走进Linux世界的同时,带你手把手玩转Linux,加深对Linux系统的认识。一、搞好Linux工作必须得不断折腾,说白了,只是动手力量必须强。我在初学Linux的那片,家......
  • 直播平台制作,登录页面的切换
    直播平台制作,登录页面的切换【xml代码】 <?xmlversion="1.0"encoding="utf-8"?><RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"  ......
  • Linux给用户赋予对某个文件夹的操作权限
    转载自:https://cloud.tencent.com/developer/article/2100610============ 1、切换到root用户su-root 2、更改文件夹的用户为user1chown-Ruser1:user1/......