Ang mahika ng mga RPM ay iyon lahat ng mga tagubilin upang bumuo ng isang pakete ay kasama sa isang solong SPEC file. Siyempre, kailangan mo munang maunawaan ito, at kung minsan hindi ito madali ... |
Ano ang SPEC file?
Talaga, ito ang file na nagpapahiwatig kung paano bumuo, mag-install at mag-uninstall ng package.
Ang mga tagubilin na ibibigay namin sa iyo ay nahahati sa mga yugto, na kung saan ay macros. Ito ang mga pangunahing yugto na mayroong:
- % prep: Ang mga mapagkukunan ay na-zip at inilapat ang mga patch.
- % build: Ang mga binary ay naipon.
- % check: Napatunayan na naayos ito nang tama.
- % install: Isinasagawa ang pag-install drill.
- % mga file: Ilista ang lahat ng mga file na lilitaw sa package. Kadalasan din itong ginagamit upang magtalaga ng mga katangian. Kung mayroong anumang file na hindi nakalista, hindi ito maitatayo.
Ang ilang SPEC ay maaaring walang ilang mga yugto. Hindi sila sapilitan.
Mayroong iba pang mga yugto na tinatawag mga scriptlet. espesyal ang mga ito sapagkat hindi sila naisakatuparan kapag naitayo ang pakete, ngunit kapag na-install o na-uninstall ito. Maaari mo ring iiskedyul ang isang gatilyo upang tumakbo kapag na-install ang isa pang pakete. Ito ay isa sa mga mahusay na kalamangan na ang RPM ay may higit sa mga DEB file.
Ang malaking gulo sa mga RPM ay iyon ay may parehong syntax para sa lahat. Iyon ay, ang lahat ng mga espesyal na salitang ito ay naunahan ng isang porsyentong tanda (%) ay RPM macros, ngunit may mga macros ng lahat ng uri:
- Mga Pag-andar (% setup,% configure,% patch…)
- Mga paunang natukoy na variable (% _bindir,% dist…)
- Ang mga variable na tinukoy sa mismong SPEC (% buildroot,% pangalan,% bersyon ...)
- Static na mga seksyon (% paglalarawan,% changelog…)
- Mga yugto (% build,% install…)
- Mga Trigger (% triggerin,% triggerpostun…)
- Mga Scriptlet (% pretrans,% postun ...)
Upang malaman kung paano gumamit ng isang tiyak na macro, ang tanging paraan ay kumunsulta sa dokumentasyon. Sa totoo lang maaari mong palaging gumamit ng iba pang mga trick tulad tingnan kung paano ang isang SPEC ay gawa sa isang pakete na katulad sa iyo, o ang pamamaraan ng pagsubok at error. Isang pares ng mga praktikal na utos:
rpmbuild --showrc # Ipakita ang lahat ng iyong macros
rpmbuild --eval = "% macro_name" # Ipakita ang pinalawak na macro
Pareho ang Macros kung mayroon silang bracket sa paligid. Kung mayroong isang marka ng tanong pagkatapos ng bracket, magiging blangko ito kung walang mapalawak. Halimbawa, 1% {? Dist} ay lalawak sa 1.fc16 sa Fedora 16, ngunit sa isa pang distro ito ay mananatili bilang 1.
Napapawi ang iyong gana
Nasa ikalawang yugto na kami ng tutorial na ito at hindi mo pa rin alam kung ano ang ibabalot namin, kaya narito ang video upang buksan ang iyong bibig: