�ʤ�s�@ SRPM
�̪��s����G2003/02/11
�������w�g�g�L��s�A�̷s��T��m�b RPM �P SRPM �M��޲z�� �����C
���������e�w���A�~����@��s�I

SRPM �ݭn���M���G
SRPM �ϥΨ쪺�ؿ��G
�]�w�ɪ��D�n���e�G
SRPM ���sĶ���O�G
���]�ۤv���M���G
�������D�m��

SRPM �ݭn���M��G
�b�W�@�`�����A�ڭ̤��ФF RPM �o�ӬJ�i�R�S�i�몺�å�ARPM ���i�R�b��L����Ʈw�޲z�覡�A�ܮe���h�d�߻P�ɯšA�ӥL���i��O�H�����I�N�O�b��L�� binary ���ɮפ���A���ܥL����l�]�w���e ( �N�O *.rpm ���ɮפ���A���s�sĶ���N�� )�A�P�M��ήM�󤧶����ݩʬ̪ۨ����D���ٯu�O�˸����o�I
�S�����Y�A�{�b���ѨM����k�F�I�ڭ̥i�H�Q�Ρy�t�� source code �� SRPM �z�ӭ��s�sĶ *.rpm ���ɮצ����ڭ̩ҧƱ檺�˦��F�I�N�]���b SRPM �̭��t�������O binary ���ɮסA�ӬO�t�� source code �A�]�� SRPM �O���ઽ�����Ӧw�˦����i���檺�ɮת��C���ݭn�N�L���s�sĶ�A�åB���]�������� i386, i586, i686 ���� RPM ���ɮפ���A�~����w�˦b�ڭ̪��t�η������I�o�ӮɭԧA�N���ӷ|�Q���աA�x�I�J�M�p�����ܡA����b�sĶ���L�{�����A�ڭ̬O�_�i�H�[�J��L���]�w�ѼơA�����ڭ̪� SRPM �i�H�̷ӧڪ��Q�k�ӽsĶ�O�I�H�����I����F�I�ҥH�O�A�o�Ӯɭԧڭ̴N�n�ӭק�O�H�� SRPM �H�νsĶ�ۤv���M��աI
���L�o�̻ݭn�S�O�d�N���N�O�A�]�� SRPM �ݭn���s�sĶ�A�ӽsĶ���L�{�����A�ڭ̦ܤֻݭn�� make �P��������{���A�� gcc, c, c++ ����L���sĶ�Ϊ��{���y���Ӷi��sĶ�A�ҥH�A�p�G�z�b�w�˪��L�{�����S������n��}�o�u�㤧�����M��A�����I�o���s���X�A�����СA�M��A�w�˳�I�����I�u�O�o�n�J�A�@�j�諸�ݩʬ̪ۨ����D�N�O�F���I�٬O��ij�z�A�����ݤ@�U�p��w���a�I

SRPM �ϥΨ쪺�ؿ��G
SRPM �J�M�t�� source code �A����䤤���w���]�w���o�A�ҥH�����ڭ̥��ݭn���D�A�o�� SRPM �b�i��sĶ���ɭԡA�|�ϥΨ���ǥؿ��O�H�o�ˤ@�Ӥ~����ӭק���I�A�i�H��A�� /usr/src �o�ӥؿ��̭��h�d�ݤ@�U�A�q�`�C�� distribution ���Ѫ��ؿ������ӬۦP�A�H Mandrake 9.0 ���ҡA�L�O�H /usr/src/RPM ���u�@�ؿ��A Red Hat �O�H /usr/src/redhat ���u�@�ؿ��A Openlinux �h�O�H /usr/src/openlinux ���u�@�ؿ��I�L�צp��A�ϥ��N�O�b /usr/src �o�ӥؿ��U�N��F�I�n�F�� /usr/src/redhat ���Y�h�ݤ@����G ���~�A�b�sĶ���L�{�����A�i��|�o�ͤ��������~�A�Ϊ̬O�]�w�����~�A�o�ӮɭԴN�|�b /tmp ���U���ͤ@�Ӭ۹��������~�ɡA�z�i�H�ھڸӿ��~�ɶi�氣�����u�@�O�I����Ҧ������D���ѨM����A�]�sĶ���\�F�A����������Y���᪺�ɮסA�N�O�b /usr/src/redhat/SPEC, SOURCE, BUILD �������ɮ׳��|�Q�����A�ӥu�ѤU��m�b /usr/src/redhat/RPMS ���U���ɮפF�I

