מדריך אריזה של אובונטו

תיעוד

אריזות עם דלהפר


[חָשׁוּב]

דרישות: הדרישות מהקטע הנקרא "אריזות מאפס" בתוספת דלפל ו- dh-make

בתור Packager, אתה רק לעתים נדירות ליצור חבילות מאפס כפי שעשינו בסעיף הקודם. כפי שאתה יכול לדמיין, רבים של משימות ומידע בקובץ הכללים , למשל, משותפים חבילות. כדי להפוך את האריזה לקלה ויעילה יותר, באפשרותך להשתמש ב- debhelper כדי לסייע במשימות אלו. Debhelper הוא אוסף של סקריפטים של Perl (עם קידומת dh_ ) הממיינים את תהליך בניית החבילה. עם סקריפטים אלה, בניית חבילה דביאן הופך די פשוט.

בדוגמה זו, נבנה שוב את חבילת GNU Hello, אך הפעם נשווה את העבודה שלנו לחבילת ה- hello-debhper של אובונטו. שוב, ליצור ספריה שבה אתה תהיה עובד:

mkdir ~ / hello-debhelper cd ~ / hello-debhelper wget http://ftp.gnu.org/gnu/hello/hello-2.1.1.tar.gz mkdir ubuntu cd ubuntu

לאחר מכן, קבל את חבילת המקור של אובונטו:

apt- לקבל מקור hello-debhelper cd ..

כמו בדוגמה הקודמת, הדבר הראשון שאנחנו צריכים לעשות הוא לפרוק את הזרם המקורי (במעלה).

tar -xzvf hello-2.1.1.tar.gz

במקום להעתיק את הזרימה במעלה הזרם אל hello_2.1.1.1.orig.tar.gz כפי שעשינו בדוגמה הקודמת, אנו מאפשרים לדמקה לעשות את העבודה עבורנו. הדבר היחיד שאתה צריך לעשות הוא לשנות את שם תיקיית המקור כך שהוא בצורה של - שבו packagename הוא קטן. במקרה זה, רק untarring את tarball מייצר כראוי בשם ספריית המקור, כך שאנחנו יכולים לעבור לתוכו:

cd hello-2.1.1

כדי ליצור את "debianization" הראשונית של המקור נשתמש dh_make .

dh_make -e your.maintainer@address -f ../hello-2.1.1.tar.gz

dh_make ואז לשאול אותך סדרה של שאלות:

סוג של חבילת: בינארי יחיד, בינארי מרובים, ספריה, מודול הקרנל או cdbs? [s / m / l / k / b] s
שם המחזיק: Captain Packager כתובת דוא"ל: packager@coolness.com תאריך: יום חמישי, 6 אפריל 2006 10:07:19 -0700 שם החבילה: hello גרסה: 2.1.1 רישיון: ריק סוג של חבילה: Single Hit אישור: הזן


[זְהִירוּת]

רק להפעיל dh_make - פעם אחת. אם אתה מפעיל את זה שוב אחרי שאתה עושה את זה בפעם הראשונה, זה לא יעבוד כראוי. אם אתה רוצה לשנות את זה או עשה טעות, להסיר את ספריית המקור ו untar את המעלה במעלה שוב. לאחר מכן תוכל לעבור לספריית המקור ולנסות שוב.

הפעלת dh_make -e עושה שני דברים:

תוכנית הלו היא לא מסובכת מאוד, וכפי שראינו בסעיף שנקרא "אריזות מאפס", אריזה זה לא דורש הרבה יותר מאשר קבצים בסיסיים. לכן, הבה נסיר את קבצי .ex :

cd debian rm * .ex * .EX

ללא שם: שלום , גם לא

* רישיון

* מדריך לאריזה של אובונטו

צריך README.Debian (קובץ READM עבור בעיות ספציפיות דביאן, לא של README התוכנית), dirs (בשימוש על ידי dh_installdirs ליצור ספריות הדרושות), מסמכים (בשימוש על ידי dh_installdocs להתקין תיעוד התוכנית), או מידע (בשימוש על ידי dh_installinfo כדי להתקין את המידע קובץ) לתוך ספריית Debian . לקבלת מידע נוסף על קבצים אלה, עיין בסעיף שנקרא "dh_make קבצים לדוגמה".

