הרודפב GNU Hello World לש RPM תליבח רוציל דציכ
.ץבוק טמרופ אוה .rpm
-ו תוליבחה להנמ תינכותל סחייתמ RPM םשהש ןייצל בושח .OpenSuse -ו CentOS, Fedora ןוגכ תובר סקוניל תוצפהב שמשמ אוה תעכ ,Red Hat Linux -ב שומישל רוקמב רצונ
.םניחב חותפ דוק תנכות תיינב ךילהת םעו ,שארמ ונכוהש RPM תוליבח יבגל תיסיסב הנבה ךל שיש םיחינמ ונא .סקוניל הרודפ לש הצפהב GNU לש "RPM "Hello World תליבח לשמל ,תויראניב הנכות תוליבחו טושפ רוק
הרודפב חותיפ ילכ ןקתה
.RPM תיינבל םישורדה םילכה תנקתהל האבה הדוקפה תלעפה ידי לע סקוניל הרודפב חותיפה תביבס תרדגהב ליחתנ
$ sudo dnf install fedora-packager @development-tools
.יקנ chroot -ב היינבה ךילה תא קודבל ךל רשפאי הז .(לעופב ךלש שמתשמה םשב tecmint תא ףלחה) אבה ןפואב 'המודמ' תצובקל השרומ-אלה ךנובשח תא ףסוה ,ןכמ רחאל
$ sudo usermod -a -G mock tecmint
.תויראניב תוליבחו RPM לש הרוצת יצבק ,טקיורפל רוקמ דוק הליכמה הנשמ תוירפס לש המישר גיצת איה .תואבה תודוקפה תועצמאב build -ה תא תמאו ךלש ~/rpmbuild
תיירפסב RPM הנבמ רוצ ,תעכ
$ rpmdev-setuptree $ tree ~/rpmbuild/
:תדעוימ הירפס לכ ןלהל
"םלוע םולש" ד"לס תיינב
.האבה wget הדוקפה םע rpmbuild/SOURCE/~ תיירפסל ,תוזירא ונאש Hello World טקיורפ לש ("הלעמב" רוקמכ םג עודיה) רוקמה דוק תא דירוהל םכילע הז בלשב
$ cd ~/rpmbuild/SOURCES $ wget http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz -P ~/rpmbuild/SOURCES
.ןותיע תינכות -rpmdev תועצמאב ,rpmbuild/SPECS/~ היירפסב (הז הרקמב hello.spec
ול ארקנ ואוב) .spec
ץבוק תועצמאב RPM תליבח תא רידגהל ואוב ,ןכמ רחאל
$ cd ~/rpmbuild/SPECS $ rpmdev-newspec hello $ ls
.ךילע ףדעומה ךרועה תועצמאב hello.spec
ץבוקה תא חתפ זאו
$ vim hello.spec
:ךכ תואריהל הכירצ לדחמה תרירב תינבת
Name: hello Version: Release: 1%{?dist} Summary: License: URL: Source0: BuildRequires: Requires: %description %prep %autosetup %build %configure %make_build %install rm -rf $RPM_BUILD_ROOT %make_install %files %license add-license-file-here %doc add-docs-here %changelog * Tue May 28 2019 Aaron Kili
: .spec
ץבוקב לדחמה תרירב ירטמרפ תא הרצקב ריבסנ
.גצומש יפכ םייוניש עצבו ךלש .spec
-ה ץבוק תא ךורע תעכ
Name: hello Version: 2.10 Release: 1%{?dist} Summary: The "Hello World" program from GNU License: GPLv3+ URL: http://ftp.gnu.org/gnu/%{name} Source0: http://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.gz BuildRequires: gettext Requires(post): info Requires(preun): info %description The "Hello World" program package %prep %autosetup %build %configure make %{make_build} %install %make_install %find_lang %{name} rm -f %{buildroot}/%{_infodir}/dir %post /sbin/install-info %{_infodir}/%{name}.info %{_infodir}/dir || : %preun if [ $1 = 0 ] ; then /sbin/install-info --delete %{_infodir}/%{name}.info %{_infodir}/dir || : fi %files -f %{name}.lang %{_mandir}/man1/hello.1.* %{_infodir}/hello.info.* %{_bindir}/hello %doc AUTHORS ChangeLog NEWS README THANKS TODO %license COPYING %changelog * Tue May 28 2019 Aaron Kili
.תויבקע ךרוצל ורקאמ תודוקפ םתואב שמתשהל אלא ,טרפמ יצבקב הלא םיביתנ לש השק דודיק עצבל אלש ףידע ללכ ךרדב ,ןכל .תוליבחל הנקתה יביתנ רידגהל ידכ RPM ידי לע ורדגוהש תכרעמ תואירק תיינבל תושמשמה ,
:םהלש לדחמה תרירב יכרעו תורדגה םע דחי תוירפסו RPM תונבל ורקאמ ןלהל
.RPM Macros :הזיראה תויחנהב ןייע וא usr/lib/rpm/platform/*/macros/ב הלא ורקאמ תודוקפ רובע םיכרעה תא אוצמל לוכי התאש בל םיש
ד"לסה תליבח תיינב
.האבה rpmbuild הדוקפה תא לעפה ,םיגאב יופינהו יראניבה ,רוקמה תליבח תא תונבל ידכ
$ rpmbuild -ba hello.spec
:RPM בוציע יללכל םימאות ורצונש RPM יצבקו טרפמה ץבוקש חיטבהלו קודבל ידכ rpmlint תינכותב שמתשהל לוכי התא .המאתהב ../RPMS/
-ו ../SRPMS/
תוירפסב ורצוויי יראניב RP
$ rpmlint hello.spec ../SRPMS/hello* ../RPMS/*/hello*
.ךישמהל לכותש ינפל ןתוא ןקת ,הלעמלש ךסמה םולצתב גצומש יפכ תואיגש שי םא
.הרודפ לש תלבגומה היינבה תביבסב חילצת תוליבחה תיינבש קודבל ידכ mock תינכותב ושמתשה ,ביבח ןורחא
$ mock --verbose ../SRPMS/hello-2.10-1.fc29.src.rpm
.RPM תוליבח תריצי :הרודפ לש דועיתב ןייע ,ףסונ עדימל
.הרעה וא הלאש לכל ונילא עיגהל ידכ הטמלש בושמה ספוטב שמתשה .GUN Hello Word לש RPM תליבח רוציל דציכ םג וניארה .תיראניב הנכות תליבחו טושפ רוקמ תריציל ךלש הרודפה תכרעמ תא ריבגהל דציכ ונרבסה ,ה