�]�w�ɪ��D�n���e�G
���ڭ̦b�W�����L�F�ASRPM�٥i�H���@�dz]�w�����e�A����n�p��ק�o�dz]�w�����e�O�H�ڭ̥H²�檺 rp-pppoe �o�ӮM��ӻ����n�F�A�A�i�H�s�W Internet �W���� rp-pppoe �x������U�� SRPM �A�Ϊ̥ѥH�U���覡�ӤU���o�ӮM��(�Ъ`�N���U���ɮ׬O 2002/11 �̷s���ɮ׸�ơA���i��b�z�ݨ쥻��ɡA�o�ӮM��w�g��s�F�A�ҥH�Ъ����W���U�����}�ӤU���a�Ihttp://www.roaringpenguin.com/pppoe/)�C�ܩ�򥻪��L�{�p�U�G
�@
1. �U�� SRPM �n��G
[root @test root]# wget http://www.roaringpenguin.com/pppoe/rp-pppoe-3.5-1.src.rpm

2. �N SRPM �Ѷ}�b/usr/src/redhat ���U���ؿ�����
[root @test root]# rpm �Vi rp-pppoe-3.5-1.src.rpm

3. �[��@�U�����ǭ�l�X�O�H
[root @test root]# cd /usr/src/redhat/SOURCES
[root @test SOURCE]# ls �Vl
-rw-rw-r--    1 root     root       189321 Jul  8 22:38 rp-pppoe-3.5.tar.gz
�����I�W����ܧڭ̪���l�X�N�O�o���ɮװաI

�@
�n�F�A�Ӭݬݧڭ̪��]�w�Ѽ��ɡA��Y�O�b /usr/src/redhat/SPECS ���� *.spec �ɮ��o�I
�@
�[��@�U�w�]���]�w�ɮפ��e�G
[root @test root]# cd /usr/src/redhat/SPECS
[root @test SPECS]# vi rp-pppoe.spec

�S���I�o�ӴN�OSRPM���w�]�]�w���e�ɮ��o�A�i�h�ק�@�U�A�̭�����Ʀ��I���o�ˡG
Summary: PPP Over Ethernet (xDSL support)
Name: rp-pppoe
Version: 3.5
%if %(%{expand:test %{_vendor} != mandrake ; echo $?})
Release: 1mdk
%else
Release: 1
%endif
Copyright: GPL
Group: System Environment/Daemons
Source: http://www.roaringpenguin.com/pppoe/rp-pppoe-3.5.tar.gz
Url: http://www.roaringpenguin.com/pppoe/
Packager: David F. Skoll <dfs@roaringpenguin.com>
BuildRoot: /tmp/pppoe-build
Vendor: Roaring Penguin Software Inc.
Requires: ppp >= 2.3.7

# LIC: GPL
%description
PPPoE (Point-to-Point Protocol over Ethernet) is a protocol used by
many ADSL Internet Service Providers. Roaring Penguin has a free
client for Linux systems to connect to PPPoE service providers.

The client is a user-mode program and does not require any kernel
modifications. It is fully compliant with RFC 2516, the official PPPoE
specification.

%prep
%setup
cd src
./configure --mandir=%{_mandir}

%build
cd src
make
cd ../gui
make

%install
cd src
make install RPM_INSTALL_ROOT=$RPM_BUILD_ROOT
cd ../gui
make install RPM_INSTALL_ROOT=$RPM_BUILD_ROOT

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root)
%doc doc/CHANGES doc/HOW-TO-CONNECT doc/LICENSE doc/KERNEL-MODE-PPPOE README SERVPOET
%config(noreplace) /etc/ppp/pppoe.conf

���G�����٦��ܦh��T�A�Q�ڬٲ����F�I���D�F�N�n��I

%changelog
* Thu Jul 21 2001 Shigechika AIKAWA <shige@cin.nihon-u.ac.jp>
- merged rp-pppeo.spec and rp-pppoe-gui.spec

�@
�`�N�쪺�Orp-pppoe.sepc�o���ɮסA�o�O�D�n���NSRPM�sĶ��RPM���]�w�ɡA�L���򥻳W�h�i�H�o�ˬݡG
  1. ����ɮת��}�Y�HSummary���}�l�A�o�������]�w���O�̰�¦���������e�F
  2. �M��C�Ӥ��P���q�������A���H%�Ӱ����}�Y�A�Ҧp%prep�P%install���F
