Archive

Archive for the ‘suse’ Category

סוזה, zypper ותאימות ל-yum

20/07/2010 5 תגובות

לאחרונה התחלתי לעבוד לא מעט עם SLES ו-openSUSE ונדרשתי לעניין של הגדרות מאגרים והתקנות. מאחר ו-YaST הוא כלי גרפי (או עם ממשק ncurses) וללא אפשרות להפעלה משורת הפקודה בלבד, אז הפתרון הבא הוא Zypper. יש להזכיר כי קיים כלי נוסף בשם Rug שמיועד לעדכונים מול המאגר של נובל.

מאחר ואני עובד במקביל עם SLES10, SLES11 ו-openSUSE 11.x אז ישנם הבדלים לא קטנים בכלי, ובעיקר ביחס של SLES10 מול שתי הגרסאות האחרות. עם זאת, גם בגרסאות החדשות יש כמה אנומליות לא קטנות. zypper של SLES10 עובד בצורה דיי נכה עם קבצי repo ועדיף להשתמש בפקודות zypper service-add ולתת את הכתובת של המאגר. גרסאות מתקדמות יותר כבר יודעות לאכול קבצי repo טוב יותר, בתנאי שיש להם שורה שמציינת את סוג המאגר (type=rpm-md). לפחות יש תאימות סבירה ל-yum ואפשר לבנות מאגרים ליותר מהפצה אחת מבוססת RPM.

עם זאת, נתקלתי בקטע מעניין והוא הארכיטקטורה של ה-RPMים. רוב ה-RPMים של סוזה לסוגיו מיועדים עבור i586 בגרסאות ה-32bit, אך המכונות מדווחות על מעבדים מסוג i686 עם ארכיטקטורת בסיס של i386. אז איך בדיוק נבנה לי RPM עבור i586? תחליטו. זה לא נעים כאשר מנסים להגדיר מאגר בקובץ repo תוך שימוש במשתנים של arch ו-basearch ולא מבינים למה לא מגיעים לכתובת הנכונה.

דוגמה קיצונית אף יותר שנתקלתי בה היתה שמכונה דיווחה לי על arch של x86_64 ו-basearch של i386. על זה נאמר WTF?

אגב, ב-zypper בגרסאות החדשות, עשו הפרדה בין מאגרים (repos) לשירותים (services). האחרון מתייחס לשירותי מידע על מאגרים, וזאת למרות שבגרסאות הישנות (SLES10) השם services מתייחס בפועל למאגרים. ככה זה שהכלי מתפתח עם ההפצה ובעיקר כי מדובר בכלי יעודי במקום בתשתית של כמה הפצות (כמו yum).

למעוניינים, ניתן למצוא את התחביר המלא של Zypper בויקי של אופן סוזה או בדף ה-man.

:קטגוריותsuse