בשלב זה, אתה צריך רק changelog , תאימות , שליטה , זכויות יוצרים , ואת הכללים קבצים בספרייה debian . מתוך הקטע הנקרא "אריזה מחריטה", הקובץ היחיד שהוא חדש הוא compat , שהוא קובץ המכיל את הגירסה debhelper (במקרה זה 4) המשמש.

יהיה עליך להתאים את changelog מעט במקרה זה כדי לשקף כי החבילה הזו בשם hello-debhelper ולא רק שלום :

שלום- debhelper (2.1.1-1) dapper; דחיפות = נמוכה * שחרור ראשוני - קפטן Packager Thu, 6 Apr 2006 10:07:19 -0700

באמצעות debhelper , הדברים היחידים שאנחנו צריכים לשנות את השליטה הם שם (החלפת שלום עבור debhper שלום ) והוספת debhelper (> = 4.0.0) לשדה Build-Depends עבור חבילת המקור. חבילת אובונטו עבור debhper שלום נראה כמו:

אנו יכולים להעתיק את קובץ זכויות היוצרים ואת התסריטים postinst ו- prerm מחבילת ה- debhper של אובונטו, מכיוון שהם לא השתנו מאז סעיף הנקרא "אריזה מחריטה". אנו גם להעתיק את קובץ הכללים כדי שנוכל לבדוק את זה.

cp ../../ubuntu/hello-debhelper-2.1.1/debian/copyright. cp ../../ubuntu/hello-debhelper-2.1.1/debian/postinst. cp ../../ubuntu/hello-debhelper-2.1.1/debian/prerm. cp ../../ubuntu/hello-debhelper-2.1.1/debian/rules.

הקובץ האחרון שאנחנו צריכים להסתכל הוא הכללים , שבו את הכוח של סקריפטים debhelper ניתן לראות. גרסת debhelper של הכללים היא קצת יותר קטנה (54 שורות לעומת 72 שורות בגירסה מתוך סעיף בשם "כללים").

גרסת debhelper נראית כך:

# = / usr / bin / make -f package = hello-debhelper CC = GCC CFLAGS = -g -Wall ifeq (, $ (findstring noopt, $ (DEB_BUILD_OPTIONS)) CFLAGS + = -O2 endif #export DH_VERBOSE = 1 נקי : dh_testdir dm_clean rm -f build - $ (MAKE) -i דייקליאן התקנה: לבנות dh_clean dh_installdirs $ (MAKE) קידומת = $ (CURDIR) / debian / $ (package) / usr \ mandir = $ (CURDIR) / debian / $ (US) / us / share / info / install / man \ infodir = $ (CURDIR) / debian / $ (package) / usr / share / info \ build build: ./configure --prefix = / usr $ (MAKE) CC = "$ (CC) "CFLAGS =" $ (CFLAGS) "

לגעת בינארי indep: להתקין # אין קבצים עצמאיים אדריכלות להיות נטען # שנוצר על ידי חבילה זו. אם היו שם הם היו עושים כאן #. binary-arch: dh_testdir-dh_testdir -a dh_installdocs-a dh_indalldocs- חדשות dh_installalelogs-a ChangeLog dh_strip -a dh_compress -a dh_fixperms -a dh_installdeb-dh_shlibdeps-dh_gencontrol -a dh_md5sums -a dh_builddeb-a בינארי: קשת. PHHONY: בינארי בינארי קשת בינארית- indep נקי checkroot

שים לב כי משימות כמו בדיקה אם אתה בספרייה הנכונה ( dh_testdir ), וודא שאתה בונה את החבילה עם הרשאות שורש ( dh_testroot ), התקנת תיעוד ( dh_installdocs ו dh_installchangelogs ), וכן לנקות לאחר לבנות ( dh_clean ) מטופלים באופן אוטומטי . חבילות רבות הרבה יותר מסובך מאשר שלום יש קבצים קבצים לא גדול יותר, כי סקריפטים debhelper להתמודד עם רוב המשימות. לקבלת רשימה מלאה של סקריפטים debhelper , עיין בסעיף שנקרא "רשימת סקריפטים debhelper ". הם גם מתועדים היטב בדפי האישיות שלהם. זה תרגיל שימושי לקרוא את דף האיש (הם כתובים היטב ולא ארוך) עבור כל סקריפט עוזר בשימוש בקובץ הכללים לעיל.