�ڭ̨ӽͤ@�ʹX�ӱ`����SRPM�]�w�q���G �W���X�Ӹ�Ƴq�`�����ݭn�g�աI���O�p�G�A���n��S���ۨ��ݩʪ����Y�ɡA����N�i�H���ݭn����Requires�o�I
  �n�F�A����p�G�z���ۭq����T�Q�n�[�J���ܡA�N��ܧA�n�[�J�����Ӭq���A�N�L�ק�@�U�a�I�Ҧp�A�p�G�A�b�]�wMakefile���ɭԡA�Ʊ����h�@���B�~���ѼƳ]�w�A����N��� %setup ���Ӭq���A�N�L�ק令�z�һݭn���ˤl�A�N�i�H�o�I

SRPM ���sĶ���O�G
�A�өO�H��I�S���A�ק粒���F�A�۵M�N�O�n�N�L�sĶ���i�H�w�˪�RPM�ɮװաI�o�Ӯɭԧڭ̴N�i�H�����b/usr/src/redhat/SPECS���U�U�F�G
�@
[root @test SPECS]# rpm -bb rp-pppoe.spec  <==�sĶ��RPM�ɮ�
[root @test SPECS]# rpm -ba rp-pppoe.spec  <==���]��SRPM�ɮ�
�@
�o�ӮɭԨt�δN�|�o�˰��G
  1. ���i�J��BUILD�o�ӥؿ����A�bMandrake 9.0�����N�O/usr/src/RPM/BUILD�A�bRed Hat���U�N�O/usr/src/redhat/BUILD�o�ӥؿ��F
  2. �̷�*.spec�ɮפ���Name�PVersion�]�w�w�q�X�u�@���ؿ��W�١A�H�ڭ̤W�����Ҥl���ҡA����t�δN�|�bBUILD�ؿ������R��rp-pppoe-3.5���ؿ��A�A���s�إߤ@��rp-pppoe-3.5���ؿ��A�öi�J�ӥؿ��F
  3. �b�s�ت��ؿ��̭��A�w��SOURCES�ؿ��U���ӷ��ɮסA�]�N�O*.spec�̭���Source�]�w�������ɮסA�Htar�i������Y�A�H�ڭ̳o�ӨҤl�ӻ��A�h�|�b/usr/src/redhat/BUILD/rp-pppoe-3.5�����A�N/usr/src/redhat/SOURCES/rp-pppoe-3.5.tar.gz�i������Y�աI
  4. �M��N�}�l%setup���u�@�F
  5. �A�Ӷ}�l%build��%install���]�w�P�sĶ�I
  6. �̫�N�������]���ɮ׵��L��m��ө�m���a��h�A�p�G�A���W�w���w��O�bi386���t�ΡA����̫�sĶ���\��*.i386.rpm�ɮ״N�|�Q��m�b/usr/src/RPM/RPMS/i386�̭��o�I�p�G�Oi586����۵M�N�O/usr/src/redhat/RPMS/i586�ؿ��U�o�I
��ӨB�J�j���N�O�o�ˤl�I�̫᪺���G��Ʒ|��m�bRPMS���ӥؿ����U�N��աI

���]�ۤv���M��G
�o�ӴN����F�I�ڭ̦ۤv�ӽs��@�U�ۤv�s�@��RPM���ˡH�|�����ܡH�������|�I�o��²�檺�H�@�Ӥp�Ҥl�ӻ�����I�Ъ`�N�A�o�ӯu���u�O�@�Ӥp�Ҥl�A�ҥH���nı�o�_�dz�I�䤤�A����ݭn�`�N���A�ѩ�b�W�����B�J�������A�ڭ̪��D�b�NSRPM�sĶ����RPM���ɭԡA�|�Htar�o��{���ӱN�ɮ׸Ѷ}�A�]���A�ڭ̦b�i��ӷ��ɮת��إ߮ɡA�N���ݭn�N�L���]�����@��tar.gz��tarball���ɮפ~���I
���]�ڭ̽s��F�@��script�A���e�O�o�ˡG
�@
[root @test root]# cd /usr/src/redhat/SOURCES
[root @test SOURCES]# vi showvbird.sh
#!/bin/bash
# This file is just used to demo the RPM packaging.
# the only thing is showing the hostname.
HOST=`/bin/hostname`
/bin/echo $HOST

