ג'נטו לינוקס

מקור השם

מקור שמה של ההפצה הוא פינגווין לבן אוזן, הקרוי באנגלית Gentoo Penguin. יש גם מנהל קבצים לסביבות יוניקס ולינוקס שנקרא Gentoo הקרוי ע"ש אותו פינגווין בלי קשר להפצה (והיה קיים גם לפניה).

היסטוריה

מייסדה של ג'נטו, דניאל רובינס, החל את דרכו בלינוקס בעבודה על הפצת לינוקס בשם Stampede, אולם פרש ממנה בשנת 1999 בשל חילוקי דעות לגבי פיתוח מערכת ניהול החבילות. הוא יצר הפצת לינוקס חדשה משל עצמו בשם Enoch. בהמשך שונה שם ההפצה לג'נטו.  בהמשך אותה שנה הוא הפסיק לעבוד על ההפצה ועבר להשתמש במערכת FreeBSD. הוא חזר ללינוקס ולהפצת ג'נטו וכתב לה מערכת ניהול חבילות חדשה בשם Portage, בהשראת מערכת ports שקיימת ב-FreeBSD.
בסוף 1999 - דניאל רובינס עזב את FreeBSD וחזר לעבוד על Enoch. הוא החליט לשנות את השם של ההפצה ל-Gentoo.
4 באוקטובר 1999 דניאל רובינס קונה את שם המתחם gentoo.org ובכך פותח באופן רשמי את הפרויקט. דניאל רובינס מקים את Gentoo Technologies Inc בתור חברה למטרות רווח ואת "חנות הג'נטו" על cafepress עד היום זו החנות הרשמית שממנה ניתן לרכוש מדיית התקנה, חולצות T, וסחורה אחרת הקשורה לג'נטו. המטרה של דניאל רובינס הייתה להרוויח כסף מההפצה, מטרה שלא עלתה בידו.
מאי 2004 דניאל רובינס לא מצליח להרוויח כסף מ Gentoo Technologies Inc ונאלץ להקדיש פחות ופחות זמן לפרויקט. במאי 2004 הוא מחליט לפרוש לגמרי מניהול ההפצה ומקים את Gentoo Foundation Inc, חברה ללא מטרות רווח שיורשת את כל הנכסים של Gentoo Technologies Inc וממשיכה לנהל את כל העניינים החוקיים של ההפצה. את Gentoo Foundation Inc מנהלים מועצת נאמנים שאינם בהכרח מפתחים, את פיתוח ההפצה עצמה מנהלים מועצת המפתחים, גוף שנבחר על ידי מפתחים פעילים של ההפצה.
13 ביוני 2005, דניאל רובינס עובד כעת עם מיקרוסופט, ומתאר את תפקידו כ-"עוזר למיקרוסופט להבין את הקוד הפתוח ופרויקטים מבוססי-קהילה". רובינס הצליח לסיים את העברת כל הרכוש האינטלקטואלי של ג'נטו לקרן ג'נטו.
2007 כמה מסמכים חוקיים לא מגיעים בזמן לרשויות ניו מקסיקו (המדינה שבה Gentoo Foundation Inc רשומה) דבר שמסכן את המעמד החוקי של ג'נטו. בקרב המפתחים קמה מהומה גדולה וביקרות חריפה נמתחת נגד מועצת המנהלים שמנהלת את Gentoo Foundation Inc. המפתחים קוראים לערוך בחירות למועצת הנאמנים.
2008 מתקיימים בחירות למועצת המנהלים. מאז מועצת המנהלים מקיימים ישיבות חודשיות ב #gentoo-trustees ישיבות פתוחות שכול אחד יכול להשתתף בדיונים. המבנה של שתי רשויות המנהלים את ג'נטו, רשות אחת המופקדת על העניינים החוקיים ורשות שנייה המופקדת על הפיתוח הטכני, נשמר.

התקנה

