jiyuu-מחשבות פתוחות

קצת נוסטלגיה

12/02/2008 17:04 ע"י כתריאל טראום

אחרי שראיתי וקראתי את הראיון עם Patrick Volkerding, יוצר ההפצה Slackware, החלה עולה בי תחושה בלתי ניתנת לעצירה של נוסטלגיה.

את ימי כלינוקסאי, התחלתי אי שם בשנות התשעים, עוד בבית הספר. המורה שלי לאסמבלר נתן לי CD עם משהו שנקרא "לינוקס", וביקש שאנסה את המערכת הפעלה, הוא חשב להכניס את המערכת לשימוש בבית הספר.

מאז אותו הרגע, התחילה מסכת ארוכה של נסיון וטעיה (שנמשכת עד היום יש לציין), עד שהיתה לי מערכת עובדת על ה-386 ה"חדש" שלי. מאוחר יותר עברתי ל-Red Hat (גירסה 5.2) אחרי שהמליצו לי על ההפצה ב-IRC.

לאורך השנים די נשארתי עם Red Hat/Fedora, למעט גיחות לעולם ה-BSD ואובונטו\ג'נטו\LFS. ושוב, אחרי שקראתי את הכתבה עם פטריק, צפה ועלתה לי אותה התקופה, על ההפצה, ששמה מסבר היה "Slackware".

בלי להשתהות, ניגשתי לעמוד הבית של Slackware והתחלתי לבלוש מעט. התרשמתי מ-Slack כי היא קצת "מאחרת", רק עברה לקרנל 2.16, רק לא מזמן הוסיפו תמיכה ב-HAL. כל אלו דברים שנמצאים בהפצות אחרות כבר מזמן. מכיוון שאני לא מהממהרים (נסו להגיד את זה הרבה ומהר, מהממהרים) להחליף Desktop, אמרתי לעצמי שאולי עדיף לנסות את Slackware בתור VM.

אצתי רצתי, והורדתי לי Image מוכן מ-Jailtime. הסבה מהירה, והוא עובד כבר מעל lguest.

זהו. כרגע רק התחלתי לעבוד עם המערכת וללמוד להשתמש בה. אני רוצה להתחיל בהעברה של הפיתוח של jiyuu ל-VM החדש, ומשם נראה.

עוד עדכונים בהמשך.

לינוקס בבית חולים

05/10/2007 14:07 ע"י כתריאל טראום

לפני כמה ימים נזכרתי בסיפור משעשע שקרה לי לפני כשנה… אם זה לא מוכיח עד כמה עולמנו הזוי, אז אני לא יודע מה כן.

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

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

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

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

"לינוקס? מה אתה אומר? יש לי מנדרייק מותקן בבית. באמת יש לי בעיה עם התחברות לכבלים, אולי תוכל לעזור לי?".

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

הזוי.

לינוקס להמונים

17/09/2007 18:58 ע"י כתריאל טראום

במאמר די מקיף (גם אם לא הכי מדוייק לטעמי), סוקרת אדר שלו ב-YNET את הסיבות מדוע לדעתה לינוקס כיום לא מוכנה לשולחן העבודה.

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

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

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

בתור אחד המגדיר עצמו Power User, אני נהנה מהאתגר והעיניין כמו שהגדירה את זה אדר שלו, שיש בשימוש בלינוקס. אבל זה עדיין, בהחלט, לא לכל אחד.

העתיד בנושא זה, אני חושב הוא דווקא מאותם אנשים שעדיין לא "קולקלו" ע"י חלונות, ויתחילו דרכם בלינוקס. הם אלו שבסוף יהפכו אותה למשהו שמיש באמת למשתמש הביתי הפשוט.

מי מפחד מהחושך? (ומ-Sendmail ו-LDAP?)

18/07/2007 19:51 ע"י כתריאל טראום

שנים רבות שפחדתי מ-Sendmail, באמת. הסתכלתם פעם בקובץ קונפיגורציה שלו? אם אתם אמיצים, פתחו את הקובץ sendmail.cf (משאיר לכם כתרגיל למצוא את המיקום שלו), וראו אם אתם מצליחים להבין איזה כמה שורות קונפיגורציה שם. לא, הא? טוב, אתם לא לבד, 99.999% מאוכלוסיית העולם אינה מסוגלת לקרוא את הקובץ. אבל אל דאגה, לעזרתנו באה שפת המאקרואים m4, למי שלא מכיר, תגידו שלום ל-sendmail.mc, מכיל רק כמה שורות, קצת יותר נהירות, שבעזרתם בונה המפענח (m4) את sendmail.cf.

יופי, עכשיו שהבהרנו את הנושא הזה, בוא ונסתכל על אחד מהמאפיינים של Sendmail שעושה אותו כלי מצויין (למרות שכיום, חביב עלי יותר postfix), מפות. לא, לא מפות שולחן, אלא שימוש בקבצי מיפוי כדי להכניס גמישות ושליטה של מנהל הרשת על Sendmail מחוץ ל-sendmail.cf. לדוגמא, Sendmail מאפשר לנתב דואר נכנס לשרת אחר, או דואר מאימייל אחד למשתמש אחר.

