rpm包制作实例

文件目录结构

└── neutron-vmware-ovs-agent-1.1
    └── usr
        ├── bin
        │   └── neutron-vmware-ovs-agent
        └── lib
            ├── python2.7
            │   └── site-packages
            │       └── neutron
            │           └── agent
            │               └── vmware_ovs_agent.py
            └── systemd
                └── system
                    └── neutron-vmware-ovs-agent.service

一、安装rpmbuild工具

yum install rpm-build

二、创建普通用户并切换到普通用户

useradd zxg
passwd zxg
su zxg

三、创建rmpbuild工作目录结构

mkdir -p /home/zxg/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}

四、将以下agent.spec放置在/home/zxg/rpmbuild/SPECS目录下

Name:   neutron-vmware-ovs-agent    
Version:    1.1
Release:    1
Summary:    for vmware port bindint

Group:      TESTGROUP
License:    GPL 
Source0:    %{name}-%{version}.tar.gz


%define _unpackaged_files_terminate_build 0

%description
This package will make a fake ovs agent which runs on vmware platform to bind ports of vms.

%prep
%setup -n %{name}-%{version}



%install
#make install DESTDIR=%{buildroot}
mkdir -p ${RPM_BUILD_ROOT}/usr/lib/systemd/system
mkdir -p ${RPM_BUILD_ROOT}/usr/bin
mkdir -p ${RPM_BUILD_ROOT}/usr/lib/python2.7/site-packages/neutron/agent
mkdir -p ${RPM_BUILD_ROOT}/etc/systemd/system/multi-user.target.wants/
ln -s /usr/lib/systemd/system/neutron-vmware-ovs-agent.service ${RPM_BUILD_ROOT}/etc/systemd/system/multi-user.target.wants/neutron-vmware-ovs-agent.service

cp %{_builddir}/%{name}-%{version}/usr/lib/systemd/system/neutron-vmware-ovs-agent.service ${RPM_BUILD_ROOT}/usr/lib/systemd/system/neutron-vmware-ovs-agent.service
cp %{_builddir}/%{name}-%{version}/usr/bin/neutron-vmware-ovs-agent ${RPM_BUILD_ROOT}/usr/bin/neutron-vmware-ovs-agent
cp %{_builddir}/%{name}-%{version}/usr/lib/python2.7/site-packages/neutron/agent/vmware_ovs_agent.py ${RPM_BUILD_ROOT}/usr/lib/python2.7/site-packages/neutron/agent/vmware_ovs_agent.py

chmod a+x ${RPM_BUILD_ROOT}/usr/bin/neutron-vmware-ovs-agent

%clean
rm -rf %{buildroot}

%post
systemctl start neutron-vmware-ovs-agent.service

%files
/etc/systemd/system/multi-user.target.wants/neutron-vmware-ovs-agent.service
/usr/bin/neutron-vmware-ovs-agent
/usr/lib/systemd/system/neutron-vmware-ovs-agent.service
/usr/lib/python2.7/site-packages/neutron/agent/vmware_ovs_agent.py

%preun
systemctl stop neutron-vmware-ovs-agent.service

%postun
systemctl daemon-reload

五、将neutron-vmware-ovs-agent-1.1压缩成tar.gz包并放置到/home/zxg/rpmbuild/SOURCES/目录下

tar -cvzpf neutron-vmware-ovs-agent-1.1.tar.gz neutron-vmware-ovs-agent-1.1/
mv neutron-vmware-ovs-agent-1.1 /home/zxg/rpmbuild/SOURCES/

六、进入/home/zxg/rpmbuild/SPECS/目录,编译rpm包

rpmbuild -bb agent.spec

猜你喜欢

转载自blog.csdn.net/zhangxiangui40542/article/details/78362796