תבנית:מדריך הפורטאג' - פורטאג' למתקדמים

מתוך הויקי של ג'נטו.

קפיצה אל: ניווט, חיפוש

תוכן העניינים

[עריכה] תכונות פורטאג'

לפורטאג' מספר תכונות נוספות שיהפכו את ההתנסות שלך עם ג'נטו לטובה יותר. רבות מתכונות אלו נשענות על כלי תוכנה שמשפרים ביצועים, אמינות, בטיחות ועוד... על מנת לאפשר או לחסום חלק מתכונות פורטאג' עליך לערוך את הקובץ etc/make.conf/ ולשנות את ערך המשתנה FEATURES. במקרים מסוימים יהא עליך להתקין כלי תוכנה נוסף שתכונה זו של פורטאג' נשענת עליו. לא כל התכונות שפורטאג' תומך בהן רשומות פה. לסקירה מלאה, אנא קרא את המדריך של make.conf:

קוד: בדיקת דפי העזרה של make.conf
# man make.conf 

על מנת לבדוק אילו תכונות כבר נמצאות כברירת מחדל, יש להריץ emerge --info ולחפש אחר המשתנה FEATURES או לסנן את המידע על ידי grep:

קוד: מציאת המאפיינים שכבר הוגדרו
 # emerge --info 

[עריכה] הידור מבוזר - Distributed Compiling

[עריכה] השימוש ב distcc

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

ניתן למצוא מידע נוסף לגבי distcc (ואיך לגרום לו לעבוד עם ג'נטו) במדריך distcc לג'נטו.

[עריכה] התקנה

distcc זמין עם מוניטור גרפי כדי להשגיח על המשימות שמחשבך שולח החוצה להידור. אם הנך משתמש בגנום אזי עליך להוסיף 'gnome' למשתני USE. אולם אם אינך משתמש בגנום, ועדיין רוצה לעשות שימוש במוניטור, עליך להוסיף 'gtk' למשתני USE. התקנת distcc:

קוד: התקנת distcc
# emerge distcc

[עריכה] הפעלת תמיכת פורטאג' ב-distcc

הוסף את-distcc לרשימת משתני FEATURES בקובץ etc/make.conf/ . הצעד הבא הוא לערוך את משתנה MAKEOPTS בהתאם להעדפותיך. הנחייה ידועה היא להוסיף "jX-" כאשר X מייצג את מספר המעבדים המריצים distccd (כולל את המארח) ועוד אחד. יתכן ותקבל תוצאות טובות יותר עבור ערכים אחרים. הפעל את distcc-config והכנס את רשימת שרתי distcc. כדוגמה פשוטה אנו מניחים ששרתי DistCC הזמינים הינם 192.168.1.102 (המחשב המארח), 192.168.1.103 וגם 192.168.1.104 (זוג שרתים "מרוחקים"):

קוד: הגדרת distcc לשימוש שלושה שרתי distcc נגישים
# distcc-config --set-hosts "192.168.1.102 192.168.1.103 192.168.1.104"

כמו כן אל תשכח להפעיל את התהליך distccd:

קוד: הרצת תהליך distccd
# rc-update add distccd default
# /etc/init.d/distccd start

[עריכה] השימוש במטמון להידור - Caching Compilation

[עריכה] אודות ccache

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

[עריכה] התקנת ccache

על מנת להתקין את ccache, הרץ emerge ccache:

קוד: התקנת ccache
# emerge ccache

[עריכה] הפעלת תמיכת פורטאג' ב-ccache

ערוך את הקובץ etc/make.conf/ והוסף ccache למשתני FEATURES. לאחר מכן הוסף משתנה חדש בשם CCACHE_SIZE ותן לו ערך "2G":

קובץ: etc/make.conf/
CCACHE_SIZE="2G"

כדי לבדוק אם ccache מתפקד, בקש ממנו לספק לך את הסטטיסטיקות שלו:

קוד: הצגת סטטיסטיקות ccache
# ccache -s

[עריכה] השימוש ב-ccache עבור הידור שאינו קשור בפורטאג'

אם רצונך להשתמש ב-ccache עבור הידורים (קימפולים) שאינם קשורים בפורטאג', הוסף את usr/lib/ccache/bin/ להתחלת המשתנה PATH (לפני usr/bin/). ניתן לבצע זאת על ידי עריכת etc/profile/ :

קובץ: etc/env.d/00basic/
PATH="/usr/lib/ccache/bin:${PATH}"

[עריכה] תמיכה בחבילות בינאריות

[עריכה] יצירת חבילות בנויות מראש

פורטאג' תומך בהתקנה של חבילות שכבר נבנו קודם לכן. אע"פ שג'נטו אינו מספק חבילות מוכנות מראש (למעט GRP), ניתן לידע את פורטאג' לגבי הימצאותן של חבילות מוכנות.

על מנת ליצור חבילה בנויה מראש באפשרותך להשתמש ב-quickpkg במידה והחבילה כבר מותקנת במחשבך, או ב-emerge עם אופצית buildpkg-- או buildpkgonly-- . אם אתה רוצה שפורטג יבנה חבילה מוכנה מראש של כל חבילה אשר אתה מתקין, הוסף את buildpkg למשתנה FEATURES אשר בקובץ etc/make.conf/ . ניתן להשיג תמיכה רחבה יותר עבור יצירת חבילות בנויות מראש עם catalyst. כדי לקבל יותר מידע על catalyst ניתן לקרוא את מדריך המשתמש של catalyst ואת Catalyst Howto.

[עריכה] התקנת חבילות בנויות מראש

אף על פי שג'נטו אינו מספק זאת, ביכולתך ליצור מקום מרכזי אשר בו תוכל לאחסן חבילות בנויות מראש. עליך לידע את פורטאג' לגבי המצאות מקום זה על ידי איתחול המשתנה PORTAGE_BINHOST כך שיצביע על המקום הנבחר. לדוגמה, אם החבילות בנויות מראש נמצאות ב ftp://buildhost/gentoo אזי יש להוסיף את השורה הבאה בקובץ etc/make.conf/ :

קובץ: etc/make.conf/
PORTAGE_BINHOST="ftp://buildhost/gentoo"

כאשר תרצה להתקין חבילה בנויה מראש, הוסף את האופציה getbinpkg-- לשורת הפקודה של אימרג' ביחד עם אופצית usepkg-- .האופציה הראשונה אומרת לאימרג' לטעון את החבילה המוכנה מהשרת שהגדרנו קודם, והאופציה השניה מבקשת מאימרג' לנסות להתקין את החבילה הבנויה לפני שהוא ינסה לטעון ולהדר קבצי מקור. לדוגמה, על מנת להתקין את gnumeric עם חבילה מוכנה מראש:

קוד: התקנת חבילת גנומריק בנויה מראש
# emerge --usepkg --getbinpkg gnumeric

מידע נוסף ניתן למצוא במדריך של אימרג':

קוד: קריאת דפי העזרה של אימרג'
# man emerge

כלים אישיים