【Centos】制作一键安装包.bin 文件

2024-09-01 13:52

本文主要是介绍【Centos】制作一键安装包.bin 文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【Centos】制作一键安装包.bin 文件

  • 1. 安装 Makeself
  • 2. 制作第一个Bin文件
  • 3. 执行 .bin 文件

在某些场景下,我们希望将一系列安装的动作打包在一个 .bin文件里面,在新的环境安装部署时,直接使用 .bin 文件来无脑部署。这时候就可以将安装所需要的步骤和文件打包成一个 .bin 文件,在新服务器上执行 ./xxx.bin 来进行无脑安装。

1. 安装 Makeself

我这里使用的是 Centos 7.9 ,使用 yum 安装时发现有问题,这里直接下载源码压缩包来安装。

cd /usr/local/bin
curl -L -o master.zip https://github.com/megastep/makeself/archive/refs/heads/master.zip
unzip master.zip
cd makeself-master
cp makeself.sh /usr/local/bin/makeself
chmod +x makeself
cp makeself-header.sh /usr/local/bin/

如果是 Ubuntu 系统,则下载可以使用:wget https://github.com/megastep/makeself/archive/refs/heads/master.zip
在使用过程中,如果没有执行这个cp makeself-header.sh /usr/local/bin/,则执行 Makeself 有可能报错:Unable to open header file: /usr/local/bin/makeself-header.sh

2. 制作第一个Bin文件

在当前路径下新建一个文件夹,比如 echo_hello 里面存放了需要打包的所有文件

[root@localhost test_build_bin_do]# tree echo_hello
echo_hello
├── echo_hello.sh
└── hello.txt0 directories, 2 files
[root@localhost test_build_bin_do]#

我这里简化安装包内容,只有一个安装脚本 echo_hell.shhello.txt 文件。

其中文件内容如下:

