לבנות RPM להרבה הפצות

ב־יום חמישי, 15 במרס 2012, מאת ארתיום; פורסם תחת: תכנה חופשית, לינוקס, תכנה ומחשבים, CppCMS; ‏2 תגובות

כשאתה מפתח הפרויקט קוד־פתוח, קל מאוד להפיץ קוד מקור, אבל כשזה מגיע לקבצים בינאריים, זה הופך לבעיה הרבה יותר משמעותית. יש עשרות הפצות, כל אחת מגיע במספר גרסאות שונות ומביא אתה חבילות טיפה שונות. לכן, לאדם אחד זה כמעט ובלתי אפשרי לבנות חבילות לכל הפצה אפשרית.

בזכות debootstrap היה לי יחסית קל לבנות חבילות deb ל־Debian ו־Ubuntu, אבל המצב הרבה יותר מורכב כשמדובר ב־rpm כי אין דרך קלה לשים את הפצת rpm בספריה ולעשות לתוכה chroot.

בהמלצת שגיא בן־עקיבא התחלתי להשתמש ב־Open Build Service של OpenSuse.

האמת, אני מאוד מרוצה! כל מה שצריך זה להעלות Source RPM או קובץ spec, כל השאר ייעשה בצורה אוטומטית: בניה למספר הפצות ופלטפורמות, הכנת מקורות מסודרים ואפילו אתה מקבל repository מסודר.

בצורה כזו הכנתי rpmים ל־3 הפצות (Fedora, Suse, CentOS) כולל מספר גרסאות וגם הכל עבור שתי ארכיטקטורות: x86 ו־x86_64.

http://download.opensuse.org/repositories/home:/artyom-beilis/

מה שנותר... להבין כיצד משתמשים בשירות עבור debים

תגובות

צפריר כהן, ב־15/03/12 15:15

כמו שכבר כתבתי, יש אצלנו שרת בניה עם schroot למספר הפצות, כולל כמה גרסאות של centos. תהליך הבניה היה אמנם ידני ומכוער, אבל אם זה מה שאתה צריך, זה לא כ"כ מסובך.

למי שלא יודע: אם יש לך chroot קיים, עם schroot מאוד קל להגדיר chroot נוח לשימוש ואפילו עם copy-on-write. מה שהופך אותו לנוח מאוד לשרת בניה פשוט.

ארתיום, ב־15/03/12 15:27

בהתחלה באמת ניסיתי לעבוד עם chroot. כדי לקבל מערכת בסיסית ניסיתי להוריד את התבניות של OpenVZ וגם ניסיתי להשתמש ב-rinse גרסת פיתוח, אבל בסוף נתקלתי בבעיה בניסיון להתקין או לשדרג חבילות yum השתגע משום מה.

אז כדי לעשות את הכל בצורה מסודרת צריך להתקין הפצה במכונה וירטואלית ואז להפוך אותה ל־chroot... הרבה עבודה.

אז ניסיתי את הפתרון הזה, והסתבר שהוא עובד מצוין עבור rpmים. בנוסף אני גם מקבל repository בחינם :-)

הוסף תגובה:

 
 כתובת דוא"ל לא תוצג
 

ניתן לכתוב תגובות עם שימוש בתחביר Markdown.

חובה לאפשר JavaScript כדי להגיב.

דפים

נושאים