הבלוג של ארתיום
בלוג על לינוקס, תוכנה חופשית, מוזיקה, סלסה, ומה לא!
לחיות עם גרסה יציבה של דביאן
מי שמכיר אותי יודע, שאני שונא לתחזק מחשבים, להתעסק בהם ואוהב שהם פשוט יעבדו (לצערי זה לא תמיד קורה). לכן, אני בחרתי בדביאן יציבה בתור מערכת ההפעלה הראשית שלי שאני עובד איתה גם על מחשב נייד ונייח. פשוט, זה מונע ממני כל צורך לשדרג מערכת יותר מידי, לדאוג מכן שהדברים עלולים להישבר ברגע לא מתאים ועוד.
הבעיה היא, שלפעמים אני צריך תכנה ספציפית בגרסה עדכנית שלה. מה עושים?
למעשה יש מספר דרכים מקובלות להתמודד עם הבעיה:
- לקמפל תוכנה בעצמך ולהתקין... לזה יש הרבה בעיות: כיצד לנהל קבצים? כיצד להסיר? מה אם תצא גרסה חדשה שבאה עם ההפצה ועוד.
- להתקין מ־backports.org. הבעיה היא, לא כל תוכנה נמצאת שם, רק התוכנות הפופולריות ביותר כמו, למשל, OpenOffice. לכן, זה לא תמיד פתרון.
- לעשות backport בעצמך.
בדיוק פה, אספר על הפתרון השלישי שמאפשר בכמה פקודות פשוטות ליצור חבילת deb כשרה למהדרין עבור המערכת שלך.
קודם כל נבין, מדוע זה בכלל אפשרי? הרי אם לקוחים חבילה מ־lenny כפי שהיא, בד"כ נקבל שנדרשות גרסאות חדשות יותר של חבילות בסיסיות.
הסיבה היא שבפועל, אין צורך בספריות כל־כך עדכניות, רק שבעת קימפול, התלות נקבעת לפי גרסת הספריה שאנחנו מקמפלים מולה. לכן, בד"כ, כל מה שצריך לעשות זה לקמפל את התוכנה בסביבה של הספריות של ההפצה שלך.
ובכן, נתחיל. נדגים, כיצד אפשר לעשות backport למשחק flight-gear שהוא מקרה די מורכב.
קודם כל, נוסיף מקור source packages של lenny לקובץ /etc/apt/sources.list:
deb-src http://mirror.isoc.org.il/pub/debian/ lenny main contrib
ואז נוריד 3 חבילות שקשורות אליו:
apt-get source simgear flightgear fgfs-base
כאשר simgear זו ספריה ש־fg משתמש בה, ו־fgfs-base זו חבילת נתונים.
ניכנס לספריה simgear-1.0.0 שנוצרה ונריץ
dpkg-buildpackage -rfakeroot
אם הוא יתלונן על חבילות חסרות (למשל openal) אז נתקין אותם כרגיל ממקורות etch.
אחרי שבניה הסתיימה, נגלה שנוצרו שתי חבילות: simgear0 ו־simgear-dev: נתקין את שתיהן.
לאחר מכן, נבצע אותו תהליך בניה עבור fgfs-base ו־flightgear.
מזל טוב, הרגע, קיבלנו משחק שמקומפל עבור debian etch, עדכני ממקורות של lenny.
גילוי נאות: לא הכל הולך תמיד חלק, לפעמים הדרישות של הגרסאות העדכניות של ספריות הן אמיתיות והתליך עלול להכשל. אבל, בהרבה מאוד מקרים, ניתן להסב את החבילות בקלות רבה.
אלה היות שתי דקות על "כיצד לחיות עם Debian Stable"
תגובות
מזכיר לי משהו שקרה לי אתמול. התקנתי שרת דביאן, רק בשביל לגלות שהכרטיס רשת לא נתמך. חיפוש קצר בגוגל, העלה שהכרטיס רשת חדש מידי עבור הקרנל, ורק בלני יש תמיכה בשבילו בדביאן, אבל הקוד מלני דרש הרבה יותר מידי תלויות בשביל שאוכל להוריד ידנית (הרי אין לי רשת על המחשב), למזלי מצאתי גרסה מקורית שבאה עם הדיסק של הלוח אם, והשתמשתי בה בעצם, אבל אז אתה מגלה שאין לך כמעט כלי פיתוח, kernel header וכו, הורדתי רק את המינימום הנדרש בשביל להדר את מודול, ברגע שהיה לי את המודול בייד טענתי אותו, ויכולתי לעשות בדיוק את הצעדים האלו שאתה מציע.
סתם הטריקים של אנשים שנתקעים בזמן אמת עם מצוקות בדביאן :)
ד"א אני חושב שאמורה לצאת גרסה יציבה של דביאן עם עדכון של קרנל בלבד -- במיוחד בשביל בעיות כאלה (חומרה).
אתה יכול להשתמש ב debuild שמהווה מעטפת נוחה ל dpkg-buildpackage ועוד מספר תוכנות המשמשות בתהליך בניית החבילה.
הרצה סטנדרטית לשימוש מקומי תהיה: debuild -us -uc
תודה ארתיום. בעקבות המאמר שלך אנסה ליצור חבילות של ערכת הנושא של אובונטו: human-theme ו- human-icon-theme לדביאן. אני באופן אישי מאוד אוהב את הערכה של אובונטו (אתה יודע, עניין של טעם...), אך לא ניתן היה להתקין אותה בדביאן בגלל בעיית תלויות. אני לא חושב שיש שינויים מרחיקי לכת בין מערכות ההפעלה שימנעו מלייצר את החבילה. מה דעתך?
אני לא חושב שיש דרך אחרת מלבד לבדוק ;)
היי,
כמה הערות:
נהוג לעשות בד"כ backport מ-sid ולא מ-testing למרות שכמובן אין שום מגבלה טכנית על הנושא. מוזמן לקרוא על Etch and a half לגבי עדכונים ל-Etch (ולא רק עדכוני אבטחה): http://wiki.debian.org/EtchAndAHalf
נהוג להריץ את dpkg-buildpackage -rfakeroot ולא כמו שעשית.
ניתן להתקין התוכנה debuild שהוזכרה כאן מגיעה מהחבילה devscripts. מומלץ להתקין בכל מקרה... (יש שם דברים נחמדים)
תודה על ההערות.
ערכתי קצת את התגובה (שיהיה Wp בריא...)
הוסף תגובה:
חובה לאפשר JavaScript כדי להגיב.