הכל טוב ויפה כאשר יש שרת אחד לנהל. מה קורה כאשר יש 10? 20? (קיימות מערכות כאלו ואף גדולות יותר) אנחנו צריכים מקום מרכזי שיחזיק את כל המידע הזה בצורה מרוכזת, כדי שדואר אשר נכנס בכל אחד מהשרתים יקבל את אותו "הטיפול". להצלתנו מגיע כמובן LDAP הפרוטוקול ו-OpenLDAP השרת.

למי שחי מתחת לאדמה בשנים האחרונות ולא שם לב, LDAP הפך להיות ה"סכין צבאית שוויצרית" (Swiss Army Knife, נשמע יותר טוב באנגלית, תודו) של אנשי ה-IT. אם פעם היה מחזיק רק משתמשים או כתובות, היום הוא כבר "יודע" להחזיק מידע כמו מפות של Sendmail/Postfix, מידע DNS-י, משתמשים, קבוצות, automounts ומה לא… במקרה שלנו, נרתם שרת ה-LDAP כדי להחזיק מפות של Sendmail. לא רע בכלל בשביל פרוטוקול צעיר (יחסית, בערך מ-1993).
LDAP (או Light Weight Directory Access) תוכנן כפרוטוקול שנועד להחזיק מידע היררכי בצורה יעילה ומהירה לגישה, וזה בדיוק מה שהוא עושה פה בעבור Sendmail.

על הנושא של התקנת, קינפוג ותחזוקת שרת OpenLDAP לא אדבר, כי הוא חורג מגבולות הבלוג הזה שמטרתו: שירת הלל ל-LDAP. בכל מקרה, אז איך אנו גורמים ל-Sendmail לדבר עם שרת LDAP? ואיך אנו גורמים לו לשאול את השאלות הנכונות? בואו ואספר לכם.