את ג'נטו ניתן להתקין במספר דרכים. הדרך הנפוצה ביותר להתקנה, היא שימוש ב-Live CD של ג'נטו, אך ניתן להתקינה גם מרוב ה-LiveCD-ים האחרים של לינוקס, ואף מתוך מערכת לינוקס קיימת על מחיצה שונה באותו כונן קשיח. את המחשב יש להכין להתקנה על ידי חלוקה למחיצות של הכונן הקשיח, והתקנת בסיס המערכת התואם לאחד משלושה שלבים. החל מהשלב הראשון, המאפשר התאמה אישית ואופטימיזציה מקסימלית, החל מהשלב השלישי המאפשר התקנה מהירה יותר, והחל מהשלב השני שהוא מקום טוב באמצע, בין שלבים 1 ו-3. ההתקנה המומלצת היא מהשלב השלישי.
ההתקנה מתבצעת בתוך סביבת chroot, כאשר מערכת ה-Portage של ג'נטו בעצמה משמשת כדי להתקין את החבילות הקריטיות עבור ההתקנה החדשה. ג'נטו אינה מכילה תוכנת התקנה כמו בהרבה הפצות אחרות (אך יש כזו שנמצאת כעת בפיתוח, ראו בקישורים חיצוניים); המשתמש עוקב אחרי השלבים המתוארים ב מדריך של ג'נטו, מסמך הזמין גם בתקליטור ה-LiveCD, וגם באופן מקוון.

חבילות אחרות

אחרי שלושת השלבים, תצורת המערכת חייבת להיכתב. לאחר מכן, המשתמש חופשי להתקין מה שהוא רוצה; הוא יכול להוריד חבילות בינאריות מה-Gentoo Reference Platform, או להדר תוכנות משל עצמו.

ליבה

הליבה של לינוקס חייבת להיות מוגדרת ומותקנת גם היא במהלך ההתקנה. ג'נטו אינה מכילה ליבה מהודרת מראש; במקום זאת, היא מציעה מספר חבילות קוד-מקור של ליבה, הרבה מהן כאלה שהוטלאו. התצורה יכולה להעשות עם כלי ה-menuconfig המסורתי שמגיע עם הליבה של לינוקס, או באמצעות genkernel, תוכנה ייעודית להידור ליבות.

תצורת מערכת

אחרי שהליבה הותקנה, קובצי תצורת המערכת חייבים להיערך באופן ידני כדי להתאים לצרכיו של המשתמש. הנ"ל כולל את הקובץ fstab, תצורת הרשת, והתאמה אישית של המערכת. הדבר החשוב ביותר הוא הקובץ המיוחד לג'נטו, שנקרא make.conf, ואשר יושב במחיצה /etc/. הוא מכיל הגדרות ששולטות בהידור של החבילות, ובדרך כלל מעודכן על ידי איש הסיסטם כאשר הערכים צריכים לעבור שינוי מברירת המחדל שלהם. הקובץ make.conf מכיל משתני סביבה כמו CFLAGS, CHOST, USE, ACCEPT_KEYWORDS ועוד רבים אחרים. עיינו בדף ה-man של make.conf עבור רשימה מלאה של כל המשתנים.

טוען אתחול

אחרי שהליבה הותקנה, יש להתקין טוען אתחול, כך שהמערכת תוכל להיות מאותחלת ללא מדיית אתחול חיצונית. טוען האתחול הפופולרי הוא GRUB.
חלקם של המשתמשים מעדיפים להשתמש ב-LILO הישן יותר.

כלי מערכת

אף על פי שאינן נחוצות עבור התקנה פועלת של ג'נטו, מספר חבילות שנפרדות מחבילת הבסיס מומלצות מאוד: system logger, כלי מערכת קבצים, ומערכת cron. ג'נטו מספקת מספר אפשרויות עבור כל סוג של כלי מהרשימה הנ"ל, והמשתמש בוחר בזו המתאימה לו ביותר על פי העדפותיו וצרכיו.

סיום ההתקנה

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

ניידות

