如何对程序进行rpm打包发布
来源:互联网 发布:jackson json 编辑:程序博客网 时间:2024/05/20 12:48
正如之前提到的,一般项目(程序)的目录包含pkg文件夹这个中应该编写与打包对应的例程,
例如我目录下结构为
[clouduser@blog /home/clouduser/ZK_Serviced]$ ls
AUTHORS bin data include libs logs Makefile pkg README scripts src
pkg目录下包含两个文件:
ls pkg/
Makefile ZK_Serviced.spec
这个Makefile其实就是遍历目录然后分别执行Makefile
cat Makefile
SUBDIRS := src
all:
@for d in $(SUBDIRS); do \
$(MAKE) -C $$d all; \
done
clean:
@for d in $(SUBDIRS); do \
$(MAKE) -C $$d clean; \
done
编写rpm打包程序关键在于写*.spec文件(如ZK_Serviced.spec),这个结构其实比较固定,例如我自己使用的结构内容如下示:
红色为描述性说明
绿色为生成目录与文件拷贝(打的包包含的内容)
蓝色为安装前,卸载前需要执行的脚本
cat ZK_Serviced.spec
%define debug_package %{nil}
%define __os_install_post %{nil}
%define _prefix /home/package/rpm/ZK_Serviced
%define srcname ZK_Serviced
summary: ZK_Serviced-daemon
name: ZK_Serviced
version: 1.0.0.1
release: 1%{?dist}
url: hao.360.cn
license: GPL
vendor: CloudUser<http://clouduser.cn>
group: Application/Internet
source: %{srcname}.tar.gz
#provides:
#requires:
#buildrequires:
buildroot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id_u} -n)
%description
ZK_Serviced aim at supply a service which update sysinfo into zookeeper
if any question contact at clouduser@163.com
%prep
%setup -q -n %{srcname}
%build
# your package build steps
make
%install
rm -rf %{buildroot}
# your package install steps
# the compiled files dir: %{_builddir}/<package_source_dir> or $RPM_BUILD_DIR/<package_source_dir>
# the dest root dir: %{buildroot} or $RPM_BUILD_ROOT
mkdir -p %{buildroot}/%{_prefix}/
mkdir -p %{buildroot}/%{_prefix}/bin/
mkdir -p %{buildroot}/%{_prefix}/libs/
mkdir -p %{buildroot}/%{_prefix}/logs/
mkdir -p %{buildroot}/%{_sysconfdir}/
mkdir -p %{buildroot}/%{_sysconfdir}/cron.d/
pushd %{_builddir}/%{srcname}/
cp -rf bin %{buildroot}/%{_prefix}/
cp -rf libs %{buildroot}/%{_prefix}/
cp -rf scripts/ZK_Serviced_clean_crontab %{buildroot}/%{_sysconfdir}/cron.d/
popd
%files
#%defattr(-,search,search)
%defattr(-,root,root)
# list your package files here
# the list of the macros:
# _prefix /usr
# _exec_prefix %{_prefix}
# _bindir %{_exec_prefix}/bin
# _libdir %{_exec_prefix}/%{_lib}
# _libexecdir %{_exec_prefix}/libexec
# _sbindir %{_exec_prefix}/sbin
# _includedir %{_prefix}/include
# _datadir %{_prefix}/share
# _sharedstatedir %{_prefix}/com
# _sysconfdir /etc
# _initrddir %{_sysconfdir}/rc.d/init.d
# _var /var
%{_prefix}/bin
%{_prefix}/libs
%{_prefix}/logs
%defattr(-,root,root)
%{_sysconfdir}/cron.d/ZK_Serviced_clean_crontab
%pre
# pre-install scripts
%post
# post-install scripts
%preun
# pre-uninstall scripts
%{_prefix}/bin/stop.sh ZK_Serviced
%postun
# post-uninstall scripts
%clean
rm -rf %{buildroot}
# your package build clean up steps here
%changelog
# list your change log here
下面为百度百科对其的简单介绍,想具体了解学习的可以上网查一下各个字段是什么含义,如果只是使用的话,上面粘出来的这段完全够你小的应该测试使用
RPM编辑
目录
1管理器
简介
一些相关操作应用命令
RPM主要功能(linux操作系统)
硬件描述
软件描述
- 如何对程序进行rpm打包发布
- 如何使用installshield进行程序打包发布
- 如何使用installshield进行程序打包发布
- 对.Net程序进行打包
- Android项目如何进行签名打包发布
- Android项目如何进行签名打包发布
- 使用Ant对程序进行编译打包
- linux+Qt程序如何打包发布
- 如何使用vs对程序进行打包?怎么通过注册表获取安装路径?
- 使用rpmbuild 进行rpm 打包
- 使用Phonegap在线打包程序对TPM进行打包
- 想自己用C#写程序,主要功能是对其他的程序进行打包,如何实现,求高手指教!!!
- 使用RPM打包QT程序
- RPM打包C++程序实例
- QT中对可执行程序的打包发布
- 使用jar命令对java程序进行打包
- Unity如何打包Android程序以及如何进行签名
- 打包发布J2SE程序
- Android 强指针和弱指针
- windows 打印机管理机制(任务后台等待机制)
- 指数函数
- Android Binder设计与实现 – 设计篇
- org.apache.catalina.core.ContainerBase.addChildInternal
- 如何对程序进行rpm打包发布
- ios开发 网络编程浅析(二)
- PHP cookie和session的分析
- 创建一个与已知表相同的 表结构
- oracle11gr2_rac_添加节点最佳实践
- Lion版本Mac OS下查看iPhone Simulator目录
- 10种排序算法的实现
- 搜狗CEO王小川杀出重围的三个产品
- cannot expose session attribute '_from_source' because of an existing model object of the same name