zookeeperdeb打包方法(代码片段)

Erik_ly Erik_ly     2022-10-21     215

关键词:

文章目录


本文主要以 ZooKeeper 为例,介绍了source2deb、deb2deb、rpm2deb、tar2deb四种打包 deb 的方法,具有好的通用性。

简介

主要测试了四种zookeeper打包成deb的方式,分别为从源码直接打成deb包(source2deb)、逆向打包(deb2deb)、从rpm包转成deb包(rpm2deb)和使用源码编译成tar包,再将编译好的tar包打成deb包(tar2deb),推荐使用最后一种方式。

实验环境

以下操作均为在 Ubuntu 19 中使用 root 用户操作。

Source2deb

有些组件官方提供直接从源码打包成 deb 的方式,比如 ZooKeeper

源码下载

zookeeper-release-HDP-2.6.5.148-3-tag.tar.gz:https://github.com/hortonworks/zookeeper-release/releases/tag/HDP-2.6.5.148-3-tag

打成deb包

cd zookeeper-release-HDP-2.6.5.148-3-tag/
ant deb

查看

cd build

Deb2deb

这种属于逆向打包过程。

创建工作环境

mkdir zkdeb
cd zkdeb/
mkdir zookeeper

解包

dpkg -X zookeeper_3.4.6-1_amd64.deb zookeeper/
cd zookeeper/

提取DEBIAN信息

mkdir DEBIAN

cd /home/erik/Downloads/zkdeb

dpkg -e zookeeper_3.4.6-1_amd64.deb ./zookeeper/DEBIAN/

重新打包deb

mkdir build

cd /home/erik/Downloads/zkdeb

dpkg-deb -b zookeeper/ build/

查看deb文件

cd build/

DEBIAN文件解析

control

Preinst

在Deb包文件解包之前,将会运行该脚本。许多“preinst”脚本的任务是停止作用于待升级软件包的服务,直到软件包安装或升级完成。

Postinst

该脚本的主要任务是完成安装包时的配置工作。许多“postinst”脚本负责执行有关命令为新安装或升级的软件重启服务。

prerm

Postrm

该脚本负责修改软件包链接或文件关联,或删除由它创建的文件。

md5sums

各文件的md5值

conffile

Rpm2deb

打包好的rpm包可以直接使用“alien”工具转换为deb包。

实验环境:Ubuntu 19

工具:alien

安装工具

sudo apt-get install alien

因为zookeeper的来源可以是source2rpm和source2tar2rpm,所以现分别使用这两个rpm包进行测试

Source2rpm2deb

准备好之前打包好的rpm包

执行命令:

alien zookeeper-3.4.6-1.x86_64.rpm

Source2tar2rpm2deb

与之前方法类似,执行步骤如下图所示

Tar2deb

推荐使用这种方式,先使用源码编译成tar包,再使用tar包打成deb包,由于之前打rpm包时已经介绍过zookeeper打成tar包的流程,并且使用ant打包方法,不具有代表性,这里不再赘述,只介绍从tar包到deb包的步骤。

实验环境:Ubuntu 19

创建工作目录

mkdir zookeeper

创建DEBIAN 目录

cd zookeeper/

mkdir DEBIAN

cd DEBIAN/

vim control

准备安装文件

编译好的zookeeper tar 包解压到DEBIAN的同级目录下,
也就是说我们把当前的目录当成根目录, 制作完成后安装时,
当前目录下除DEBIAN目录的其他目录都会被默认安装到系统的/目录下,比如之后要将zookeeper安装到/opt/zookeeper/这个目录下,那么就将编译好的zookeeper解压到/opt/zookeeper/目录下

cd /home/erik/zookeeper/tar2deb/zookeeper

mkdir opt

cd opt

将编译好的tar包上传到这个文件夹

解压

tar –xvf zookeeper-3.4.6.tar.gz

mv zookeeper-3.4.6 zookeeper

rm –rf zookeeper-3.4.6.tar.gz

打包deb

创建存放deb包目录

cd /home/erik/zookeeper/tar2deb

mkdir build

执行

dpkg-deb -b zookeeper/ build/

安装

安装环境为另一台Ubuntu 19 虚拟机,模拟安装环境。

Deb2deb

dpkg -i zookeeper_3.4.6_all.deb

修改打包时的依赖

寻找安装目录

配置文件

启动脚本

启动

在安装的主机上,

Source2tar2deb

找到安装目录

cd /opt/zookeeper/

修改配置文件

cd conf/

cp zoo_sample.cfg zoo.cfg

启动

Source2tar2rpm2deb


参考资料

  • Ubuntu下制作deb包的方法详解 - AderStep - CSDN博客
    https://blog.csdn.net/gatieme/article/details/52829907

  • Deb包介绍 - 简书
    https://www.jianshu.com/p/67094ffe9578

  • deb和rpm包相互转换 - chenyulancn的专栏 - CSDN博客
    https://blog.csdn.net/chenyulancn/article/details/62216190

注:本文首发于个人博客网站: http://www.erik-ly.com/

极品webpack,打包方法,(代码片段)

webpack在学习webpack之前你的计算机上得有1.node.js前往node.js官网下载https://nodejs.org/zh-cn///node.js官网2.安装全局webpack前往webpack官网也可以下载,版本不合的话https://webpack.docschina.org///webpack官网npminstall--save-devwebpackwebpack打包1. 查看详情

webpack4打包多个css的两种方法(代码片段)

demo目录: 1.将css打包到js内部配置文件./conf/webpack.dev.js:constpath=require("path");module.exports=mode:"development",//打包为开发模式entry:"./src/main",//入口文件,从项目根目录指定output://输出路径和文件名,使用path模块resolve方法将输出路径... 查看详情