[root @test SOURCES]# chmod 755 showvbird.sh
[root @test SOURCES]# tar �Vzcvf showvbird.tar.gz showvbird.sh
�`�N�F�A�ڭ̥��ݭn�N�L���]�~��I

�@
�W�����ʧ@���A�ڭ̽s��F�@��shell script�ɮסA�ɦW��showvbird.sh�A�åB�N�L���]�����㦳gzip���Y��tarball�ɮסA�]�N�Oshowvbird.tar.gz�o�˪��ɮפ~��I�Ъ`�N�A�o��showvbird.tar.gz�ɮסy���ݡz��m�bSOURCES�ؿ����U�I
�A�ӫh�O�n�s�診�ӫܭ��n��*.spec�ɮ��o�I�A�i�H�o��²�檺�s�g�@�U�G
�@
[root @test root]# cd /usr/src/redhat/SPECS
[root @test SPECS]# vi showvbird.spec
Summary:   This is a demo RPM package.
Name:      showvbird
Version:   1.0
Release:   1
Copyright: GPL
Group:     VBird's Home
Source:    showvbird.tar.gz   <==�o�ӴN�O���إ߰_�Ӫ� arball�ɮסI
Url:       http://linux.vbird.org
Packager:  VBird

%description
This package is just a demo RPM.

%prep
%setup �Vc
%install
install -m 755 showvbird.sh /usr/local/bin/showvbird.sh

%files
/usr/local/bin/showvbird.sh

�@
�n�F�I�}�l���L�sĶ�å��]����RPM�ɮװաI
�@
[root @test SPECS]# rpm -bb showvbird.spec
�K.(��)
Wrote: /usr/src/redhat/RPMS/i586/showvbird-1.0-1.i586.rpm
�@
�̫�o�ӳQ���]���\���ɮ״N�Q��m�b/usr/src/redhat/RPMS/i586/showvbird-1.0-1.i586.rpm�o�I�M�ᵹ�L�w�ˤ@�U�G
�@
[root @test SPECS]# rpm �Vivh /usr/src/RPM/RPMS/i586/showvbird-1.0-1.i586.rpm
Preparing...                ########################################### [100%]
   1:showvbird              ########################################### [100%]

[root @test SPECS]# rpm �Vqi showvbird
Name        : showvbird                    Relocations: (not relocateable)
Version     : 1.0                          Vendor: (none)
Release     : 1                            Build Date: Wed 06 Nov 2002 11:27:17 PM CST
Install date: Wed 06 Nov 2002 11:27:42 PM CST      Build Host: test.linux.org
Group       : VBird's Home                 Source RPM: showvbird-1.0-1.src.rpm
Size        : 143                          License: GPL
Packager    : VBird
URL         : http://linux.vbird.org
Summary     : This is a demo RPM package.
Description :
This package is just a demo RPM.

[root @test SPECS]# showvbird.sh
test.linux.org
[root @test SPECS]# rpm �Vql showvbird
/usr/local/bin/showvbird.sh       <==�K�K�I�w�g�O���_�ӤF�I�ۤv���n��C�I

�@
�Ϋ�²�檺�覡�A�N�i�H�N�ۤv���n��Ϊ̵{�����L�ק�P�]�w�����I�ܤ����a�I�H��z�N�i�H�ۦ�]�w�A��RPM�o�I���M�A�]�i�H��ʭק�z��SRPM���ӷ��ɤ��e�o�I

�������D�m�� ( �n�ݵ��׽бN�ƹ����ʨ�y���G�z���U���ťճB�A���U������ťճB�Y�i��� )

2002/12/04�G�Ĥ@������
2003/02/11�G���s�s�ƻP�[�J FAQ
2004/04/19�G�������w���A�~����@��s�A�аѦҡGRPM �P SRPM �M��޲z��