; TeX output 1999.12.26:1714K>n=Iqqecss2074RPMfHOwmWTO(RPMsaatstasioner.....:-)) cG 1 ecrm1000DonnieBarnes,VqL ectt1000djb@redhat.comditerjemahkqanolehJulianAdhi.N,adhi@semarang.wasantara.net.id,http://adhi.base.orgxv2.0,U 8April1997diterjemahkqan30DesembGer1997&(&Lt$ffffecbx1440Conctents]f ecbx10001P>erkenalanM+22Sekilasten>tangRPMU_23InformasiUm>umku3ؼ3.1%CaraU mendapatkqanRPM s.荍......................................w33.2%Syarat-syaratU yangdipGerlukqanRPM󍍑.荍...............................w34Menggunak\|anRPM[35Sek\|arangapay>ang ecbi1000dapiHatandalakukandenganRPM?56Mem>buatFileRPMSendiri3dQ6ؼ6.1%FileU rpmrc.荍..............................................w66.2%FileU SpGesikqasi|k.荍...........................................w76.3%Header&.荍................................................w86.4%Persiapan.荍..............................................x?106.5%MembangunU (Build)}S.荍........................................x?116.6%MemasangU (HЃ ecti1000Installw)@:.荍.........................................x?126.7%PilihanU ScriptInstallw/Uninstall]preU danpGostꍍ.荍..........................x?126.8%File-le%덍.荍...............................................x?126.9%CaraU membangunnya!3.荍.......................................x?13%6.9.1E'Source'U PohonDirektoriU.荍..................................x?13%6.9.2EMengetesU pGembangunany.荍..................................x?13%6.9.3EMembuatU DaftarFileŵ.荍...................................x?14%6.9.4EMembangunU sebuahPaketdenganRPMW.荍.........................x?146.10%Pengetesan.荍.............................................x?156.11%ApaU dapatyangdikerjakqandenganRPMbaruanda.荍......................x?15*K>썍G1.8P>erkenalan)2n.\6.12%SekqarangU MauApaLagi?ڇ.荍.....................................x?157P>embangunanRPMm>ulti-arsitekturx15ؼ7.1%ContohU lespGesikqasiv7.荍........................................x?167.2%Optags׍.荍...............................................x?167.3%Makroۍ.荍................................................x?177.4%MembuatU pGerkecualianArsitekturdariPaket+㍍.荍..........................x?177.5%PenyelesaianU Akhirߍ.荍.........................................x?178P>embQeritahuanHakCipta617(1Pcerkenalan:RPMxadalahxRe}/dwHatPackageManager>(PengaturPaketAplikqasidariRedHat).cMeskipunmengandung nama5RedHatdalamnamanya,$dRPM%dimaksudkqan5untukmenjadisistempGemaketanterbukqayangtersedialuasPuntukdigunakqansemuaorang.RPMmengizinkqanparapGenggunauntukmenggunakqankoGdesumbGer(sour}/ceJccodeO)untukpGerangkqatlunakbarudanmemaketkqannyakedalambGentuksour}/cedanbinernya,M]dimanakbGentukbinernyamudahdipasang(di-installw)dandilacakdansour}/ceOnyakdapatdibangunlagidenganmudah.iQRPMjugamemeliharasebuahdatabase(informasi)darisemuapaketdanle-lenyayangdapatdigunakqanU untukverikqasipaketdanmemintainformasitentangledan/ataupaket.ؼPerusahaanPerangkqatLunakRedHatmembGerikqandorongankepadavendor-vendordistribusilainuntukmenyempatkqan qwaktumelihatRPM Cdanmenggunakqannyauntukdistribusi-distribusimerekqa.tRPM CagakeksibGelNdanmudahdigunakqan,&meskipunRPM?menyediakqanpGondasiuntuksistemyangsangatluas.^:RPMjugabGenar-benarterbukqadantersedia,KnamunkamisangatmenghargaijugalapGoranbug danperbaikqan-pGerbaikqan.qIzinU diberikanU untukmenggunakandanmendistribusikanRPMtanparoyaltiU dibawahU GPL.DokumenVyanglebihlengkqap,tersediapadabukutentangRPM,yangditulisolehEdBailey*,yaitu"MaximumRPM".qBukuU itutersediauntukdidownloadataudibGelidiwww.redhat.com(2SekilasG\tenctangRPM:Pertama-tama,hbiarkqan}YpGenulismendudukkqanbGeberapalosodibelakqangRPM.SalahsatugoldesainnyaadalahpmempGerbolehkqanpenggunauntukmenggunakqansour}/ce1yangmula-mula.qDenganRPPp(pGembentuksistemupGemaketankqamidimanataksebuahRPMuKpundiperoleh),=sour}/ce5ӹpaketukqamiadalahsour}/ceyangutelahdi-hack}.Secara՜teoritis,seseorangdapatmemasang(menginstallw)sebuahsour}/cedari՜RPP{dankemudianmembuatnyaBtanpamasalah.kNT*etapisour}/ceٹituBbukqanlahyangasli,FAdantakadareferensisepGertiperubahanapasyangkqamilakukanuntukmembuatnya,{untukdidapatkqan.Seseorangharusmendownloadsour}/ce43yangmula-mula 1secaraterpisah.DenganRPM,andamendapatkqansour}/cèyang 1aslidengansebuahp}/atchІ(pGe-nambal)9yangkqamigunakanuntukmengkompilasinya.KamimemandangnyasebagaisebuahkeuntunganbGesar.YMengapa5?AdabGeberapaalasan.YPertama,dbilasebuahversiprogrambarudatang,dandatidakpGerluharus`memulaidariscr}/atchzuntukmendapatkqannyaterkompilasidibawahRHL.Andadapatmelihatp}/atchuntukmemeriksaapakqahyangmungkinandaharuslakukqan.ZeSemuastandarc}/ompile-in#mudahditampilkqandenganU caraini.!K>썍G3.8InformasiUm>umiR^3n.\RPMjugadidesainuntukmempunyaipilihanpGermintaanyangkuat.'AndadapatmengerjakqanpGencarian melewatio{seluruhdatabaseuntukpaketatauhanyaletertentu.$Andajugadapatdenganmudahmenemukqanpaket ;manakqahyangmemilikisebuahledandarimanakqahdatangnya.File-leRPM itusendiriadalaharsipc#Í3.2Syarat-syaratyangdip_erluk@ anRPMSyaratvutamauntukmenjalankqanRPMv^adalahcpio2.4.2ataulebihtinggi.'SPadasaatsisteminidimaksudkqanuntukcdigunakqandenganLinux,&3mungkinsangatbagusdigunakqandidalamsistemUnixyanglain.gHRPMpunyaˆ...dalamfaktanya,kompilasiˆuntukSunOS,Solaris,AIX,Irix,AmigaOS,danlainnya.Penulisingatkqan,U paketbineryangdibuatdisistemUnixyangbGerbedaU tidaklahsalingkompatibGel.ؼItuȡsemuaadalahsyaratminimaluntukmemasangRPM.Untukmembangun(buildw)RPM~darisour}/ceO,andajuga{membutuhkqansegalasesuatuyangdalamkeadaannormaldipGerlukqanuntukmembangunsebuahpaket,sepGertiU gcc,make,dll.(4MenggunakanG\RPM:DalamU bGentuknyayangpalingsederhana,RPMdapatdigunakqanuntukmenginstall]paket:卑qL ectt0900rpmN-ifoobar-1.0-1.i386.rpmؼPerintahU sederhanabGerikutnyaU adalahuntukmeng-uninstall]sebuahpaket:rpmN-efoobar:<K>썍G4.8Menggunak\|anRPMY\4n.\SalahsatuyanglebihkomplekstetapipGerintahyangsangatbGergunamengizinkqanandauntukmenginstall paketviaFTP*.Bilaandaterkoneksikejaringandanmenginginkqanmenginstall|sebuahpaketbaru,~semuayangU andainginkqanadalahmemerincileitudenganURLyangvqalid,sepGerti:ؼrpm?-iftp://ftp.pht.com/pub/linux/redhat/rh-2.0-beta/RPMS/foobar-1.0-1.i386.rpmCatatan,U RPMakqanmemintadan/ataumenginstall]lewatFTP*.MeskipunpGerintahtersebutadalahperintahyangsederhana, rpmdapatdigunakqandalamsejumlahbGesar caraU sepGertiyangdapatdilihatdaripesanpenggunaan:卑RPMNversion2.3.9 =CopyrightN(C)1997-RedHatSoftwareThisNmaybefreelyredistributedunderthetermsoftheGNUPublicLicenseusage:Nrpm{--help}:$rpmN{--version}:$rpmN{--initdb}+[--dbpath]:$rpmN{--install-i}[-v][--hash-h][--percent][--force][--test]_R[--replacepkgs]N[--replacefiles][--root]_R[--excludedocs]N[--includedocs][--noscripts]_R[--rcfileN][--ignorearch][--dbpath]_R[--prefixN][--ignoreos][--nodeps]_R[--ftpproxyN][--ftpport]_Rfile1.rpmN...fileN.rpm:$rpmN{--upgrade-U}[-v][--hash-h][--percent][--force][--test]_R[--oldpackage]N[--root][--noscripts]_R[--excludedocs]N[--includedocs][--rcfile]_R[--ignorearch] r[--dbpathN][--prefix]_R[--ftpproxyN][--ftpport]_R[--ignoreos]N[--nodeps]file1.rpm...fileN.rpm:$rpmN{--query-q}[-afpg][-i][-l][-s][-d][-c][-v][-R]_R[--scripts]N[--root][--rcfile]_R[--whatprovides]N[--whatrequires][--requires]_R[--ftpuseport]N[--ftpproxy][--ftpport]_R[--provides]N[--dump][--dbpath][targets]:$rpmN{--verify-V-y}[-afpg][--root][--rcfile]_R[--dbpathN][--nodeps][--nofiles][--noscripts]_R[--nomd5]N[targets]:$rpmN{--setperms}[-afpg][target]:$rpmN{--setugids}[-afpg][target]:$rpmN{--erase-e}[--root][--noscripts][--rcfile]_R[--dbpathN][--nodeps][--allmatches]_Rpackage1N...packageN:$rpmN{-b|t}[plciba][-v][--short-circuit][--clean][--rcfile r]_R[--sign]N[--test][--timecheck]specfile:$rpmN{--rebuild}[--rcfile][-v]source1.rpm...sourceN.rpm:$rpmN{--recompile}[--rcfile][-v]source1.rpm...sourceN.rpm:$rpmN{--resign}[--rcfile]package1package2...packageN:$rpmN{--addsign}[--rcfile]package1package2...packageN:$rpmN{--checksig-K}[--nopgp][--nomd5][--rcfile]썍G5.8Sek\|arangapay>angdapiHatandalakukandenganRPM?5n.\:$rpmN{--rebuilddb}[--rcfile][--dbpath] =:$rpmN{--querytags}Anda[dapatmenemukqanlebihdetildalam'what'untukpilihan-pilihantersebutdiatasdalamhalaman manualU (manp}/ages)RPM.(5SekarangG\apaycangɭ>ffffecbi1440dap2atandalakukandenganRPM?:RPMadalah{alatyangsangatbGerguna,CRdansepertiyangandalihat,CRpunyabGeberapa{pilihan(optionU).JalannterbaikuntukmenjelaskqannyaadalahdenganmelihatbGeberapancontoh.SayamenyertakqancontohpGemasangan/penghapusan:(install/uninstallw)diatas,dengandemikiandisiniadalahbGeberapacontohlain: !", cmsy10MarilahbGeranggapanandamenghapusbeberapalesecarataksenga0ja,tetapiandatidakmengetahuidenganTpastiapayangandahapus.5BilaandamenginginkqanmelakukanverikasiterhadapsistemandasecaraU keseluruhandanmelihatapayangmungkinhilang,andaakqanmengetik:э/rpmN-VaMaribGeranggapanandamenjalankqansebuahleyangandatidakkenali.U UntukmencarimilikpaketmanaU leitu,ketikkqan:/rpmN-qf/usr/X11R6/bin/xjewelKeluarannyaU mungkinsepGerti:/xjewel-1.6-1Anda,menemukqansebuahpaketRPM+koules,atetapiandataktahuapakqahitu.hUntukmenemukqan bGeberapaU informasipadanya,U kerjakqan:/rpmN-qpikoules-1.2-2.i386.rpmKeluarannyaU mungkinsepGertiini:/Name%p:NkoulesgDistribution:RedHatLinuxColgate =/Version:N1.2prVendor:RedHatSoftware/Release:N2BuildDate:MonSep0211:59:121996/InstallNdate:(none)q_PBuildHost:porky.redhat.com/Group!":NGamesvSourceRPM:koules-1.2-2.src.rpm/Size%p:N614939/Summary:NSVGAlibactiongamewithmultiplayer,network,andsoundsupport/DescriptionN:/ThisNarcade-stylegameisnovelinconceptionandexcellentinexecution./NoNshooting,noblood,noguts,nogore. rTheplayissimple,butyou/stillNmustdevelopskilltoplay. rThisversionusesSVGAlibto/runNonagraphicsconsole.SekqarangC andainginmelihatleapakahyangdiisntallolehRPMCkoules.kyAndaharusmengerjakqanini :/rpmN-qplkoules-1.2-2.i386.rpmSѠK>썍G6.8Mem>buatFileRPMSendiri1@6n.\KeluarannyaU adalah:=//usr/doc/koules =//usr/doc/koules/ANNOUNCE//usr/doc/koules/BUGS//usr/doc/koules/COMPILE.OS2//usr/doc/koules/COPYING//usr/doc/koules/Card//usr/doc/koules/ChangeLog//usr/doc/koules/INSTALLATION//usr/doc/koules/Icon.xpm//usr/doc/koules/Icon2.xpm//usr/doc/koules/Koules.FAQ//usr/doc/koules/Koules.xpm//usr/doc/koules/README//usr/doc/koules/TODO//usr/games/koules//usr/games/koules.svga//usr/games/koules.tcl//usr/man/man6/koules.svga.6ؼIniEsemuaadalahcontohbGelakqa.:OrangyangkreatifdapatbGerpikirtentangkemudahannya, sekqaliandatelah mengenalU (familiar)[dengan]RPM.(6MemcbuatG\FileRPMSendiri:MembangundRPMPadalahcukupmudahuntukdikerjakqan,#khususnyabilaandadapatmengambilpGerangkqatlunakU yangandacobapaketkqanuntukmembangundirinya.ؼProsedurU dasaruntukmembangunRPMsebagaibGerikut:PastikqanU /etc/rpmrctelahdisetuntuksistemanda.PastikqanLkoGdesumbGer(sour}/cecodeO)yangdibutuhkqanuntukmembangunRPM&adadalamsistemanda.BuatVtambalan(p}/atchU)darisetiappGerubahanyangharusandabuatkedalamsour}/ceBuntukVmendap- atkqannyaU dibangundenganbGenar.BuatU sebuahlespGesikqasiuntukpaket.PastikqanU segalasesuatunyadalamtempatyangbGenar.BangunU (buildw)paketnyaU denganRPM.DalamU opGerasiyangnormal,RPMmembangunbaikpaketdalambinermaupundalamsour}/ceO.#Í6.1FilerpmrcMSampaiU saatini,kongurasiRPMhanyatersediaviale/etc/rpmrc.qSebuahcontoh,sepGerti:^K>썍G6.8Mem>buatFileRPMSendiri1@7n.\require_vendor:N1 =distribution:NIrollmyown!require_distribution:N1topdir:N/usr/src/mevendor:NMickiesoftpackager: rMickeysoftNPackagingAccountoptflags:Ni386-O2-m486-fno-strength-reduceoptflags:Nalpha-O2optflags:Nsparc-O2signature:Npgppgp_name:NMickeysoftPackagingAccountpgp_path:N/home/packages/.pgptmppath:N/usr/tmpؼBarisrequire_vendormenyebabkqanRPMrmensyaratkanbahwaiamenemukqanbarisvendor.dInidapat terjaditWdari/etc/rpmrcataudarihe}/aderԹlespGesikqasiitusendiri.&Untukmenonaktifkannya,|%gantitWnomorkeU 0.qHalyangsamauntukbarisrequire_distributiondanrequire_group.ؼBarisbGerikutnyaadalahbarisdistribution.HAndadapatmendenisikqannyadisiniataunantidihe}/ader"lespGesikqasi.?SaatNmembangunsebuahdistribusitertentu,EadalahidebagusuntukmemastikqanbarisiniadalahbGenar,bahkqanmeskitidakdisyaratkan.BarisvendorbGekerjadengancarayangsama,tetapidapatbGerupaapaU pun(sebagaicontohJoGe'sSoftwareandRoGckMusicEmpGorium).RPMsekqarangjugamendukungpaketdalambanyakarsitektur.EFile/rpmrcdapatmengendalikqansebuahvqariabGeloptagsuntukmembangunsesuatuyangmemerlukqanarsitekturyangspGesik. gLihatbagianbGerikutnyaU untukmengetahuibagaimanamenggunakqanvariabGelini.DalamU tambahanuntukmakroyangdiatas,adabGeberapaU lagi.qAndadapatmenggunakqan:卑rpmN--showrcؼuntukU menemukqanbagaimanatagter-setdanagapasa0jayangtersedia.#Í6.2FileSp_esik@ asiMKami0&akqanmemulaidiskusitentanglespGesikqasi.Filespesikqasidiperlukqanuntukmembangunsebuahpaket.EFile'spGesisikqasiadalahgambarantentangpGerangkqatlunakdenganinstruksinyatentangbagaimanauntukU membangunnyadansebuahdaftarleuntuksemualebineryangterinstallw.AndaakqanmenginginkanmenamailespGesikasianda,Pmengacukepadakonvensistandar.ˤNamanyase-harusnyaU sepGertiininamapaket-tandahubung-nomorversi-tandahubung-nomorrilis-titik-spGec.IniU contohlespGesikqasiyangkecil(vim-3.0-1.spGec):卑Summary:Nejectsejectablemediaandcontrolsautoejection =Name:NejectVersion:N1.4Release:N3gSK>썍G6.8Mem>buatFileRPMSendiri1@8n.\Copyright:NGPL =Group:NUtilities/SystemSource:Nsunsite.unc.edu:/pub/Linux/utils/disk-management/eject-1.4.tar.gzPatch:Neject-1.4-make.patchPatch1:Neject-1.4-jaz.patch%descriptionThisNprogramallowstheusertoejectmediathatisautoejectinglikeCD-ROMs,NJazandZipdrives,andfloppydrivesonSPARCmachines.%prep%setup%patchN-p1%patch1N-p1%buildmakeNRPM_OPT_FLAGS="$RPM_OPT_FLAGS"%installinstallN-s-m755-o0-g0eject/usr/bin/ejectinstallN-m644-o0-g0eject.1/usr/man/man1%files%docNREADMECOPYINGChangeLog/usr/bin/eject/usr/man/man1/eject.1#Í6.3HeaderMHeadermempunyaieldstandaryangandapGerluisi.AdasedikitkebGeratanmemang.Fieldnyaharusdiisi sepGertiU ini:ؼSummary:qIniU adalahsatubarisyangmenggambarkqanpaketanda.Name:qIniU harusnyanamastringdarinamalerpmyangandarencanakqanuntukdigunakqan.Version:qIniU adalahstringversidarilerpmyangandarencanakqanuntukdipakqai.Release:6IniYadalahnomorrilisuntukversipaketyangsama(contoh,bilakitamembuatsebuahpaketdanI!menjumpainyaagakrusakdaninginmembuatnyalagi,KpaketbGerikutnyaakqanmempunyainomorrilisU 2).Icon:VInidadalahnamaiconyangdigunakqanuntukpGerangkqatinstalasileveltinggiyanglain(sepGertiglint-nyaU RedHat).qFilenyaU harusbGerupale.gifdanditempatkqandidirektoriSOURCES.Source: 4Baris!inimenunjukkelokqasiHOME!darilesour}/ceIyang!asli.Barisinidipakqaibilaandaingin?6mendapatkqansour}/celagi?6ataumengecekuntukversiyanglebihbaru.j2KebGeratannya:fNamalepadabarisiniHARUScoGcokdengannamaleyangandapunyaidalamsistemanda(contoh,janganmendownloadڙlesour}/cedanڙmenggantinamanya).HAndadapatmembGerispesikqasilebihdarisatulesour}/ceomenggunakqanU barissepGerti: rK>썍G6.8Mem>buatFileRPMSendiri1@9n.\/Source0:Nblah-0.tar.gz =/Source1:Nblah-1.tar.gz/Source2:Nfooblah.tar.gzƍFile-leiniakqanadadidirektoriSOURCES.(Strukturdirektoriakandidiskusikandalambagian bGerikutnya,U "HirarkiDirektori'Source'"Patch:썍G6.8Mem>buatFileRPMSendiri,A510n.\/Documentation =/X11A:XFree86TrServersA:ApplicationsTrGraphicsTrNetworkingA:GamesTrStrategyTrVideoA:AmusementsA:UtilitiesA:LibrariesA:WindowNManagers/Libraries/NetworkingA:AdminA:DaemonsA:NewsA:Utilities/DevelopmentA:DebuggersA:LibrariesTrLibcA:LanguagesTrFortranTrTclA:BuildingA:VersionNControlA:Tools/Shells/Games%description InibukqanlahbGenar-benar itemhe}/ader},tetapiseharusnya digambarkan diakhirhe}/ader}. AndaAmembutuhkqansatutaggambaranpGerpaketdan/atausub-paket.vIniadalaheldmulti-barisyangU harusdigunakqanuntukmembGerikqansebuahgambaranyanglengkqapdaripaketitu.#Í6.4PersiapanMIniQadalahbagiankeduadalamlespGesikqasi.=Inidigunakanuntukmendapatkansour}/cezyangQsiapdibangun.Disiniandamemerlukqanapapunyangdibutuhkanuntukmendapatkansour}/ceyMtelahtertambaldansetupsepGertiU yangmerekqainginkandikerjakandengan'make'.ؼSatuphalyangharusdicatat:VSetiapbagianiniadalahbGenar-benarphanyasebuahtempatuntukmengeksekusiscriptshell.BoAndadapatmembuatsebuahscriptshdenganmudahdanmenaruhnyasetelahtag%prepuntukmelakukqan~#unpackdanmenambalsour}/ce>randa.Kami~#membuatmakrountukmembantudalamhalini,bagaimanaU punjuga.Y*ang +pGertamadarimakro-makroiniadalahmakro%setup.Dalambentukyangpalingsederhana(tanpapilihanbarispGerintah),#diaakqanmelakukanunpacksour}/ce?danmelakukancdkedirektorisour}/ceO.HalitujugaU akqandisertaipilihan(optionU): K>썍G6.8Mem>buatFileRPMSendiri,A511n.\-n?name@̹akqanmengesetnamadaridirektoriyangdibuatkepadanamayangterdaftar.4Standarnya adalahaZ$NAME-$VERSION.Kemungkinanlaintermasuk$NAME,?$fNAMEg$fVERSIONg,diatauapapunletar;utamagunakqan.i(Harapdicatatbahwa;variabGelH$'disiniadalahbukanvariabGelyangnyatayangtersedia>dibawah>lespGesikqasi.65Mereka>sesungguhnyadigunakqanditempatnamasampGel.65AndaperlumenggunakqanU namaaslidanversidalampaketanda,bukqansebuahvariabGel.)zT-cU akqanmembuatdanmelakukancdkepadadirektoribGernamasebelummengerjakqanprosesuntar.-bakqanmelakukanuntarSource#sebGelumberpindahdirektorikedalamnya(daninimembuattak bGerlaku͔dengan-ckqarenaitujangankerjakanini).Inihanya͔bGergunauntukpaketyangmempunyaisour}/ceobanyak.zT-aU #akqanmelakukanuntarSource#sesudahbGerpindahkedirektorinya.-Tpilihaninimelakukqanoverridesaksistandardariprosesuntarringsour}/ceLdanmemerlukanpilihan -b\0atau-a0untukmendapatkqanlesour}/ce%utama\dikenaiprosesuntar.AndamemerlukqannyasaatadaU sour}/ceokedua.zT-DJangan$menghapusdirektorisebGelumunpacking.8InihanyabGergunadimanaandamempunyailebihdarisatumakrosetup.2IniseharusnyadigunakqandalammakrosetupsesudahyangpGertama(tetapijanganU pGernahdimakroyangpertama).W\MakroXbGerikutnyayangtersediaadalahmakro%patch.|MakroinimembantumengotomatiskqanprosespGen-erapanU p}/atchkesourceO.qMakroinimemerlukqanbGeberapaU pilihan,dipGerlihatkandibawahU ini:#;U akqanmenerapkanPatch#U sebagailepGenambal(p}/atchU).zT-p?#;U memerincisejumlahdirektoriuntukdibukqauntukpGerintahpatch(1).-P&AksiYstandarnyaadalahmenerapkqanPatch(atauPatch0).*T*andainimenahanaksistandardan akqanmemerlukansebuah0untukmendapatkanlesour}/ceQutamadi-untar.]PilihaninibGergunadalamsedetikC)ataulebihmakrop}/atch~yangmemerlukqansebuahnomorbGerbedaC)dibandingkandenganmakropGertama.zTAndaU dapatjugamengerjakqan%patch#sebagaigantidarimengetikpGerintahasli:q%patch?#-PItuFseharusnyaadalahsemuamakroyangandapGerlukqan.+SetelahandameyakinkqansemuanyabGenar,andadapatmjugamengerjakqansetupyanglainyangandapGerlukqanuntukdikerjakqanviascriptbGertipemsh.9Apapunyangxandasertakqansampaimakro%build(didiskusikandalambagianbGerikutnya)xadalahmenjalankannyaviaۉsh.Lihatcontohdiatasuntukketikqandarisesuatuyangandamungkininginkqanuntukdikerjakqandisini.#|6.5Membangun(Build)MPadadasarnyatakadamakroapapununtukbagianini.?AndaseharusnyahanyameletakkqanpGerintahapaU5pundisiniyangakqanandapakaiuntukmembangunpGerangkqatlunak,:sekaliandamelakukanuntarsour}/ceOnya,menambalnyajdanmelakukqancdkedalamdirektori.@_InihanyalahsetpGerintahyanglainyangdilewatkqanC,kesh,FsehinggapGerintahsah(legal)apapundapatpGergikesini(termasukkomentar).kDirektorikerjaEandasaatinidi-resetdalamsetiapbagianiniketingkqatatasdaridirektorisumbGer,jadiingatlahitubaik-baik.qAndaU dapatmelakukqancdkedalamsubGdirektoribiladiperlukqan. kK>썍G6.8Mem>buatFileRPMSendiri,A512n.\6.6Memasang(֕ ecbi1200InstalOlMn)MSebGenarnya[takadamakroapapundisini.1Andahanya[inginmeletakkqanperintahapapundisiniyang dipGerlukqanuntukmenginstallw.Bilaandapunya'makeinstall'tersediauntukandadalampaketyangandabangun,dletakkqan^itudisini.Bilatidak,andadapatmenambalmakeleuntuksebuahmakeinstalldanhanya5mengerjakqansebuah'makeinstall'disini,atauandadapatmenginstall笹merekasecaramanualdenganpGerintahVksh.Andadapatmempertimbangkqandirektoriandasaatiniuntukmenjaditingkqatatasdaridirektorisour}/ceO.#Í6.7PilihanScriptInstalOlMn/Uninstall&predanp_ostAndadapatmembuatscriptdijalankqansebGelumdansesudahinstalasidanuninstalasidaripaketbiner.SebuahHalasanutamauntukituadalahmengerjakqansesuatusepGertimenjalankanldcongsetelahinstalasiataut3memindahkqanpaketyangbGerisikqanlibraries/kepustakqaanyangdipakqaibGersama(shar}/edw).θMakrountukU setiapscriptadalahsebagaibGerikut:ؼ%preU adalahmakrountukmengerjakqanscriptpre-install.%postU adalahmakrountukmengerjakqanscriptpGost-install.%preunU adalahmakrountukmengerjakqanscriptpre-uninstall.%postunU adalahmakrountukmengerjakqanscriptpGost-uninstall.IsiXcdaribagianiniseharusnyaXchanyalahbGeberapabentukdariscript,3meskiandatidakmembutuhkqan #!/bin/sh.#Í6.8File-leMIniLadalahbagiandimanaandaharusmelihatle-lepaketbiner.nRPMLtakpunyacaralainuntukmenge-tahuilebinerapayangsudahdiinstallLsebagaihasildarimakeinstall.Adajalanuntukmengetahuinya.BebGerapa5omenyarankqanuntukmelakukqanndsebGelumdansesudahpaketdiinstallw.lDengansistemmul-tiuser6(banyak# pGemakqai),-initakdapatditerimasepertilelainmungkintelahdibuatselamasebuahprosespGembangunanU paketyangmenyebabkqantakadayangdikerjakqandenganpaketitusendiri.ؼAdabGeberapamakrotersediauntukmengerjakqanbeberapahalyangistimewa.IMerekqaterdaftardandigam-barkqanU disini:%docdigunakqanuntukmenandaidokumentasidalampaketsour}/ceyangandaingininstalldidalaminstalasiAbiner.kDokumenakqandipasangdalam/usr/doGc/$NAME-$VERSION-$RELEASE.Andada-pat$melihatbanyak$dokumendenganpGerintahbarisdenganmakroini,eatauandadapatmelihatnyasemuaU secaraterpisahdenganmenggunakqansebuahmakrountuksetiapdokumennya.%configpdigunakqanuntukmenandailekongurasidalamsebuahpaket.aInimenyertakqanlesepGertisendmail.cf,passwd,dll.Bila3andakemudian3melakukqanuninstallsebuahpaketbGerisikanlekong-urasi,v7semua썍G6.8Mem>buatFileRPMSendiri,A513n.\%dirlXmenandaisebuahdirektoritunggaldalamsebuahdaftarleuntukdisertakqansebagaimanadimilki olehsebuahpaket.UStandarnya,bilaandamelihatsebuahnamadirektoriT*ANPA|sebuahmakro%dir,SEGALAY>SESUA*TUdalamY}direktoriitudisertakqandalamdaftarledankemudianY}dipasang(installe}/dw)sebagaiU bagiandaripaketitu.%files?-f b> cmmi10akqanmengizinkanandauntukmelihatleandadalambGeberapalearbitrarydidalamdirektoripGembangunansour}/ceO.Inimenyenangkqandalamkasusdimanaandamempunyaisebuah}paketyangdapatmembangundaftarlemiliknya.9AndakemudianhanyalahmenyertakqandaftarU ledisinidanandatidakharusmendaftarkqanlesecaraspGesik.ؼKebGeratan;terbesardalamdaftarleadalahdaftardirektori-direktori.6Bilaandamendaftarkqan/usr/binsecaraU taksenga0ja,paketbinerandaakqanbGerisisetiapledalam/usr/bindisistemanda.#Í6.9Caramembangunnya!M6.9.1#!\'Source'P>ohonDirektoriPertamakqaliyangandabutuhkqanadalahbuild]tr}/eeyangterkongurasidenganbGenar.-Inidapatdikongurasi menggunakqanU le/etc/rpmrc.qSebagianbGesarorangakanhanyaU menggunakan/usr/src.ؼAndaU mungkinmemerlukqanmembuatdirektoriselanjutnyauntukmembuatsebuahbuildtr}/ee:BUILDadalahdirektoridimanasemuaprosespGembangunanterjadiolehRPM.Andatakharusmenger-jakqantestandauntukdibangundimanasa0japadakhususnya,tetapiiniadalahdimanaRPMakqanmengerjakqannyaU sendiri.SOURCESnadalahdirektoridimanaandaseharusnyameletakkqanletarsour}/ceVasliandadanp}/atchZanda.IniU adalahtempatdimanaRPMakqanmencaridalamkeadaanstandar.SPECSU adalahdirektoridimanasemualeyangspGesikqasiharusberada.RPMS1adalah1tempatdimanaRPMakqanmeletakkansemualebinerRPM1saatprosespGembangunan.SRPMSU adalahtempatdimanasemuasour}/ceoRPMU akqandiletakkan. 6.9.2#!\MengetespQem>bangunanMPertamaskqaliyangandamungkinakqaninginkanadalahmengambilsour}/ce3untuksmembangunsecarabGersihtanpauRPM.Untukmengerjakqanini,9lakukan'unpack'padasour}/ceO,9danurubahnamadirektorike$NAME.orig.Lalulakukqan'unpack'padasour}/ceN^lagi.LGunakansourceiniuntukmembangunnya.LPergilahkedalamdirektorisour}/cedanikutiinstruksiuntukmembangunnya. +Bilaandaharusmenyuntingsesuatu,Mnandaakqanmembutuhkansebuahp}/atchU. 5Sekaliandamemilihnyauntukdibangun,VbGersihkqandirektorisour}/ceOnya.Pastikqangdanhapusleapapunyangdiambildarisebuahscriptconfigure.5CLalulakukqancdkembali,ČkeluardariU direktorisour}/ceokeU induknya.qKemudianandaakqanmengerjakansesuatusepGerti:卑diffN-uNrdirname.origdirname>../SOURCES/dirname-linux.patchؼIni-akqanmembuatsebuahp}/atch9untukandayangandagunakqandalamlespGesikasianda.dlCatatanbahwalinuxQyang{andalihatdalamnamap}/atch˭adalahhanya{sebuahidentier.) Andamungkininginmenggunakqan^K>썍G6.8Mem>buatFileRPMSendiri,A514n.\sesuatu nyanglebihbisamenggambarkqansepGerticongataubugsuntukmenggambarkqanmengapaanda harusU membuatsebuahp}/atchU.ؼSebuahideyangbagusjugauntukmelihatlep}/atch1yangandabuatsebGelummenggunakqannyauntukmemastikqanU takadalebineryangterselipsecarataksenga0ja. 6.9.3#!\Mem>buatDaftarFileMSekqarang,andatelahmempunyaisour}/ceyangakqandibangundantahubagaimanamengerjakqannya,mem-bangunnya,>danFmemasangnya.ILihatlahkeluarandariurutanpGemasangandanmembangundaftarleandadari]halituuntukdigunakqandalamlespGesikasi.=Kamipadaumumnya]membangunlespGesikqasisecaraparalel>vdengansemualangkqahini.iAndadapatmembuatsalahsatuinisialdanmengisinyakedalambagianyangU mudah,danlalumengisikqankedalamlangkqahlainsebagaimanaandalakukan.6.9.4#!\Mem>bangunsebuahPaketdenganRPMMSekqaliandapunyasebuahlespGesikasi,"andasiapuntukmencobadanmembangunpaketanda.\mCarayangpalingU bGermanfaatuntukmengerjakqaniniadalahdengansebuahperintahseperti:卑rpmN-bafoobar-1.0.specؼAdaU pilihanlainyangbGergunadenganswitch-bsepGerti:pU bGerartikerjakqanbagianpersiapandarilespesikqasi.lU adalahsebuahcekdaftaryangmengerjakqanbGeberapaU pengecekanU atas%files.cԹmengerjakqanprepdancompile. #InibGergunamanakalaandatakyakinkalau-kalausour}/ce#akan dibangun6seluruhnya.KelihatannyatakbGergunakqarenaandamungkiningin'memainkqan'sour}/ceOnyasendiri@sampaiiadibangundankemudian@memulaimenggunakqanRPM,tetapisekaliandamenjaditerbiasaU menggunakqanRPM,andaakanmenemukankemudahanU dalammenggunakannya.iU mengerjakqanpGersiapan,kompilasidaninstalasi.bU pGersiapan,kompilasi,instalasidanmembangunsebuahpaketbinersa0ja.aU membangunseluruhnya(baiksour}/ceodanU paketbinernya).ؼAdaU bGeberapamodierdalamswitch-b,yaitu:short-circuit;akqanmelompatlangsungketahapyangtelahditentukqan(hanyadapatdigunakqan denganU cdani).cleanU menghapusbangunanpGohonsaatusai.keep-tempsҹakqanmengamankansemualetempGorerdanscriptyangdibuatdalam/tmp.]AndasesungguhnyaU dapatmelihatle-leapayangdibuatdalam/tmpmenggunakqanoption-v.testU tidakmenjalankqantingkatyangsebGenarnya,tetapitetapmengamankqan-temp./K>썍G7.8P>embangunanRPMm>ulti-arsitekturd15n.\6.10%}PengetesanMSekqaliRandatelahmemilikisebuahrpmsour}/ceBdanRbineruntukpaketanda,andapGerlumengetesnya.Cara paling!GmudahdanterbaikadalahmenggunakqanmesinyangbGenar-benar!Gberbedadariseseorangdimanaandamembangundiatasnyadalamrangkqamengetes.Sesudahitu,LcandahanyaharusmengerjakqanmakeinstallU dimesinandasendiri,sehinggaseharusnyaU iasudahterpasangdengancukupbaik.ؼAndadapatmengetikrpm?-unamapaketatassebuahpaketuntukmengetesnya,tetapicaraitutidakdapatdipGercaya,3kqarena$dalammembangunsebuahpaket,3andatelahmengerjakqanmake?install.Bilaandameninggalkqanlsesuatudiluardaftarleanda,riatidakakandi-uninstallw. AndaakankemudianlmenginstallulangIpaketbinerdansistemandaakqanmenjadilengkaplagi,tetapirpmandamasihbGelumlengkap.KPastikandanMingat-ingatbahwaMhanyakqarenaandamelakukanrpm?-banamapaket,kebanyakqanorangmemasangpaketandaakqanhanyamengerjakqanrpm?-inamapaket.{ PatikqanandatidakmengerjakanapapundalambagianձpGemasanganatauinstall(yangakqandiperlukqanuntukdikerjakqansaatbinernyaterpasangsecaraotomatis.#Í6.11%}Apadapatyangdikerjak@ andenganRPMbaruandaSekqaliFandatelahmembuatRPMF_andasendiriatassesuatu(diasumsikansesuatuyangbGelumpernahdi-RPM-kqan),8andadapatmelakukankontribusipGekerjaanandakeyanglain(jugadiasumsikqanandame-RPM-kansesuatuyangdidistribusikqandenganbGebas).?Untukmengerjakqanitu,6andainginmelakukanuploadpaketnyakeU ftp://ftp.r}/edhat.com#Í6.12%}Sek@ arangMauApaLagi?SilakqanlihatbagiandiatasdalamPengetesandanApayangdikerjakqandenganRPMjbaruanda.8KamiinginsemuaketersediaanRPMdapatkqamiambil,dankqamiingin'mereka'menjadiRPMyangbaik.;Silakanambilwaktuuntukmengetesmerekqasebaikmungkin, ydankemudianambilwaktuuntukmeng-uploadnyauntukkeuntungan1semuaorang.Juga,hsilakqanmemastikanandahanyamelakukqanuploadpGerngkatlunakyangtersedia`dengangratis.GAPerangkqatlunakkomersialdansharewaretakseharusnyadi-uploadkecualimerekqapunyagchakciptadandinyatakqangcbahwahalinidiizinkqan.IInitermasukpGerangkatlunakdariNetscapGe,kssh,pgp,U dll.(7PcembangunanG\RPMmculti-arsitektur:SekqarangڏRPMpdapatdigunakanuntukmembangunpaketuntukInteli386,DigitalAlphayangmenjalankqanLinux,danSparc.RPMjugadilapGorkqanbekerjadalamSGIdanworkstationHPdenganbaik.AdabGeber-apajgkemampuanyangmembuatpGembangunandalamplatformU-platform.tersebutmenjadimudah,oPertamaadalahldirectiveoptagsB0yangadadalam/etc/rpmrc.InidapatdigunakqanuntukmengesetagyangdigunakqansaatmembangunpGerangkatlunakkearsitekturyangspGesik.7Kemampuanlainadalahmakroarchdalam@lespGesikqasi.I6Mereka@dapatdigunakqanuntukmengerjakqansesuatuyangbGerbeda@berdasarkqanatasf arsitekturdimanaandamembangunnya.?Kemampuanf yanglainlagiadalahdirectiveExclude;Rdalamhe}/aderh/U kepalanya.K>썍G7.8P>embangunanRPMm>ulti-arsitekturd16n.\7.1Contohlesp_esik@ asiMBagian!rdibawah!riniadalahlespGesikqasidaripaketleutils.uIniadalahsetupuntukdibangundiatas AlphaU danIntel..Summary:NGNUFileUtilities =Name:NfileutilsVersion:N3.16Release:N1Copyright:NGPLGroup:NUtilities/FileSource0:Nprep.ai.mit.edu:/pub/gnu/fileutils-3.16.tar.gzSource1:NDIR_COLORSPatch:Nfileutils-3.16-mktime.patch%descriptionTheseNaretheGNUfilemanagementutilities. rItincludesprogramstoNcopy,move,list,etc,files.TheNlsprograminthispackagenowincorporatescolorls!%prep%setup%ifarchNalpha%patchN-p1autoconf%endif%buildconfigureN--prefix=/usr--exec-prefix=/makeNCFLAGS="$RPM_OPT_FLAGS"LDFLAGS=-s%installrmN-f/usr/info/fileutils*makeNinstallgzipN-9nf/usr/info/fileutils*..."|7.2OptagsDalam^contohtersebut,qandamelihatbagaimanadirectiveoptagstdigunakqandalam/etc/rpmrc. Bergantungkepadaarsitekturmanaandamembangunnya, %hargayangwa0jardibGerikqankepadaRPM_OPT_FLAGS.AndaharusmenambalMakeleuntukpaketandauntukmenggunakqanvariabGeliniditempatj%directiveyangnormalyangmungkinandagunakqansepGerti-m486dan-O2.AndadapatmerasakanpGerasaanyangnyamanuntukkebutuhanapayangharusdikerjakqandenganmenginstall paketsour}/ceinidankemudianmelakukqanunpacksour}/cendanmengujiMakele.H~Setelahitulihatlahp}/atchtuntukMakeledanlihatU pGerubahanapayangharusdibuat.ڟK>썍G8.8P>embQeritahuanHakCipta5$517n.\7.3MakroMMakro?]%ifarchsangatpGentingsecarakeseluruhan.j?BanyakwaktuakqandipGerlukanuntukmembuatsebuah p}/atch`atau`duayangspGesikkesatuarsitektursa0ja.GAdalamkqasusini,1RPMNakanmengizinkanandauntukmenerapkqanU p}/atchuituuntuksatuarsitektursa0ja.ؼDalamcontohdiatasleutilsmempunyaip}/atch*untukmesin64bit.HgDenganjelas,~iniseharusnyaditerapkqanuntukU Alphasaatini.qJadi,kqamimenambahkqansebuahmakro%ifarchdisekitarp}/atchu64bitsepGertiini:卑%ifarchNaxp =%patch1N-p1%endifؼHaltersebutakqanmemastikanbahwap}/atchknitutidakditerapkanuntuksemuaarsitektur,kecualialpha.#Í7.4Membuatp_erkecualianArsitekturdariPaketAnda1dapatmemeliharasour}/ceRPM dalam1satudirektoriuntuksemuapaltform,kqamitelahmengimple- mentasikqanlkemampuanuntukmengecualikqanVpaketdariprosespGembangunandalamarsitekturtertentu.DenganU iniandamasihdapatmengerjakqansesuatusepGerti卑rpmN--rebuild/usr/src/SRPMS/*.rpmؼdanmendapatkqanpaketyangbGenarsudahdibangun.BilaandabelummembuatportingsebuahaplikqasidalamU platformutertentu,semuayangharusandalakukqanadalahmenambahkqansebuahbaris,sepGerti:ExcludeArch:NaxpؼkedalamkepaladarilespGesikqasidaripaketsour}/ceO.KemudianbangunulangpaketnyadiatasplatformdimanaR0iatelahdibangundiatasnya.pAndaR0akqanmempunyaiR0paketsour}/ceyangdibangundiatasInteldandapatU denganmudahbGerpindahkeatasAlpha.#Í7.5PenyelesaianAkhirMMenggunakqanDRPMuntukmembuatpaketmulti-arsitekturpadaumumnyalebihmudahdikerjakqandaripadamendapatkqan#paketitusendiridibangundalamkeduatempat.SepGertilebihdaripaketyangdibangun,ciniakqanmenjadimudah,bagaimanapunjuga.'Sebagaimanalazimnya,bantuanyangterbaiksaatandamulaibingungU dalammembangunsebuahRPMadalahmelihatpaketsour}/ceoyangU mirip.(8PcembperitahuanG\HakCipta:DokumenBinidanisinyaBdilindungidenganundang-undangHakCipta.BDistribusiulangdaridokumeninidiizinkqan!sejauhisinya!tetaplengkapdantidakdiganti.MDengankatalain,andabGolehmemformatulangdanmencetakU ulangataumendistribusikqanulangsa0ja.;KG֕ ecbi1200ɭ>ffffecbi1440qL ectt0900!N ecbx1200HЃ ecti1000 ecbi1000]f ecbx1000&Lt$ffffecbx1440qL ectt1000Iqqecss2074 1 ecrm1000 !", cmsy10 b> cmmi108