בתור התחלה, נצטרך להגיד לשרת ה-LDAP כיצד לבנות רשומות שיבין Sendmail, איך עושים את זה? במילה אחת - sendmail.schema. סכמה היא קובץ המגדיר סוגי אוביקטים, סוג המידע שבכל אוביקט ואת היחס ביניהם. ניתן למצוא את הסכמה בקבצי המקור של Sendmail או ברוב ההפצות כיום. את הסכמה יש לשים בספריית הסכמות של OpenLDAP (בד"כ /etc/openldap/schema) ולהוסיפה לקובץ הקונפיגורציה של OpenLDAP:

include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/nis.schema
include         /etc/openldap/schema/sendmail.schema

שלב הבא במסענו לארץ LDAP, יהיה יצירת המפות כדי ש-Sendmail יוכל לגשת אליהם, ניצור את ה-DN הבסיסי ומתחתיו את המיפויים. בדוגמא הבאה ניצור מפה מסוג virtusertable:

# cat > ldap-virtuser 
dn: sendmailMTAMapName=virtuser, dc=example, dc=com
objectClass: sendmailMTA
objectClass: sendmailMTAMap
sendmailMTACluster: example.com
sendmailMTAMapName: virtuser

dn: sendmailMTAKey=user@example.com, sendmailMTAMapName=virtuser, dc=example, dc=com
objectClass: sendmailMTA
objectClass: sendmailMTAMap
objectClass: sendmailMTAMapObject
sendmailMTAMapName: virtuser
sendmailMTACluster: example.com
sendmailMTAKey: user@example.com
sendmailMTAMapValue: user-example

כדי להוסיף את המפה נצטרך להשתמש בכלי ldapadd של OpenLDAP:

# ldapadd -D cn=manager,dc=example,dc=com -b dc=example,dc=com -W -x < ldap-virtuser

מצויין! יש לנו רשומה בשרת ה-LDAP שממפה את user@example.com למשתמש user-example.

שלב אחרון במזימה שלנו הוא קינפוג Sendmail שידע לחפש בשרת ה-LDAP, על מנת לעשות זאת, נצטרך להכניס כמה שינויים ותוספות ב-sendmail.mc חפשו את השורה

FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl

והחליפו אותה בשורות הבאות:

define(`confLDAP_DEFAULT_SPEC', ` -h ldserver -b dc=example,dc=com')
define(`confLDAP_CLUSTER', `examplecom')
FEATURE(`virtusertable', `LDAP')

הערה: עוד מידע על האפשרויות של confLDAP_DEFAULT_SPEC בכתובת הבאה

כדי לצור sendmail.cf חדש, נשתמש במפענח m4:

m4 sendmail.mc > sendmai..cf

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

# sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> /map virtuser user@example.com
map_lookup: virtuser (user@example.com) returns user-example (0)

מושלם! ביקשנו מ-Sendmail לפענח בעבורנו, מתוך המפה virtuser לאיזה משתמש מופנה הדואר בעבור הכתובת user@example.com, והתשובה הנכונה לא אחרה להגיע לאחר שאילתה קטנה לשרת ה-LDAP

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

שרת במשקל נוצה

18/07/2007 19:50 ע"י כתריאל טראום

אני לא אוהב דברים מנופחים, באמת שלא. לא אוהב מחשבים מגודלים, אפליקציות מפלצתיותת, מערכות הפעלה מסובכות… לראיה, המחשב האהוב עלי בבית הוא ה-NSLU2 שלי שמריץ דביאן ומשמש בתור פיירוול\VPN\חייגן.

אם כך, זה לא פלא שכאשר גיליתי את Lighttpd התאהבתי ישר. "על מה הוא מדבר לעזאזל?" אתם בטח חושבים לכם. ובכן, lighttpd הוא חלופה קלה, מהירה וגמישה ל-Apache המוכר (ולפעמים מנופח). כמה מהתכונות של lighty (קיצור של lighttpd) שגרמו לי להתאהב הם:

  • שרת חד-נימי (Single-Threaded), מה שאומר שהוא משתמש בכמות זכרון נמוכה
  • בר הרחבה בעזרת מודולים (כמו rewrite, fastcgi, cgi, vhosts ועוד)
  • בנוי בעבור סביבות עתירות עומסים, עם אופציות שיפצור תואמות (שימוש ב-sendfile ועוד)

Lighty, אשר נכתב על ידי יאן קנשקה (Jan Kneschke) אי שם בשנת 2003, נכתב בכלל כהסחת דעת מכתיבת תעוד (שהוא מעיד עליו כחלק השנוא על כל מפתח, נשמע מוכר) לתיזה שלו. הוא התחיל את הפרויקט כנסיון לפתור את בעיית "10000 החיבורים לשרת" (C10K של דן קגל), ועד מהרה הגיע לשרת עם ביצועים מצויינים שהופך יותר ויותר פופולארי.

אז פעם הבאה שאתם שוקלים להקים שרת LAMP, אני מציע שתשקלו את החלופה הקלילה יותר, הקמת שרת LLMP

לאמן את הכלב

18/07/2007 19:45 ע"י כתריאל טראום

את מנוע החיפוש beagle לא צריך להציג, הוא מן הסתם החלופה הראויה ביותר ל-Google Desktop בעבור סביבת לינוקס. חלק מתכונותיו השימושיות כוללות עדכון בזמן אמת של תוצאות החיפוש, אינדוקס מיידי של דואר נכנס, שיחות ב-Instant Messenger וקבצים חדשים, יכולת אינדוקס של מגוון רחב של פורמטים ומקורות מידע ועוד.

Beagle נשען על מנוע האינדוקס המצויין Lucene מבית פרויקט Apache שהומר לשפת .Net

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

לספריה /home/data/mm עיגנתי את הדיסק הנוסף. ברגע שנוסף ל-Beagle ספריה נוספת, הוא מתחיל ישר לסרוק אותה ולאנדקס את כל החומר החדש. הבעיה התחילה כאשר לקח לו יותר מדי זמן, ורציתי להתחיל למצוא מסמכים ושירים בצורה די מיידית (חיברתי את הדיסק כדי למצוא מסמך מסויים). הפתרון נמצא בדמות משתנה סביבה (Environment Variable), שכאשר הוא מועבר ל-Beagle, מורה לו להתחיל לסרוק בצורה נמרצת. התהליך הוא:

$ beagle-shutdown
$ export BEAGLE_EXERCISE_THE_DOG=1
$ beagled

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

ומה איתי? בזמן שהכלבלב סרק, אני יצאתי בנתיים להפסקת קפה.

מחיקת תור ההודעות של Postfix

18/07/2007 19:43 ע"י כתריאל טראום

לאחרונה יצא לי לשדרג את מערכת ההפעלה של הפינגווין מפדורה בגירסא 5 ל-CentOS 5. אני מקווה שהצעד הזה ישאיר את המערכת מעודכנת ומאובטחת יותר לאורך זמן (פדורה 5 כבר אוטוטו עוברת ל-Legacy). בתהליך השדרוג, שכחתי לכוון את שרת הדואר של הפינגווין שיצא דרך ה-Mail Relay שלנו. כתוצאה מכך נתקעו לי לא מעט מיילים יוצאים בשרת הדואר הפנימי.
חשבתי כבר הנה שוב אצטרך לכתוב איזה שורת פקודה ארוכה ומסובכת כדי לרוקן את התור היוצא (כמו שאני בד"כ עושה עם סנדמייל שמחזיק מיילים לא רצויים). להפתעתי ושימחתי, גיליתי כלי ל-Postfix יש כלי לניהול התור שמסוגל לעשות זאת בשבילי. פקודה אחת קצרה ולעניין פתרה את כל הבעיה:

sudo postsuper -d ALL

פקודה זו תרוקן את כל התורים של Postfix: נכנס, יוצא ו-Deffered. ניתן למחוק בצורה סלקטיבית יותר, כמו תמיד man 1 postsuper יספק יותר מידע מבלוג זה.