enhydra 发表于 2013-1-16 02:29:40

yum and rpmbuild

1 yum 是一种rpm高级管理包工具
它有效的维护了包所有dependency关系
它有这些用法
yum list
yum install/remove/update packageName
yum groupinstall/remove/update groupName
yum clean all

2 createrepo 是建立包仓库
用法
createrepo -g group-repo.xml /root/repo
group-repo.xml 定义每组包的关系
<!DOCTYPE comps PUBLIC "-//Red Hat, Inc.//DTD Comps info//EN" "comps.dtd">
<comps>
<group>
   <id>mes-foundation</id>
   <default>false</default>
   <uservisible>True</uservisible>
   <display_order>1</display_order>
   <name>mes-foundation</name>
   <description>all software packages are MES foundational software</description>
    <packagelist>
          <packagereq type="default">test</packagereq>
<packagereq type="default">teste2</packagereq>
    </packagelist>
</group>
</comps>

3 rpmbuild 用来创建 RPM包
rpm是redhat 建立的一个包方法.
它有自己定义的目录结构
mkdir -p ~/rpmbuild/{BUILD,RPMS,S{OURCE,PEC,RPM}S}
or
cp -a /usr/src/rehat ~/rpmbuild

它包含 编译 安装 等一些过程. 这些描述是在spec文件中进行定义的

%define name      test
%define summary   test.
%define version   2.0
%define release   01
%define buildroot %{_tmppath}/%{name}

Name:      %{name}
Version:   %{version}
Release:   %{release}
Packager:%{software_packager}
Vendor:    %{software_vendor}
License:   %{software_license}
Summary:   %{summary}
Group:   %{software_group}
URL:       %{software_url}
Prefix:    %{_prefix}
Buildroot: %{buildroot}

Autoreq: 0
%description
test.
Requires:test2

%prep
mkdir -p $RPM_BUILD_ROOT/usr/lib/test

%build

%pre

%install

%clean

%check

%prepost

%post
/usr/sbin/useradd -u 644 test

%files
%defattr(-,root,root)
/etc/ssh/test
%dir /etct/ssh/test

%prepostun

%postun

%triggerpostin -- jdk
%triggerpostun -- jdk

之后
rpmbuild -bb --target=i386_linux test.spec

3 rpm 用法
rpm -qa 查询所有包
rpm -ql test 查询test包安装包含的所有文件
rpm -q --scripts test 查询test包中包含的所有shell
rpm -i test 安装
rpm -e --noscripts test 删除包但不执行shell
页: [1]
查看完整版本: yum and rpmbuild