CentOS 5vO~O‹Ŏg

RPM�p�b�P�[�W�쐬����

RPM�p�b�P�[�W���쐬���邽�߂̃�������

Linux��RPM�p�b�P�[�W�������ō�邽�߂̃m�E�n�E�W�ł��B

RPM�p�b�P�[�W�쐬�ɕK�v�ȃc�[���̃C���X�g�[���Ɗ‹��ݒ�

rpmbuild�p�b�P�[�W

����Linux OS�̃f�B�X�g���r���[�V�����ɂ͊܂܂�Ă��܂����A�I�v�V���������ŃC���X�g�[������Ă��Ȃ����Ƃ�����܂��B

# yum install rpmbuild
   :

�‹��ݒ�

RPM�p�b�P�[�W�쐬��root�����ō�Ƃ���ƃG���[���ɔߎS�Ȗڂɂ����̂ŁA�K����ʃ��[�U�����ō�Ƃ��܂��B

���[�U�̃z�[���f�B���N�g���ɁARPM�p�b�P�[�W��Ɨp�f�B���N�g�����쐬���܂��B

~$ mkdir -p rpm/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
~$ ls rpm
BUILD  RPMS  SOURCES  SPECS  SRPMS
~$

rpmbuild�R�}���h���s���ɁA��q�̃z�[���f�B���N�g���ɍ������ƃf�B���N�g�����g�p���邽�߂̐ݒ�t�@�C����~/.rpmmacros�ɋL�q���܂��B

%_topdir /home/torutk/rpm
%packager Toru Takahashi <[email protected]>
%_sysconfdir /etc

���L�jGPG���ɂ�鏐���ɂ‚��ẮA�{�y�[�W�ł͋L�ڂ��Ă��܂��񂪁A�C���^�[�l�b�g��ȂǂŌ��J����ꍇ�́A�v��ʈ��ӂ����邽�߂ɏ���������ׂ��ł��B

�\�[�X�E�p�b�P�[�W����o�C�i���E�p�b�P�[�W���쐬����

src.rpm����肷��΁A�ȒP�Ƀo�C�i���E�p�b�P�[�W���r���h���邱�Ƃ��ł��܂��B

~$ rpmbuild --rebuild xyz-1.2.3-4.src.rpm
   :

~/rpm/RPMS/i386�̉��ɁA�o�C�i���p�b�P�[�W����������܂��B

�p�b�P�[�W�쐬���̃G���[�Ώ�

�G���[����������ꍇ�A����spec�t�@�C���𒲐����邱�ƂɂȂ�܂��B

�\�[�X�E�p�b�P�[�W����spec�t�@�C�������o��

tarball����o�C�i���p�b�P�[�W�̃r���h�ispec�Ή�tarball�̏ꍇ�j

spec�t�@�C�����񋟂���Ă���tarball�̏ꍇ�A��r�I�ȒP��RPM�o�C�i���p�b�P�[�W�𐶐����邱�Ƃ��ł��܂��B

�܂��Atarball����spec�t�@�C�������o���A~/rpm/SPECS�̉��ɒu���܂��B

tarball��~/rpm/SOURCES�̉��ɒu���܂��B

~$ cd rpm/SPECS
SPECS$ rpmbuild -ba xyz.spec
    :

rpmbuild�R�}���h�̎�v�I�v�V�����͈ȉ��ł��B

-bp  %prep�Z�N�V���������s
-bc  %prep��%build�Z�N�V���������s
-bi  %prep��%build��%install�Z�N�V���������s
-bb  %prep��%build��%install�Z�N�V�����ƃo�C�i���p�b�P�[�W�쐬�����s
-ba  %prep��%build��%install�Z�N�V�����ƃo�C�i���p�b�P�[�W�쐬�ƃ\�[�X�p�b�P�[�W�쐬�����s
-bl  %files�Z�N�V�����̌������s��
--short-circuit -bc  %build�Z�N�V���������s�i%prep���΂��āj
--short-circuit -bi  %install�Z�N�V���������s�i%prep��%build���΂��āj
--nobuild  �����r���h�������Aspec�t�@�C���̌������s���̂Ɏg��

spec�t�@�C�����쐬���ă\�[�X�R�[�h����o�C�i���p�b�P�[�W���r���h

spec�t�@�C�����P����쐬����_�������A��Ltarball����̃r���h�ƈꏏ�ł��B

RPM�p�b�P�[�W�t�@�C���̖����K��

���O - �o�[�W���� - �����[�X . �f�B�X�g���r���[�V���� . �A�[�L�e�N�`�� . rpm
���O
�\�t�g�E�F�A�����w�肵�܂��B
�o�[�W����
�����ƃs���I�h�̑g�ݍ��킹�ŁA�ʏ�3���Ŏw�肵�܂��B�i��F 3.4.5�j
�����[�X
RPM�p�b�P�[�W�̃����[�X�ԍ��ŁA�\�[�X�R�[�h�͕ύX�Ȃ��p�b�P�[�W�̃r���h�菇��̏C��������ꍇ�Ƀ����[�X�ԍ����C���N�������g���Ă����܂��B
�f�B�X�g���r���[�V����
�f�B�X�g���r���[�V���������ʂ��镶������w�肷�邱�Ƃ�����܂��B�i��Ffc10�Ael5�j
�A�[�L�e�N�`��
�p�b�P�[�W�̃o�C�i�������s�”\�ȃA�[�L�e�N�`�����w�肵�܂��B�i��F i386�Ai686�Anoarch�Ȃǁj

spec�t�@�C���̏�����

RPM�p�b�P�[�W�ő�̓�ւ��A����spec�t�@�C�����쐬���邱�Ƃł��Bspec�t�@�C�����ɂ߂邱�Ƃ��ARPM�p�b�P�[�W�E�l�ɂ‚Ȃ���܂��B

spec�t�@�C���̍\��

spec�t�@�C���̍\�����ȒP�ɋL�q����ƈȉ��ɂȂ�܂��B

�C���g���_�N�V�����@�Z�N�V����
description �Z�N�V����
prep �Z�N�V����
build �Z�N�V����
install �Z�N�V����
clean �Z�N�V����
files �Z�N�V����

�C���g���_�N�V�����@�Z�N�V�����̋L�q

spec�t�@�C���̐擪�ɋL�q���܂��B

Name: xyz
Version: 1.2.3
Release: 1%{?dist}
Group: Utilities
Vendor: Example Company
URL: http://www.example.com/product/xyz
Packager: Toru Takahashi <[email protected]>
License: MIT
Summary: Tools for doing something about xyz.
Summary(ja): xyz�ɂ‚��ĂȂɂ�������c�[��
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildArch: i386
Source: xyz-1.2.3.tar.gz
Patch1: xyz-cvs.patch

Name�AVersion�ARelease��3��d�v���ڂł�����A���������`���܂��B

Group�́A/usr/share/doc/rpm-4.1/GROUPS�ɒ�`����Ă�����̂���I������̂��悢�ł��傤�B

Summary(ja)�́A���{�ꃍ�P�[���ł̃p�b�P�[�W�T�v��\�����邽�߂Ɏg���܂��B�i�ȗ��j

�\�[�X�t�@�C���i�A�[�J�C�u�j����������Ƃ��́ASource0, Source1, �c��Source�ɐ��l��A�Ԃŕt���Ďw�肵�܂��B

�p�b�`�t�@�C������������Ƃ��́APatch0, Patch1, �c��Patch�ɐ��l��A�Ԃŕt���Ďw�肵�܂��B

Source0: xyz-1.2.3.tar.gz
Source1: abc-0.1.tar.gz
Patch0: xyz-1.2.3-p3.patch
Patch1: xyz-1.2.3.cvs.patch

�����\�[�X�t�@�C���ƃp�b�`�t�@�C���́A�p�b�P�[�W�쐬����SOURCES�f�B���N�g���̒��ɒu���܂��B

Vendor��Packager�́A�p�b�P�[�W���쐬����c�́E��Ǝ҂��L�q���܂��B

License�́A�\�[�X�R�[�h�̃��C�Z���X���L�ڂ��܂��B

BuildArch�ɂ́A���̃p�b�P�[�W�̃A�[�L�e�N�`���iCPU��ʁj���w�肵�܂��Bx86 Linux�iCentOS 5�j�ł́A���̎w����ȗ������ꍇ�Ai386���K�p����܂��B�R���p�C���I�v�V������CPU����̎w�������ꍇ�Ai686�̂悤�Ɍ��肷��CPU�A�[�L�e�N�`�������L�q���܂��BCPU�ˑ��o�C�i�����Ȃ��p�b�P�[�W�i�X�N���v�g���ꓙ�j�́Anoarch���w�肵�Ă��悢�ł��傤�B

Release

Release�̓\�[�X�t�@�C���ɂ͎����ꂸ�ɁA�r���h�Ɋւ���ݒ���C�������Ƃ��ɃC���N�������g���܂��B�f�B�X�g���r���[�V�������ʂ͋��ʂ�SPEC�t�@�C�����畡���f�B�X�g���r���[�V�����i�o�[�W�����j�ɑΉ��ł���悤�Arpmbuild�R�}���h�̃R�}���h���C���I�v�V������dist�}�N�����w�肵���Ƃ��ɕt�^�����悤�ɋL�q���Ă��܂��B
��SPEC�t�@�C����dist���`����ƁA�f�B�X�g���r���[�V�����i�o�[�W�����j���Ƃ�SPEC�t�@�C�����C�����Ȃ��Ă͂Ȃ�Ȃ�����

$ rpmbuild -ba --define="dist .el5" xyz.spec

Tips Source�ɂ͂t�q�k�ŃA�[�J�C�u���w�肵�Ă��悢

Source�ɂ́AURL�Ńt�@�C�����w�肷�邱�Ƃ��ł��܂��Brpmbuild���s����URL����t�@�C�����_�E�����[�h���܂��B

�}�N����`�̊m�F

spec�t�@�C���Ŏg�p����}�N��������܂��B���̒l��m�肽���Ƃ��́Arpm�R�}���h��--eval�I�v�V�����Ŋm�F�ł��܂��B

$ rpm --eval %{_libdir}
/usr/lib
$
�}�N�� �l ��`
_prefix
/usr -
_exec_prefix
/usr
%{_prefix}
_lib
lib
-
_bindir /usr/bin
%{_exec_prefix}/bin
_libdir /usr/lib
%{_exec_prefix}/%{_lib}
_datadir /usr/share
%{_prefix}/share
_includedir /usr/include
%{_prefix}/include
_sysconfdir
/etc
-
_initrddir
/etc/rc.d/init.d
%{_sysconfdir}/rc.d/init.d
��Fedora 9�ȍ~�ł͔񐄏��ƂȂ��Ă���i�����%_initddir���g���j

�ꗗ����ɂ́Arpmbuild�R�}���h��--showrc�I�v�V�����ʼn”\�ł��B

_docdir

�}�N����`��_docdir�͂Ȃ����Aspec�t�@�C����_docdir���g�p���Ă�����̂�����܂��B_docdir�͎��s���Ɋm�肷��}�N���ŁA���O�ɒ�`����Ă���}�N��_defaultdocdir���K�p�����悤�ł��B

description�Z�N�V����

�p�b�P�[�W���e���ڍׂɋL�q����Z�N�V�����ł��B

%description
The xyz utilities are used for software development activities. 
The main activities are in construction and unit testing.
    :

%description -l ja
XYZ���[�e�B���e�B�́A�\�t�g�E�F�A�J����Ƃɖ𗧂ƒc�[�������߂Ă��܂��B
���ɁA�\�t�g�E�F�A�̃r���h����ђP�̃e�X�g��ƂɎg�����Ƃ�ړI�Ƃ��Ă��܂��B
�@�@�F

�{�L�q�́Arpm�R�}���h�Ńp�b�P�[�W���e�𒲂ׂ�Ƃ��Ɍ��邱�ƂɂȂ�̂ŁA���J�ɋL�ڂ��܂��傤�B�L�q�ʂ͂����ނ˃R���\�[����ʂŔ������x�̗ʂ������̂ł͂Ȃ����Ǝv���܂��B�i80����10�s���j

prep�Z�N�V����

�\�[�X�R�[�h�̃A�[�J�C�u�t�@�C������ƃf�B���N�g���iBUILD�j�ɓW�J���A�p�b�`�t�@�C��������΃p�b�`��K�p���鏈�����L�q����Z�N�V�����ł��B

�p�b�`�t�@�C�����Ȃ��A�\�[�X�R�[�h�̃A�[�J�C�u��RPM�����K���ɑ����č쐬����Ă���΁A�ȉ��̋L�q�����ŏ\���ł��B

%prep
%setup -q

�p�b�`������ꍇ�A%patch ���w�肵�܂��B

%patch0 -p0
%patch1 -p0

%setup�̎��s���e

%setup�́ASOURCES�f�B���N�g���ɂ���\�[�X�R�[�h�A�[�J�C�u��BUILD�f�B���N�g���̉��ɓW�J���܂��B�����āA�\�[�X�R�[�h�̃f�B���N�g�����ɃJ�����g�f�B���N�g�����ڂ��܂��B

���Ƃ��΁A�C���g���_�N�V�����E�Z�N�V�����Ɉȉ��̋L�q���s���Ă����ꍇ�A

Name: xyz
Version: 1.2.3
Release: 1
Source: xyz-1.2.3.tar.gz

�܂��ABUILD�f�B���N�g���ŁAxyz-1.2.3.tar.gz��W�J���܂��B�����āABUILD/xyz-1.2.3��cd���܂��B����cd����f�B���N�g���́A%{name}-%{version}�ł��B���������āA���炩���߃\�[�X�R�[�h�A�[�J�C�u�����̖����ɏ]���č���Ă��Ȃ��ƃG���[�ƂȂ��Ă��܂��܂��B

�������A�����‚��̃\�[�X�A�[�J�C�u��RPM�̖����ɏ]���Ă��܂���B���̂Ƃ��́A%setup��-n�I�v�V������cd����f�B���N�g�������w�肵�܂��B

%setup -q -n xyz_1_2_3

%patch�̎��s���e

UNIX��patch�R�}���h���Ăяo���܂��B�p�b�`�t�@�C���쐬���̃f�B���N�g���w��ɂ���ēK�؂�-p�I�v�V�������w�肵�܂��B

%patch�R�}���h�́A%setup�R�}���h�Ń\�[�X�R�[�h�A�[�J�C�u���W�J���ꂻ�̃f�B���N�g������cd������Ɏ��s�����̂ŁA�p�b�`�t�@�C���쐬���Ƀ\�[�X�R�[�h�A�[�J�C�u�̃g�b�v���x���f�B���N�g�����p�b�`�t�@�C���Ɋ܂܂�Ă���΁A-p 1�Ńg�b�v���x���f�B���N�g�������O���܂��B

build�Z�N�V����

�W�J�E�p�b�`���K�p���ꂽ�\�[�X�R�[�h���r���h���܂��B

configure/make�Ńr���h���邔�������������̏ꍇ�͈ȉ��̋L�q�ƂȂ�܂��B

%build
%configure
make

%configure�́A���̎��s���Ă���}�V���‹��̃f�t�H���g�ݒ���R�}���h���C���I�v�V�����œW�J���܂��B�ȉ���CentOS 5.2��x86�}�V����ł̓W�J���e�ł��B

$ rpm --eval "%configure"

  CFLAGS="${CFLAGS:--O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions \
 -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic \
 -fasynchronous-unwind-tables}" ; export CFLAGS ;
  CXXFLAGS="${CXXFLAGS:--O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions \
 -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic \
 -fasynchronous-unwind-tables}" ; export CXXFLAGS ;
  FFLAGS="${FFLAGS:--O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions \
 -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic \
 -fasynchronous-unwind-tables}" ; export FFLAGS ;
  for i in $(find . -name config.guess -o -name config.sub) ; do
           [ -f /usr/lib/rpm/redhat/$(basename $i) ] && /bin/rm -f $i && \
 /bin/cp -fv /usr/lib/rpm/redhat/$(basename $i) $i ;
  done ; 
  ./configure --build=i686-redhat-linux-gnu --host=i686-redhat-linux-gnu \
        --target=i386-redhat-linux-gnu \
        --program-prefix= \
        --prefix=/usr \
        --exec-prefix=/usr \
        --bindir=/usr/bin \
        --sbindir=/usr/sbin \
        --sysconfdir=/etc \
        --datadir=/usr/share \
        --includedir=/usr/include \
        --libdir=/usr/lib \
        --libexecdir=/usr/libexec \
        --localstatedir=/var \
        --sharedstatedir=/usr/com \
        --mandir=/usr/share/man \
        --infodir=/usr/share/info

install�Z�N�V����

�r���h������A�C���X�g�[�������s���܂��B�����ł̃C���X�g�[���́ARPM�p�b�P�[�W���쐬���邽�߂̍�Ɨp�Ȃ̂ŁA�{���̃C���X�g�[����ł͂Ȃ��A��Ɨp�̃C���X�g�[������w�肵�܂��B

configure/make�Ńr���h����tarball�̏ꍇ�͈ȉ��̋L�q�ƂȂ�܂��B

%install
make install PREFIX=$RPM_BUILD_ROOT/usr

make install���p�ӂ���Ă��Ȃ��ꍇ�Ainstall�R�}���h��cp�R�}���h�����g���ăt�@�C���̃R�s�[���s���܂��B�V�F���X�N���v�g�Ƃقړ��l�ɋL�q�ł��܂��B

install�R�}���h�̎g����

#�f�B���N�g�����쐬
install -m755 -d $RPM_BUILD_ROOT/usr/share/%name-%version/config

#�t�@�C����1�ƒR�s�[
install -m755 README $RPM_BUILD_ROOT/usr/share/%name-%version/README

#�t�@�C���Q���w��f�B���N�g���̉��փR�s�[�i�ċA�I�ɂ̓R�s�[����Ȃ��j
install -m755 config/* $RPM_BUILD_ROOT/usr/share/%name-%version/config

�ŏ�%{name}-%{version}�̂悤�ɋL�q���Ă�����A�V�F�����s����{xyz}-{1.2.3}�̂悤�ɓW�J���ꂽ���߁A{}���������Ă��܂��iCentOS 5.2/rpmbuild 4.4.2�j�B

install�R�}���h�Ńf�B���N�g�����ċA�I�ɃR�s�[������@���������炸�A����͓s�x�L�q���Ă��܂��B

�T�u�f�B���N�g��������f�B���N�g���̒��̃t�@�C�������C���h�J�[�h�ňꊇ�w�肷��ƃG���[�ƂȂ�܂��B

xyz-1.2.3
  +-- config
  |     +-- xyz_1st.dat
  |     +-- xyz_2nd.dat
  |     +-- templates
  |           +-- xyz_template.dat
  |           +-- xyz_template2.dat

�����ŁA�ȉ��L�q������ƁAtemplates��������C���X�g�[����������邱�ƂɂȂ�G���[���������܂��B

install -m755 config/* $RPM_BUILD_ROOT/etc/xyz/config
install -m755 config/templates/* $RPM_BUILD_ROOT/etc/xyz/config/templates

�ʓ|�ł����A�•ʂɎw�肷�邵���Ȃ��悤�ł��B�i���邢��install�R�}���h�ł͂Ȃ�cp�R�}���h���ŃT�u�f�B���N�g�����ƈꊇ�R�s�[����j

install -m755 config/xyz* $RPM_BUILD_ROOT/etc/xyz/config
install -m755 config/templates/* $RPM_BUILD_ROOT/etc/xyz/config/templates
�h�L�������g�t�@�C���ɂ‚���

���files�Z�N�V�����Ŏw�肷��h�L�������g�t�@�C���ɂ‚��ẮA����install�Z�N�V�����ŋL�q���Ă��Ȃ��Ă��A�R�s�[�����悤�ł��B

clean�Z�N�V����

%clean
rm -rf $RPM_BUILD_ROOT

files�Z�N�V����

�C���X�g�[������t�@�C�����•ʎw�肷��̂���{�`�ł��B

%files
/usr/bin/xyzd
/usr/share/man/man1/xyz.1.gz

���C���h�J�[�h���g���ĕ����t�@�C�����w�肷�邱�Ƃ��ł��܂��B

/usr/share/man/man1/xyz.*

��̃f�B���N�g�����w��ꏊ�ɍ쐬����ꍇ�A%dir�}�N�����g���܂��B

%dir /etc/xyz

���Ƀt�@�C�������݂���f�B���N�g�����w�肷��ƁA�T�u�f�B���N�g�����܂߂ăC���X�g�[���ΏۂƂȂ�܂��B

/usr/share/xyz-1.2.3
���Ӂj�p�b�P�[�W���A���C���X�g�[������ƁA���̕��@�Ŏw�肵���f�B���N�g���͈ꊇ�폜����܂��B�Ⴆ�΁A/usr/bin �Ƃ������w��͂��Ă͂����܂���B�t�@�C�����•ʂɎw�肷�邩�A/usr/bin/* �̂悤�Ƀ��C���h�J�[�h�w�肵�܂��B

�h�L�������g�t�@�C���Ƃ��ă}�[�N���A�h�L�������g�E�f�B���N�g�����쐬���ăC���X�g�[������t�@�C����%doc�}�N���Ŏw�肵�܂��B

%doc README NEWS

�h�L�������g�t�@�C���������f�B���N�g���ɎU�݂��Ă��Ă��A�t�@�C���w�肷��Έ�ӏ��ɏW�߂��܂��B

%doc docs/README news/NEWS changelogs/ChangeLog

�����́A%docdir�̒����Ƀt�@�C���Ƃ��Ēu����܂��B

�h�L�������g�E�f�B���N�g����%docdir�}�N���Ŏw�肵�܂��B%doc�Ŏw�肵���t�@�C���͂����ɏW�߂��܂��B

%docdir /usr/share/man/man1

�ݒ�t�@�C���Ƃ��ă}�[�N���܂��B�A�b�v�f�[�g��ăC���X�g�[�����A�ݒ�t�@�C���ɕύX�������Ă���΁A�g���q��ς��ĕۑ����܂��B�����I�ɏ㏑���֎~���w�肷�邱�Ƃ��ł��܂��B

%config /etc/rc.d/init.d/*
%config(noreplace) /etc/xyz/xyz.conf

�t�@�C���̃p�[�~�b�V������ݒ肷��ꍇ�A%attr�}�N�����g���܂��B

%attr(0644,root,root)  /etc/xyz/xyz.conf

�܂Ƃ߂Ĉꊇ�w�肷����@������܂��B�����炪��ʓI�ł��B

%files
%defattr(-,root,root)
  :

�ʂȃt�@�C���Ƀt�@�C���ꗗ���L�q���Ă����A��荞�ނ��Ƃ��ł��܂��B

%files -f xyz_file.list

TODO:

man�t�@�C���͊g���q.gz��t����

%files�Z�N�V�����ɋL�q����man�t�@�C���́A�g���q.gz���w�肵�܂��B

%install
install xzy/xyz.1 $RPM_BUILD_ROOT%{_mandir}/man1

%files
/usr/share/man/man1/xyz.1.gz

�h�L�������g�t�@�C��

�h�L�������g�t�@�C���́A%docdir�Ŏw�肵���h�L�������g�f�B���N�g�������ɃR�s�[����܂��B����́A%doc�Ńf�B���N�g���t���w������Ă����ꍇ�ł��A�t�@�C���������ɃR�s�[����邩��ł��B����A%doc�Ńf�B���N�g�����w�肵���ꍇ�A�f�B���N�g���Ƃ���%docdir�����ɃR�s�[����܂��B����́Arpmbuild�̎d�l�Ȃ̂������ˑ��Ȃ̂��͖��m�F�ł��B

%docdir /usr/share/doc/xyz-1.2.3
%doc README LICENSE changelogs

changelogs���f�B���N�g���������ꍇ�A/usr/share/doc/xyz-1.2.3/changelogs/* �Ƃ��ăC���X�g�[������܂��B

�C���X�g�[������s�������X�N���v�g�̒�`

%post
/sbin/chkconfig --add xyzd

�A���C���X�g�[�����Ɏ��s�������X�N���v�g�̒�`

�A���C���X�g�[���O�Ɏ��s����X�N���v�g��%preun�ɁA�A���C���X�g�[����Ɏ��s����X�N���v�g��%postun�ɒ�`���邱�Ƃ��ł��܂��B

%preun
if [ "$1" = 0 ]; then
    /sbin/service xyzd stop > /dev/null 2>&1
    /sbin/chkconfig --del xyzd
fi
exit 0

%postun
if [ "$1" -ge 1 ]; then
    /sbin/service xyzd condrestart > /dev/null 2>&1
fi
exit 0

�ύX���O

%changelog
* Fri July 4 2008 Toru Takahashi <[email protected]>
- modify configure option

���ӓ_

�‹��ϐ��̒�`�̓Z�N�V������

�Ⴆ�΁Aprep�Z�N�V�����Ŋ‹��ϐ����`���Ă��Ainstall�Z�N�V�����ł͊‹��ϐ����Q�Ƃ��Ă�����`�ƂȂ��Ă��܂��܂��B�Z�N�V�������ɕʃv���Z�X�Ŏ��s����Ă���悤�Ɏv���܂��B

Emacs��spec�t�@�C���̕ҏW

Emacs�ɂ́Arpm-spec-mode������Aspec�t�@�C���ҏW�x���@�\���g�����Ƃ��ł��܂��B

�}�N��

�����}�N��

�������W�J

����

%{?�]������}�N��:��}�@�@ �]������}�N�������݁i��`�ς݁j�ł���΁A����W�J����
%{!?�]������}�N��:��}�@�@�]������}�N�������݂��Ȃ��i����`�j�ł���΁A����W�J����

��������

%if %{hoge}       �ے��%if ! %{hoge}�@�@����������%if %{hoge} && %{huga}
�Ȃ񂿂��
%else
���񂿂��
%endif

������

rpmbuild

%files�Z�N�V�����L�q�Ɍ�肪����ƁA��蒼�������

--short-circuit�I�v�V�����́A-bc��-bi�I�v�V�����ɂ����L���łȂ��̂ŁA%install�Z�N�V�������s�͊������A%files�Z�N�V�����Ɋ�Â��\�[�X�E�o�C�i���p�b�P�[�W�𐶐�����Ƃ��ɃG���[����������ƁA�ēx�\�[�X�̓W�J�����蒼�����ƂɂȂ�܂��B

��K�͂ȃ\�[�X�R�[�h�̃r���h�ɂȂ�ق�%files�Z�N�V�����L�q�����G�Ō�肪�������₷���̂ŁA���̓s�x�\�[�X����r���h�������X�e�b�v������Ǝ��ԂƘJ�̘͂Q��ł��B

-bl�I�v�V������%files�Z�N�V�����̌��������{����

%installs�Z�N�V�����̊�����A%files�Z�N�V�����̌��������{���Ă����΁A���𖢑R�ɔ����E�C���ł��܂��B

rpm�̃\�[�X�R�[�h���C������

-bc��-bi�I�v�V�����ȊO�ł�--short-circuit���L���ƂȂ�悤�ɁArpm�̃\�[�X�R�[�h���C�����Ă��܂��܂��B

�܂��ACentOS 5�̃~���[�T�C�g���iCD/DVD����ł��j����Arpm-4.4.2-48.el5.src.rpm���擾���܂��B

spec�t�@�C��

�f�B���N�g�����ړ����ď������s

%build�Z�N�V������%install�Z�N�V�����ŁA�f�B���N�g�����ړ����ăX�N���v�g�����s����ꍇ�A�ȉ��̂悤�ɋL�q���܂��B

%build
make
(cd apps; make)

�‹��ϐ����`�����̂ɎQ�Ƃ������

%prep �Z�N�V�����Ŋ‹��ϐ����`�����̂ɁA%build�Z�N�V�����Ŋ‹��ϐ����Q�Ƃ����璆�g����ł܂�Œ�`����Ă��Ȃ����̂悤�ł��B�ǂ����A�Z�N�V�������قȂ�Ɗ‹��ϐ��������p����Ȃ��悤�Ɍ����܂��B�����ŁA�ʓ|�ł����A�e�Z�N�V�����Ŋ‹��ϐ����`���܂��B

%build
export PRJ_ROOT=/home/torutk/alfa
    :
%install
export PRJ_ROOT=/home/torutk/alfa
    :

�V���{���b�N�����N�̍쐬

�V���{���b�N�����N���쐬����ꍇ�A%post�A%postun�ɃV���{���b�N�����N�쐬�E�폜�̋L�q�����Ă͂Ȃ�܂���BRPM�p�b�P�[�W���A�b�v�f�[�g����Ƃ��ARPM�̏����Ƃ��ẮA�ŏ��ɐV�����o�[�W�����̃C���X�g�[���irpm -i�j�����s���A���̌�Â��o�[�W�����̃A���C���X�g�[���irpm -e�j�����s���܂��B���̂��߁A%post�ō쐬�����V���{���b�N�����N��%postun�ŏ�����Ă��܂��܂��B

�܂��A%post�ō쐬�����t�@�C���̓p�b�P�[�W�Ǘ����ɂ͊܂܂�Ȃ��Ƃ����ۑ���������邱�Ƃ��ł��܂��B

�V���{���b�N�����N�̃t�@�C����%install�ō쐬���A�t�@�C���Ƃ��ăC���X�g�[������i%files�ɋL�q�j

�����ŁA�V���{���b�N�����N�̃t�@�C����%install�ō쐬���A%files�ɂ��̃t�@�C�����L�q���܂��B���Ȃ킿�A�ʏ�̃t�@�C���Ɠ����悤�ɃC���X�g�[�������悤�ɂ��܂��B

�������X�N���v�g�iinitscripts�j�̐ݒ�

Linux�̏������X�N���v�g(OS�N�����Ƀ������x���ɉ����ċN������X�N���v�g�A/etc/rc.d/���ɒu�����X�N���v�g�j���C���X�g�[�����ɐݒ肷��ꍇ�̋L�q���@�ł��B

Requires(post): chkconfig
Requires(preun): chkconfig
Requires(preun): initscripts
Requires(postun): initscrpits

%post
/sbin/chkconfig --add hoged

%preun
if [ $1 = 0 ]; then
    /sbin/service hoged stop > /dev/null 2>&1
    /sbin/chkconfig --del hoged
fi

%postun
if [ $1 -ge 1 ]; then
    /sbin/service hoged condrestart > /dev/null 2>&1
fi

%preun�� [ $1 = 0 ]��]�����Ă���̂́A�p�b�P�[�W���A�b�v�f�[�g�ɂ��폜�����̂ł͂Ȃ��A�^�ɍ폜�����Ƃ��݂̂𔻒肷�邽�߂ł��B

%postun��[ $1 -ge 1] ��]�����Ă���̂́A�p�b�P�[�W���A�b�v�f�[�g�ł��邱�Ƃ𔻒肷�邽�߂ł��B

�f�o�b�O���

RPM�o�C�i���p�b�P�[�W�̃��C�u�����t�@�C����strip����邽�߁A�V���{����񂪌������A�J���E�f�o�b�O�ɕs�ւł��B���̂Ƃ��́ARPM�r���h���ɐ��������debuginfo�p�b�P�[�W���C���X�g�[�����܂��Bdebuginfo�p�b�P�[�W���C���X�g�[������Ă���ƁAgdb�͎����Ńf�o�b�O�Ń��C�u�����ƃ\�[�X�R�[�h���Q�Ƃ��܂��B

RPM�p�b�P�[�W�쐬�̏��

����

���{��̏���

Web��̎���