ג'נטו נועדה במקור לארכיטקטורת ה-x86, אך מאז נויידה לארכיטקטורות רבות נוספות, בגלל אפשרות הניוד הקלה של לינוקס, GCC ו-Portage. כעת היא רצה על הארכיטקטורות הבאות: x86, PowerPC, PowerPC 970, SPARC, AMD64, IA64, MIPS, DEC Alpha, HP/PA, ARM ו zSeries/s390. ג'נטו הייתה ההפצה הראשונה שהציעה תמיכה מלאה ופעילה בסביבת 64 סיביות בלינוקס עבור ארכיטקטורת ה-PowerPC 970.
ישנו גם פרויקט "ג'נטו עבור Mac OS X" אשר מאפשר למשתמשי Mac OS X להשתמש ב-Portage של ג'נטו כדי להתקין חבילות, בצורה דומה לזו שמסופקת על ידי Fink (אף על פי שאין צורך להיסמך על סביבת chroot). אף על פי שזהו פרויקט שעדיין נמצא בעבודה, פרויקט זה יכול להחליף את Fink, משום שהוא משתמש באותה סביבה של Mac OS X, במקום יצירת סביבה חדשה.
כמו כן, פרויקטים המיועדים לאפשר ל-Portage לפעול על OpenBSD, FreeBSD וה-Dreamcast של Sega נמצאים כעת בשלבי פיתוח.

מערכת Init

מערכת ה-Init של ג'נטו היא עוד תכונה חשובה של המערכת. היא דומה ל-Init של System V שבה השתמשו רוב הפצות הלינוקס, אך היא משתמשת ברמות ריצה (runlevels) עם שמות במקום עם מספרים, וגם בתסריטים המנהלים תלויות בין שירותים. היא גם מכילה פקודה שנקראת rc-update אשר מנהלת את רמות הריצה.

Portage

Portage דומה למערכת ניהול החבילות של BSD, שנקראת "ports"; למעשה, היא נבנתה בהשראת ports. מערכת ה-Portage של ג'נטו פועלת באופן דומה למערכת ה-APT של דביאן. Portage נכתבה בשפת פייתון, והיא הכלי הראשי שמגדיר את ג'נטו. אף על פי שהמערכת עצמה ידועה כ-"Portage", התכונות שלה מופעלות למעשה בשורת הפקודה באמצעות התוכנה emerge.

דגלי USE

מערכת Portage מציעה את השימוש ב"דגלי USE", אשר מאפשרים למשתמש לציין איזה מתכונות התוכנה ברצונם לכלול כשהם בונים חבילות. לדוגמה, יש דגל USE כדי לכלול תמיכה ב-DVD, היכן שזמינה, בכל החבילות שמהודרות אחרי שדגל זה הופעל. דגלי ה-USE יכולים להשפיע על איזה תלויות יותקנו, או איזה אפשרויות יישלחו לתוכנה במהלך ההידור.
ציון דגלי USE הוא הדרך הרגילה כדי לקבוע תצורה של תוכנות בג'נטו.

קובצי Ebuild

ג'נטו אינה משתמשת בחבילות בינאריות כמו מערכות ניהול חבילות (RPM למשל), ובמקום זאת, היא משתמשת בפורמט ידוע בשם ebuild. ההבדל העיקרי בין קובצי RPM וקובצי ebuild, הוא ש-RPM-ים הם בינאריים מהודרים-מראש, בעוד שקובצי ebuild הם קובצי טקסט אשר מכילים תיאור של התוכנה, והוראות כיצד להשיג, לבנות תצורה, להדר ולהתקין אותה. ישנם כ-100,000 קובצי ebuild זמינים, ורובם מופצים על ידי אתרי המראה של ג'נטו. קובצי ebuild מעודכנים וחדשים ניתן להשיג על ידי סנכרון מאגר ה-ebuild המקורי מאתרי המראה. זאת עושים באמצעות הפקודה emerge --sync.

מיסוך חבילות

מיסוך היא הדרך שבה ג'נטו קובעת אילו חבילות מותאמות למערכת. קובצי Ebuild המיועדים לארכיטקטורות שונות, או תוכנה נסיונית, מסומנים בדרך כלל כך שהם לא יאפשרו למערכת "יציבה" להתקין אותם בלי התערבות מתאימה של המשתמש, כמו למשל, הוספת שם החבילה לקובץ /etc/portage/package.keywords. חבילות נסיוניות ממוסכות באופן "קשיח" (hard masked). התקנת חבילות הממוסכות באופן קשיח נחשבת לדבר מסוכן, ואינו מומולץ, משום שיש בהן בעיות ידועות.
חבילות שממוסכות על ידי מילת מפתח (לדוגמה, הן זמינות עבור מערכות שמעוניינות להשתמש בניסוי, שהוסיפו את מילת המפתח ~, כגון ~x86, ~amd64, ~ppc) בדרך כלל רק צריכות מעט בדיקה, אך בדרך כלל יעבדו בסדר גמור.
הדרך הרגילה לבטל מיסוך של חבילה שמוסכה באופן קשיח, הוא להעתיק את שם המלא מ /usr/portage/profiles/package.mask אל /etc/portage/package.unmask.

