一.进行基础操作,安装ant以及尝试打成tar包
详细文章参考zookeeper源码打包tar
二:进行deb打包修改
- 在zk源码中添加如下目录
- 目录中文件内容
dist\src\main\package\deb\zookeeper\control\control
Package: zookeeper3_4_6_3_0_1_0_187
Version: 3.4.6.3.0.1.0-187
Section: misc
Priority: low
Architecture: all
Description: This package starts the zookeeper server on startup
Maintainer: root <root@ksyun-PC>
Depends: hadoop_3_0_1_0_187-client, hdp-select >= 3.0.1.0-187, redhat-lsb,config(zookeeper3_4_6_3_0_1_0_187) = 3.4.6.3.0.1.0
dist\src\main\package\deb\zookeeper\control\postinst
#!/bin/bash
# alien added permissions fixup code
chown 'zookeeper:zookeeper' '/var/lib/zookeeper'
/usr/bin/hdp-select --rpm-mode set zookeeper-client 3.0.1.0-187
/usr/bin/hdp-select --rpm-mode set zookeeper-server 3.0.1.0-187
if [ ! -e "/etc/zookeeper/conf" ]; then
rm -f /etc/zookeeper/conf
mkdir -p /etc/zookeeper/conf
cp -rp /usr/hdp/3.0.1.0-187/etc/zookeeper/conf.dist/* /etc/zookeeper/conf
fi
dist\src\main\package\deb\zookeeper\control\preinst
#!/bin/bash
getent group zookeeper >/dev/null || groupadd -r zookeeper
getent passwd zookeeper > /dev/null || useradd -c "ZooKeeper" -s /bin/bash -g zookeeper -r -d /var/run/zookeeper zookeeper 2> /dev/null || :
if [[ ! -e "/var/run/zookeeper" ]]; then
/usr/bin/install -d -o zookeeper -g zookeeper -m 0755 /var/run/zookeeper
fi
if [[ ! -e "/var/log/zookeeper" ]]; then
/usr/bin/install -d -o zookeeper -g zookeeper -m 0755 /var/log/zookeeper
fi
dist\src\main\package\deb\zookeeper-server\control\control
Package: zookeeper3_4_6_3_0_1_0_187-server
Version:3.4.6.3.0.1.0-187
Section: misc
Priority: low
Architecture: all
Description: This package starts the zookeeper server on startup
Maintainer: root <root@ksyun-PC>
Depends: zookeeper3_4_6_3_0_1_0_187 = 3.4.6.3.0.1.0-187
pom.xml
<plugin>
<groupId>org.vafer</groupId>
<artifactId>jdeb</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>zookeeper-deb</id>
<phase>package</phase>
<goals>
<goal>jdeb</goal>
</goals>
<configuration>
<controlDir>${basedir}/src/main/package/deb/zookeeper/control</controlDir>
<deb>${basedir}/target/zookeeper_${hdp-version-dash}-${zookeeper-version}-${zookeeper-release}_all.deb</deb>
<dataSet>
<data>
<src>${project.basedir}/../conf</src>
<type>file</type>
<mapper>
<type>perm</type>
<prefix>/usr/hdp/${hdp-version}/etc/zookeeper/conf.dist</prefix>
<user>root</user>
<group>root</group>
<filemode>644</filemode>
</mapper>
<!-- <sources>
<source>
<location>${project.basedir}/../conf</location>
</source>
<source>
<location>src/main/package/rpm</location>
<includes>
<include>zookeeper-env.cmd</include>
<include>zookeeper-env.sh</include>
</includes>
</source>
</sources>-->
</data>
<data>
<type>link</type>
<symlink>true</symlink>
<linkName>/usr/hdp/${hdp-version}/zookeeper/conf</linkName>
<linkTarget>/etc/zookeeper/conf</linkTarget>
</data>
<data>
<src>${project.basedir}/../bin</src>
<type>directory</type>
<mapper>
<type>perm</type>
<prefix>/usr/hdp/${hdp-version}/zookeeper/bin</prefix>
<user>root</user>
<group>root</group>
<filemode>755</filemode>
</mapper>
</data>
<data>
<src>${project.basedir}/../docs</src>
<type>directory</type>
<mapper>
<type>perm</type>
<prefix>/usr/hdp/${hdp-version}/zookeeper/doc</prefix>
<user>root</user>
<group>root</group>
<filemode>644</filemode>
</mapper>
</data>
<data>
<src>src/main/package/rpm/zookeeper</src>
<type>file</type>
<mapper>
<type>perm</type>
<prefix>/usr/hdp/${hdp-version}/zookeeper/etc/rc.d/init.d</prefix>
<user>root</user>
<group>root</group>
<filemode>755</filemode>
</mapper>
</data>
<data>
<src>${project.basedir}/../build/lib</src>
<type>directory</type>
<mapper>
<type>perm</type>
<prefix>/usr/hdp/${hdp-version}/zookeeper/lib</prefix>
<user>root</user>
<group>root</group>
<filemode>644</filemode>
</mapper>
</data>
<data>
<src>${project.basedir}/../build/zookeeper-3.4.6.jar</src>
<type>file</type>
<mapper>
<type>perm</type>
<prefix>/usr/hdp/${hdp-version}/zookeeper</prefix>
<user>root</user>
<group>root</group>
<filemode>644</filemode>
</mapper>
</data>
</dataSet>
</configuration>
</execution>
<execution>
<phase>package</phase>
<goals>
<goal>jdeb</goal>
</goals>
<id>zookeeper-server-deb</id>
<configuration>
<deb>${basedir}/target/zookeeper_${hdp-version-dash}-server-${zookeeper-version}-${zookeeper-release}_all.deb</deb>
<controlDir>${basedir}/src/main/package/deb/zookeeper-server/control</controlDir>
<dataSet>
<data>
<src>src/main/package/rpm/zookeeper-server</src>
<type>file</type>
<mapper>
<type>perm</type>
<prefix>/usr/hdp/${hdp-version}/zookeeper/etc/rc.d/init.d</prefix>
<user>root</user>
<group>root</group>
<filemode>755</filemode>
</mapper>
</data>
</dataSet>
</configuration>
</execution>
</executions>
</plugin>
三.编译
- 将代码进行打包,放入ant环境的机器上
- 编译:
[root@master hdp-zookeeper-release]# cd dist/
[root@master dist]# mvn clean package
- 查看
- 解压deb包
[root@master target]# dpkg -X zookeeper_3_0_1_0_187-3.4.6.3.0.1.0-187_all.deb ./
- 解压rpm包
[root@master target]# cd rpm/zookeeper_3_0_1_0_187/RPMS/noarch/
[root@master noarch]# rpm2cpio zookeeper_3_0_1_0_187-3.4.6.3.0.1.0-187.noarch.rpm | cpio -div
- 打包完成