typescript中的打包方法以及配置方法(代码片段)

文章目录前言webpack步骤:1.初始化项目2.下载构建工具3.根目录下创建webpack的配置文件`webpack.config.js`4.根目录下创建tsconfig.json,配置可以根据自己的需要去修改添加5.修改package.json添加如下配置6.在src下创建ts文件&#x... 查看详情

pyinstaller打包配置upx缩小程序包大小,打包时出现upxisnotavailable处理方法(代码片段)

...日一练:Python国内疫情数据爬取与地图绘制Pyinstaller打包后程序体积较大可以看到打包过程出现UPXisnotavailable配置UPX后可以压缩大量的可执行文件和库,明显的减少打包后的程序包体积。配置方法:首先进入UPX官网下... 查看详情

一个非常简单的方法使用javascript打包一个网页成为安卓app(打包远景论坛)(代码片段)

...:此方法非常简单,可以挑一些移动端做的好的网站进行打包,比如 淘宝网,  京东网,网易新闻,  远景论坛大神看了轻喷,可以自己做了玩一下,本质上也是在浏览器访问页面,灵感来源于酷安一款应用[小购... 查看详情

应用打包及多端兼容总结(代码片段)

#应用打包失败在window系统中打包支持其他系统的应用,打包不成功。报了以下错误macFAILURE,no.datfilelinux64FAILURE,no.datfilelinuARM32FAILURE,no.datfile解决方法:找到sciterSDK下的package.js文件,修改以下代码路径:sciter/quark/package.js修改位... 查看详情

pyinstaller打包配置upx缩小程序包大小,打包时出现upxisnotavailable处理方法(代码片段)

...日一练:Python国内疫情数据爬取与地图绘制Pyinstaller打包后程序体积较大可以看到打包过程出现UPXisnotavailable配置UPX后可以压缩大量的可执行文件和库,明显的减少打包后的程序包体积。配置方法:首先进入UPX官网下... 查看详情

springboot打包部署到linux服务器的方法(代码片段)

springboot打包部署到linux服务器的方法1.由于springboot集成了tomcat,所以打包的时候不再使用war,而是使用jar.xml文件<groupId>包名</groupId><artifactId>打包的名字</artifactId><version>0.0.1-SNAPSHOT(版本)&l... 查看详情

linux:压缩某个文件夹的实现方法(代码片段)

tar-zcvf/home/xahot.tar.gz/xahot tar-zcvf打包后生成的文件名全路径要打包的目录 例子:把/xahot文件夹打包后生成一个/home/xahot.tar.gz的文件。 zip压缩方法:压缩当前的文件夹zip-r./xahot.zip./*-r表示递归 zip[参数][打包后的文件名][... 查看详情

wpf引用uwp控件不打包为msix分发的方法(代码片段)

...会说如果用了XAMLIslands等技术的时候,需要新建一个打包项目,将WPF应用打包为msix等才可以进行分发和使用。但是实际上不打包也可以,此时可以和此前的Win32应用一样的分发方式进行分发,可以支持到Win7系统... 查看详情

python打包(代码片段)

1,单文件打包pyinstaller-F-wfile.py-F:-w::启动exe文件,不显示控制台2,多文件打包 文件结构:test      main.py      set.py如果使用:pyinstaller-F-wmain.py发生问题:相互依赖的文件,打包后无法引用,导致报错可以... 查看详情

如何使用pyinstaller打包32位的exe(代码片段)

说明:原来安装的python为64位,故安装的pyinstaller和打包后的exe都为64位。而64位的exe文件在32位的win7操作系统下是无法执行的,显示不兼容。网上查询发现,简单(可能不方便)的方法是采用32位的python重新打包。这里,我使用... 查看详情

2019-05-10easyweb打包成jar运行遇到的问题(代码片段)

1.使用Eclipse的Maven命令打包,老是出错,没法打包成jar解决方法:在项目根目录下使用命令行 mvncleaninstall进行打包优化方法:项目根目录下创建一个bat文件,文件内容为 mvncleaninstall;这样每次需要打包点击一下即可2.打... 查看详情

python文件打包成可执行文件exe的两种方法(代码片段)

...有第三方模块可以将脚本可以转成exe执行。python上常见的打包方式目是通过pyinstaller来实现的。1pipinstallpyinstaller上面安装比较慢,用下面的清华源飞快。12#清华源pipinst 查看详情

maven打包后运行报错(代码片段)

Maven打包后运行报错场景描述今天在用Maven打包的时候发现打完后的jar包无法正常执行,一开始我以为是依赖问题。结果在摸索中发现有一个技巧可以解决问题。解决方法1.先clean2.然后启动你所有的服务,如果是单体项目... 查看详情

maven打包后运行报错(代码片段)

Maven打包后运行报错场景描述今天在用Maven打包的时候发现打完后的jar包无法正常执行,一开始我以为是依赖问题。结果在摸索中发现有一个技巧可以解决问题。解决方法1.先clean2.然后启动你所有的服务,如果是单体项目... 查看详情

python使用pyinstaller打包项目文件(代码片段)

使用Pyinstaller打包Python项目包含了大量的坑,这篇文章总结实践得到的Pyinstaller打包经验。本文的例子为Python3.6代码,Pyinstaller3.4,在windows下打包为64位和32位版本。目录  Pyinstaller基本使用方法  Python项目的打包... 查看详情

对一个deb包的解压修改重新打包全过程方法(代码片段)

出于多种原因,有的时候需要直接对deb包中的各种文件内容进行修改  主要有三个问题需要解决:0、如何将deb包文件进行解包呢?1、修改要修改的文件?2、对修改后的内容进行生成deb包? 解包命令为#解压出包中的... 查看详情