【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 8月  31 16:31 echo_hello.sh
-rw-r--r--. 1 root root   19 8月  31 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 8月  31 16:45 echo_hello
-rwxr-xr-x. 1 root root 20548 8月  31 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

相关文章

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

CentOS 7 YUM源配置错误的解决方法

《CentOS7YUM源配置错误的解决方法》在使用虚拟机安装CentOS7系统时,我们可能会遇到YUM源配置错误的问题,导致无法正常下载软件包,为了解决这个问题,我们可以替换YUM源... 目录一、备份原有的 YUM 源配置文件二、选择并配置新的 YUM 源三、清理旧的缓存并重建新的缓存四、验证 YUM 源

Python实现一键PDF转Word(附完整代码及详细步骤)

《Python实现一键PDF转Word(附完整代码及详细步骤)》pdf2docx是一个基于Python的第三方库,专门用于将PDF文件转换为可编辑的Word文档,下面我们就来看看如何通过pdf2doc... 目录引言:为什么需要PDF转Word一、pdf2docx介绍1. pdf2docx 是什么2. by

PyQt5+Python-docx实现一键生成测试报告

《PyQt5+Python-docx实现一键生成测试报告》作为一名测试工程师,你是否经历过手动填写测试报告的痛苦,本文将用Python的PyQt5和python-docx库,打造一款测试报告一键生成工... 目录引言工具功能亮点工具设计思路1. 界面设计:PyQt5实现数据输入2. 文档生成:python-

Android实现一键录屏功能(附源码)

《Android实现一键录屏功能(附源码)》在Android5.0及以上版本,系统提供了MediaProjectionAPI,允许应用在用户授权下录制屏幕内容并输出到视频文件,所以本文将基于此实现一个... 目录一、项目介绍二、相关技术与原理三、系统权限与用户授权四、项目架构与流程五、环境配置与依赖六、完整

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

使用Python实现一键隐藏屏幕并锁定输入

《使用Python实现一键隐藏屏幕并锁定输入》本文主要介绍了使用Python编写一个一键隐藏屏幕并锁定输入的黑科技程序,能够在指定热键触发后立即遮挡屏幕,并禁止一切键盘鼠标输入,这样就再也不用担心自己... 目录1. 概述2. 功能亮点3.代码实现4.使用方法5. 展示效果6. 代码优化与拓展7. 总结1.

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

Centos环境下Tomcat虚拟主机配置详细教程

《Centos环境下Tomcat虚拟主机配置详细教程》这篇文章主要讲的是在CentOS系统上,如何一步步配置Tomcat的虚拟主机,内容很简单,从目录准备到配置文件修改,再到重启和测试,手把手带你搞定... 目录1. 准备虚拟主机的目录和内容创建目录添加测试文件2. 修改 Tomcat 的 server.X