האתר של ג'נטו לינוקס

קרן ג'נטו ערכה תחרות לעיצוב מחדש של האתר של ג'נטו ביולי 2004. העיצוב של Aaron Shi's זכה בתחרות אחרי הצבעה שנערכה בקהילת ג'נטו.
עדכון - 1 במאי 2005
M Curtis Napier (המכונה curtis119) התחיל בתהליך של המרת העיצוב הזוכה לפורמט ה XSL/GuideXML של ג'נטו. כחלק מהתליך, כל תשתית ה-XSL/XML עוברת בדיקה ותיעוד.

ביקורת על הפצת ג'נטו לינוקס

לעיתים יש ביקורת על ג'נטו על תהליך QA לא טוב (אף על פי שייתכן וזוהי תוצאה בלתי נמנעת כאשר מתמקדים ב"להיות יותר מעודכנים" בגרסאות של תוכנות), ענפים לא יציבים שהוכרזו יציבים ("stable"), ועל כך שיש "אליטה" סגורה המנהלת את ג'נטו.
רוב הקשיים שנחוו בשנים האחרונות בענף ה"יציב" נעלמו, כתוצאה מהוספת ענף "לא יציב", וכנראה ימשיכו להשתפר עם הזמן והמאמץ. למרות זאת, כיוון שלג'נטו יש מאגר  bleeding edge של תוכנה, שלרוב נשען על תהליך ה QA של ה-  "upstream"' (כלומר, יוצרי התוכנה המקוריים). דבר זה פועל היטב עבור תוכנות שנמצאות בשימוש רב (כגון שרת ה-HTTP אפאצ'י), אך פחות עבור תוכנות שאין להן הרבה משתמשים.
כמו כן, יש על ג'נטו ביקורת בגלל תהליך ההתקנה הארוך, אשר בדרך כלל לוקח מספר ימים על חומרה ישנה. אחד מהוויכוחים המעניינים האחרים אשר בדרך כלל מגיעים אליו, הוא "חבילות בינארי או קוד מקור". ג'נטו משתמשת באחרון כברירת מחדל. יוצרי חבילות קוד מקור טוענים שבינאריים איטיים יותר ופחות אפשריים לכוונון, בעוד שיוצרי חבילות בינאריות טוענים שלוקח מספר ימים להדר חלק מהחבילות, ולכן צורה זו אינה מתאימה למשתמשים רבים אשר דורשים התקנת תוכנות מהירה. יתרה מכך, מספר אפשרויות הידור שהמשתמש יכול לבחור, עשויות להפוך בסופו של דבר את התוכנה לפחות יציבה. לשתי השיטות יש יתרונות וחסרונות.
בתגובה לביקורת זו, ג'נטו החלה להציע בינאריים מהודרים מראש עבור מספר ארכיטקטורות, של תוכנות פופולריות, כגון KDE, GNOME, OpenOffice.org, Mozilla, Mozilla Firefox ואחרות, ואת כל החבילות הנדרשות כדי להריץ אותן. סטים אלה של חבילות מכונים "ה- Gentoo Reference Platform" (או בקיצור: GRP) והם מעודכנים בכל יציאת גרסה של ג'נטו.
לבסוף, הטיעון על "האליטה שמנהלת את ההפצה" נעלם מאז שדניאל רובינס ייסד את הארגון ללא מטרות רווח הנקרא "קרן ג'נטו".
טענות אלו נשמעות בדרך כלל על ידי מיעוט "צעקני" של הפצות לינוקס מבוססות-קהילה.
ג'נטו נראתה לחלק מהאנשים כיריב של דביאן. באופן ספציפי, חלק ממשתמשי ג'נטו טענו שהם עברו לג'נטו מדביאן בגלל העזרה שהם קיבלו ממשתמשים אחרים המשתמשים במערכת, דרך הפורומים של ג'נטו, בהשוואה ל"טיפול" שקיבלו משתמשים חדשים ברשימת התפוצה של דביאן (ראו גם: RTFM).