[root@localhost echo_hello]# cat echo_hello.sh 
#!/bin/bashauthor=linmengmengmp_model=$1# Define color codes
yellow='\033[1;33m'
red='\033[1;31m'
green='\033[1;32m'
none='\033[0m'print_hello_info() {msg ok "i am echo_hello.sh content......."cat hello.txtmsg ok "success....."}# print a mesage
msg() {case $1 inwarn)local color=$yellow;;err)local color=$red;;ok)local color=$green;;esacecho -e "${color}$(date +'%T')${none} ***************** ${2}${none}"
}check_script_param() {# 检查是否传递了参数if [ -z "$1" ]; thenecho "错误: 参数为空,请提供一个参数(1 或 2)。" >&2exit 1fi# 校验参数值case "$1" in1|2)echo "参数有效: $1";;*)echo "错误: 参数错误,必须为 1 或 2。" >&2exit 1;;esac}# main
main() {check_script_param "$1"  # 传递参数给 check_script_paramif [[ "$mp_model" == 1 ]];thenmsg warn "-----------------------------------------------"msg warn "|                 安装 模式1                   |"msg warn "-----------------------------------------------"elif [[ "$mp_model" == 2 ]];thenmsg warn "-----------------------------------------------"msg warn "|                 安装 模式2                   |"msg warn "-----------------------------------------------"fiprint_hello_info}# start.
main $@
[root@localhost echo_hello]# cat hello.txt 
Hello World.......
[root@localhost echo_hello]# 

执行命令来制作 bin 安装包:makeself echo_hello/ echo_hello.bin "Echo Hello Installation" ./echo_hello.sh

  • echo_hello 为安装文件所在的目录;
  • echo_hello.bin 为将要生成的bin安装包的名称;
  • "Echo Hello Installation" 为安装包的说明;
  • ./echo_hello.sh 指定安装包中安装脚本的入口;
[root@localhost test_build_bin_do]# ll echo_hello
总用量 8
-rwxr--r--. 1 root root 1474 831 16:31 echo_hello.sh
-rw-r--r--. 1 root root   19 831 16:21 hello.txt
[root@localhost test_build_bin_do]# 
[root@localhost test_build_bin_do]# 
[root@localhost test_build_bin_do]# makeself echo_hello/ echo_hello.bin "Echo Hello Installation" ./echo_hello.sh      
Header is 758 lines longAbout to compress 8 KB of data...
Adding files to archive named "echo_hello.bin"...
./echo_hello.sh
./hello.txt
CRC: 3901664695
MD5: c42268189c6f278fe6a4db90398a1730Self-extractable archive "echo_hello.bin" successfully created.
[root@localhost test_build_bin_do]# 
[root@localhost test_build_bin_do]# ll
总用量 28
drwxr-xr-x. 2 root root    44 831 16:45 echo_hello
-rwxr-xr-x. 1 root root 20548 831 16:49 echo_hello.bin
[root@localhost test_build_bin_do]#

可以看到在当前文件夹下生成了名称为 echo_hello.bin 的安装包了。

3. 执行 .bin 文件

[root@localhost test_build_bin_do]# sh echo_hello.bin 1
Verifying archive integrity...  100%   MD5 checksums are OK. All good.
Uncompressing Echo Hello Installation  100%  
参数有效: 1
16:53:59 ***************** -----------------------------------------------
16:53:59 ***************** |                 安装 模式1                   |
16:53:59 ***************** -----------------------------------------------
16:53:59 ***************** i am echo_hello.sh content.......
Hello World.......
16:53:59 ***************** success.....
[root@localhost test_build_bin_do]# 
[root@localhost test_build_bin_do]# 
[root@localhost test_build_bin_do]# sh echo_hello.bin 2
Verifying archive integrity...  100%   MD5 checksums are OK. All good.
Uncompressing Echo Hello Installation  100%  
参数有效: 2
16:54:21 ***************** -----------------------------------------------
16:54:21 ***************** |                 安装 模式2                   |
16:54:21 ***************** -----------------------------------------------
16:54:21 ***************** i am echo_hello.sh content.......
Hello World.......
16:54:21 ***************** success.....
[root@localhost test_build_bin_do]#

OK,完事!

现在你应该会了 1 + 1 = 2 了,那么来计算下

6702044178269172854   * 2369375447796003236 

的结果吧。

这篇关于【Centos】制作一键安装包.bin 文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1127123

相关文章

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文

用Unity2D制作一个人物,实现移动、跳起、人物静止和动起来时的动画:中(人物移动、跳起、静止动作)

上回我们学到创建一个地形和一个人物,今天我们实现一下人物实现移动和跳起,依次点击,我们准备创建一个C#文件 创建好我们点击进去,就会跳转到我们的Vision Studio,然后输入这些代码 using UnityEngine;public class Move : MonoBehaviour // 定义一个名为Move的类,继承自MonoBehaviour{private Rigidbo

centos6一键安装vsftpd脚本

centos6一键安装vsftpd脚本 手动安装vsftpd参考教程:Centos下安装Vsftpd的图文教程 vsftpd脚本功能: 1.安装 (命令执行:sh xxx.sh)2.添加ftp用户 (命令执行:sh xxx.sh add)3.卸载vsftpd (命令执行:sh xxx.sh uninstall) 测试环境:centos6 x64 centos6 x86(测试centos7以

centos 6安装 vim

centos 安装vim 1.首先查询当前当前vim所依赖的包存在不存在.检查缺少哪个几个依赖包 [root@bogon firstCopy]# rpm -qa|grep vivimvim-common-7.4.160-5.el7.x86_64vim-enhanced-7.4.160-5.el7.x86_64vim-filesystem-7.4.160-5.el7.x86_64vim-

禅道Docker安装包发布

禅道Docker安装包发布 大家好, 禅道Docker安装包发布。 一、下载地址 禅道开源版:   /dl/zentao/docker/docker_zentao.zip  备用下载地址:https://download.csdn.net/download/u013490585/16271485 数据库用户名: root,默认密码: 123456。运行时,可以设置 MYSQL_ROOT_P

NGINX轻松管理10万长连接 --- 基于2GB内存的CentOS 6.5 x86-64

转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=190176&id=4234854 一 前言 当管理大量连接时,特别是只有少量活跃连接,NGINX有比较好的CPU和RAM利用率,如今是多终端保持在线的时代,更能让NGINX发挥这个优点。本文做一个简单测试,NGINX在一个普通PC虚拟机上维护100k的HTTP

CentOS下mysql数据库data目录迁移

https://my.oschina.net/u/873762/blog/180388        公司新上线一个资讯网站,独立主机,raid5,lamp架构。由于资讯网是面向小行业,初步估计一两年内访问量压力不大,故,在做服务器系统搭建的时候,只是简单分出一个独立的data区作为数据库和网站程序的专区,其他按照linux的默认分区。apache,mysql,php均使用yum安装(也尝试

Linux Centos 迁移Mysql 数据位置

转自:http://www.tuicool.com/articles/zmqIn2 由于业务量增加导致安装在系统盘(20G)磁盘空间被占满了, 现在进行数据库的迁移. Mysql 是通过 yum 安装的. Centos6.5Mysql5.1 yum 安装的 mysql 服务 查看 mysql 的安装路径 执行查询 SQL show variables like

秒变高手:玩转CentOS 7软件更换的方法大全

在 CentOS 7 中更换软件源可以通过以下步骤完成。更换源可以加快软件包的下载速度,特别是当默认源速度较慢时。以下是详细步骤: 前言 为了帮助您解决在使用CentOS 7安装不了软件速度慢的问题,我们推出了这份由浪浪云赞助的教程——“CentOS7如何更换软件源加快下载速度”。 浪浪云,以他们卓越的弹性计算、云存储和网络服务受到广泛好评,他们的支持和帮助使得我们可以将最前沿的技术知识分

CentOS 7 SVN的搭建和使用

https://subversion.apache.org/packages.html#centos 阿里云的ECS貌似已经自带了SVN [root@xxx ~]# svn --versionsvn, version 1.7.14 (r1542130)compiled Aug 23 2017, 20:43:38Copyright (C) 2013 The Apache Software Fo