initscripts 套件實例

  1. 下載 SRPM 套件
    [dywang@dywH ~]$ cd rpmbuild/
    [dywang@dywH rpmbuild]$ wget ftp://ftp.icm.edu.pl/vol/rzm3/linux-ibiblio/distributions/\
    smeserver/releases/testing/9.0alpha3/smeos/SRPMS/initscripts-9.03.38-1.el6.sme.src.rpm
    

  2. 安裝 SRPM 套件
    [dywang@dywH rpmbuild]$ rpm -ivh initscripts-9.03.38-1.el6.sme.src.rpm 
    warning: initscripts-9.03.38-1.el6.sme.src.rpm: Header V4 DSA/SHA1 Signature, key ID 1e9c9308: NOKEY
       1:initscripts            ########################################### [100%]
    

  3. 解打包壓縮
    [dywang@dywH rpmbuild]$ cd SOURCES/
    [dywang@dywH SOURCES]$ tar jxvf initscripts-9.03.38.tar.bz2
    

  4. 修改 initscript 原始碼
    [dywang@dywH SOURCES]$ vim initscripts-9.03.38/rc.d/rc.sysinit 
    ..........
    if [[ "$system_release" =~ "De-Yu Wang" ]]; then
    [ "$BOOTUP" = "color" ] && echo -en "\\033[0;36m"
     echo -en "De-Yu Wang"
     [ "$BOOTUP" = "color" ] && echo -en "\\033[0;39m"
     PRODUCT=$(sed "s/De-Yu Wang \(.*\) release.*/\1/" /etc/system-release)
     echo " $PRODUCT"
    elif [[ "$system_release" == *"Red Hat"* ]]; then
     [ "$BOOTUP" = "color" ] && echo -en "\\033[0;31m"
     echo -en "Red Hat"
     [ "$BOOTUP" = "color" ] && echo -en "\\033[0;39m"
     PRODUCT=$(sed "s/Red Hat \(.*\) release.*/\1/" /etc/system-release)
     echo " $PRODUCT"
    elif [[ "$system_release" == *Fedora* ]]; then
     [ "$BOOTUP" = "color" ] && echo -en "\\033[0;34m"
     echo -en "Fedora"
     [ "$BOOTUP" = "color" ] && echo -en "\\033[0;39m"
     PRODUCT=$(sed "s/Fedora \(.*\) \?release.*/\1/" /etc/system-release)
     echo " $PRODUCT"
    else
     PRODUCT=$(sed "s/ release.*//g" /etc/system-release)
     echo "$PRODUCT"
    fi
    ........
    

  5. 重新打包壓縮 initscript 原始碼
    [dywang@dywH SOURCES]$ tar jcvf initscripts-9.03.38.tar.bz2 initscripts-9.03.38
    

  6. 修改 initscript 規格檔
    [dywang@dywH SOURCES]$ vim ../SPECS/initscripts.spec 
    Release: 1%{?dist}.dyw
    

  7. 重建 initscript RPM 及 SRPM 二進位檔
    [dywang@dywH SOURCES]$ rpmbuild -ba --clean --target=$(uname -m) ../SPECS/initscripts.spec
    Building target platforms: x86_64
    Building for target x86_64
    error: Failed build dependencies:
    	popt-devel is needed by initscripts-9.03.38-1.el6.dyw.x86_64
    

  8. 安裝相依套件
    [dywang@dywH SOURCES]$ sudo yum install popt-devel
    

  9. 再重建 initscript RPM 及 SRPM 二進位檔
    [dywang@dywH SOURCES]$ rpmbuild -ba --clean --target=$(uname -m) ../SPECS/initscripts.spec
    
    [dywang@dywH SOURCES]$ ll ../RPMS/x86_64/initscripts* ../SRPMS/initscripts*
    -rw-r--r--. 1 dywang dywang 1831739 Aug  1 07:53 ../RPMS/x86_64/initscripts-9.03.38-1.el6.dyw.x86_64.rpm
    -rw-r--r--. 1 dywang dywang 1611443 Aug  1 07:53 ../SRPMS/initscripts-9.03.38-1.el6.dyw.src.rpm