גם נובל הלכה?

הבשורות לגבי מכירת Novell לא היו מעודדות. נובל הסכימה "להימכר" לחברת Attachmate. השמועות מדברות על מחיר של 2.2 מיליארד דולר, כאשר הזכויות על ה-Unix נשמרות ולא נמכרות למיקרוסופט.

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

נובל היתה באמת חברה שהבינה מה זה קוד פתוח, איך להתייחס למפתחי קוד פתוח, אבל לנובל לא היה אומץ לפרוץ את השוק ולחפש שווקים חדשים ודברים חדשים. רד האט הוציאו את פדורה? נובל הגיבה ב-Open SuSe. השוק רוצה פתרונות וירטואליזציה? נובל לוקחת את XEN ומייצרת רבע ממה ש-Citrix המתחרים מציעים. רד-האט לשם השוואה – רצו להיכנס לשוק הוירטואליזציה ברצינות, אז הם ראו את קומרהנט, וקנו אותם ב-120 מיליון דולר (לפי השמועות), ומאותו רגע רד-האט התחילו להשקיע ב-KVM הרבה יותר מאשר ב-Xen מבחינת שיווק ו"המלצות" ללקוחות שלהם (נחשו על מה מבוסס ה-RHEV של רד-האט). רד האט עשתה צעדים אחרים כדי להיכנס לשוק ה-Middleware כמו רכישת JBoss כדי ליצור דריסת רגל בשוק, והדו"חות הכספיים של רד-האט מראים שהם גודלים לא רע. הם כמובן לא מיקרוסופט או גוגל, אבל יחסית לחברה שמוצר הדגל שלה (RHEL) נמצא חינם בשוק עם תואם (CentOS), המספרים בהחלט יפים.

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

נובל המשיכו להתעסק במוצרים שכבר נהפכו ל-Legacy ולא השכילו להבין שאותם מוצרים "מתים" מבחינת השוק: די, כבר לא רוצים יותר Netware, לא רוצים יותר Zenworks ושאר המוצרים הישנים. המספרים לא משקרים: נובל ראתה בכל רבעון איך המספרים יורדים בקצב של מספר דו-ספרתי.

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

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

כמו שאמרתי בהתחלה – עצוב.

בקצרה: VLC עם פדורה 13

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

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

*** glibc detected *** vlc: free(): invalid pointer: 0x02ae3ff0 ***

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

הפתרון? יש מס' פתרונות:

  1. הפתרון שכולל הורדה מחדש בצורה ידנית של VLC וזה אמור לפתור, נמצא כאן.
  2. פתרון שני שקיים הוא לקחת את קובץ ה-SRPM ולבנות את התוכנה מחדש. הפתרון הזה לוקח את הזמן מבחינת קימפול, זו חבילה די ענקית.
  3. הפתרון הנוסף שמצאתי הוא די פשוט: מריצים את הפקודה הבאה בטרמינל: MALLOC_CHECK_=1 vlc ו.. זהו. בפעם הבאה שתריצו את התוכנה, לא תצטרכו להשתמש בבדיקת MALLOC והתוכנה תרוץ כאילו לא קרתה שום תקלה. ניסיתי לבדוק מס' סרטים והכל רץ בצורה יוצאת מן הכלל.

לפחות ממה ששמעתי ב-IRC בערוץ fedora, חבילת תיקון תצא בקרוב.

מדריך: אתרים קטנים וחסכון כספי ניכר (חלק שני)

בפעם שעברה כתבתי על היתרונות בלאחר אתר קטן שלכם מהבית ללא צורך בתשלום. הפעם אכתוב על איך בעצם לעשות זאת.

נתחיל בהקמת השרת. השרת יכול להיות כמעט כל מחשב ישן, אולם לפני שאתה ניגש לנער את האבק מהמחשב הענתיקה שלך, כדאי שתיקח בחשבון את הפרט החשוב הבא: למחשבים הישנים יש גם ספקי כח שצורכים די הרבה חשמל והם יצרכו אותו באותו "שרת" 24 שעות, 7 ימים בשבוע, מה שאומר שיש סיכוי לא קטן שחשבון החשמל שלך יגדל. מה אפשרי לעשות? כדאי לחשוב אם להשקיע במחשב בתצורת Mini ITX, מחשבים מבוססים לוח ומעבד של VIA לדוגמא, או לוחות עם מעבד אינטל ATOM והכי חשוב: מארז ITX. אלו מארזים שמגיעים עם ספקי כח חיצוניים קטנטנים ושמשתמשים בהרבה פחות חשמל. מעבד ATOM לדוגמא צורך רק 7 וואט שזו צריכה ממש מזערית מול כל פנטיום 4 או כל מעבד שולחני רגיל. כדאי לשים לב גם לדבר הבא: אותו "שרת" לא הולך לקבל כמויות של מיליוני Hits כך שמעבד ATOM מספיק בהחלט לשרת קטנטן.

לאחר שהמחשב מוכן ומחובר לרשת (חיבור חוטי בלבד), נתקין עליו את הפצת הלינוקס שאנו מעוניינים, וכאן ישנה נקודה חשובה: עדיף להתקין הפצה המוגדרת מראש לעדכונים למשך זמן רב מאשר הפצה שמשתנה כל שנה. במילים אחרות: עדיף Ubuntu LTS או CentOS מאשר Ubuntu רגיל או Fedora או Open SuSE. ההתקנה עצמה צריכה לכלול חלקים שאתם צריכים, בין אם זה שרת MySQL או PostgreSQL, שרת Apache, תמיכת PHP וכו', הכל בהתאם להעדפות ולמה שתריצו על אותו שרת.

ההתקנה עצמה צריכה לכלול חלקים שאתם צריכים, בין אם זה שרת MySQL או PostgreSQL, שרת Apache, תמיכת PHP וכו', הכל בהתאם להעדפות ולמה שתריצו על אותו שרת. אחד ההגדרות הכי חשובות בשרת היא כתובת IP קבועה ולא כתובת IP מה-DHCP שייספק הנתב הביתי שלכם. דבר זה חשוב מאוד ותיכף נגיע אליו. יש להגדיר משתמש רגיל בו ניכנס למערכת על מנת לעבוד ולתחזק את השרת הקטן.

לאחר שההתקנה הסתיימה, נצטרך לבנות או להעביר את התוכן ואפליקציית ה-WEB שלנו. ישנם כאלו שישימו את האתר עצמו במחיצת ברירת המחדל (ב-Centos זה var/www/html/). מומלץ לשים את הדברים במחיצה נפרדת ושונה מההגדרות ברירת המחדל (היכן שתרצו, יש כאלו שישמו ב-opt/, אחרים ישימו ב-home/user/ שלהם, או כל מקום אחר). חשוב שבזמן העברת האפליקציה לשרת, תהיה מחיצת logs ששרת ה-Apache יכתוב לוגים של שגיאות וכניסות אליה. יש לוודא כי ההרשאות למחיצה אינן כתיבה/קריאה/הרצאה לכל העולם ואחותו (777), אלא משהו באזור ה-755 (כתיבה/קריאה/הרצאה לבעלים, השאר קריאה והרצה).

כעת נגדיר לנו שרת וירטואלי בשרת ה-Apache שהוא יהיה זה שיהיה אחראי על האפליקציית Web שלנו. קובץ הקונפיגורציה (נקרא לו לשם הדוגמא web.conf) ישב במחיצה etc/httpd/conf.d/ ב-Centos או etc/apache2/sites-available/ באובונטו). מה יהיה בתוך אותו קובץ? את הטקסט הבא

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/web/www/myblog
ServerName mydomain.com
ServerAlias www.mydomain.com
ErrorLog /var/web/www/logs/blog-error-log
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
CustomLog /var/web/www/logs/blog-access_log combined
</VirtualHost>

נעבור על השורות:

  • שורה ראשונה אומרת לשרת הוירטואלי של אפאצ’י להאזין לפורט 80
  • בשורה שניה אנו מגדירים בעצם מי מקבל את הדואר על האתר הזה.
  • שורש שלישית אומרת מהו בעצם מחיצת ה”שורש” שבו תשב אפליקציית ווב או הדפים שלנו
  • שורה רביעית אומרת מה שם ה-Domain שקנינו ואיתו אנו משתמשים
  • שורה חמישית נותנת לנו כינוי נוסף לשרת שלנו (אותו שם עם תוספת WWW בהתחלה)
  • שורה שישית אומרת להיכן יכתבו השגיאות, אם יש.
  • שורה שביעית אומרת איך בעצם יורכב הלוג של הגישה ומה בעצם יכתב באותו לוג מהפרטים שהדפדפנים של הגולשים נותנים בתוספת פרטים כמו שעה, כתובת IP וכו’.
  • שורה שמינית אומרת להיכן יכתב לוג הגישה ובאיזו צורה הוא יכתב
  • שורה תשיעית מסיימת את הגדרות השרת וירטואלי

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

משתמשי אובונטו, לאחר שהגדירו את הקובץ, יצטרכו להוסיף לינק לקובץ אל תוך etc/apache2/sites-enables/

לאחר שהגדרנו את הקובץ, נפעיל את שרת ה-Apache מחדש: service httpd restart ב-CentOS או service apache2 restart באובונטו. לאחר ההפעלה אם לא התקבלו שגיאות בטרמינל, נוכל לבדוק אם יש שגיאות בקובץ ה-Log הראשי של השרת שנמצא ב-var/log/httpd/error_log. סביר להניח שיופיעו שם מס’ אזהרות שונות, אולם אם יש שגיאה שהשרת לא יכל לכתוב או ליצור קבצי Log לדוגמא, יש לתקן את הבעיה ולהפעיל את שרות apache מחדש.

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

192.168.1.10         mydomain.com

השורה הזו אומרת למחשב שלנו: אל תחפש באינטרנט מהי הכתובת ל-mydomain.com. מבחינתך הכתובת 192.168.1.10 זה mydomain.com (הכתובת הזו אמורה להיות כתובת ה-IP של השרת שלכם ו-mydomain.com אמור להיות שם הדומיין שרכשתם). בלינוקס הקובץ  הוא etc/hosts/ וב-Windows הקובץ הוא: c:windowssystem32driversetchosts. שנו את הקובץ ושמרו (משתמשי Windows: יש להשתמש בעורך טקסטים כמו Notepad ולהקפיד לבחור “שמור” ולא “שמור בשם”, אחרת העורך יוסיף את הסיומת txt. והקובץ יקרא hosts.txt וזה לא יעבוד).

לאחר ששמרנו, נפתח דפדפן ונגלוש לכתובת שרכשנו וכתבנו ב-hosts לפי השם, כלומר צריך להזין את הכתובת: http://mydomain.com (רק שבמקום mydomain.com יש לרשום את שם הדומיין שרכשתם כמובן). אם הכל תקין, אתם תקבלו בדפדפן את האתר שלכם. ברכותיי, עברתם את החלק העיקרי! תנו לעצמכם טפיחה על השכם!

עכשיו הגיע הזמן להגדיר באמת שם המתחם שרכשתם שיגיע אליכם ולשם כך יש לעשות מס’ צעדים.

במאמר הקודם המלצתי לפתוח חשבון ב-zoneedit. אם לא פתחתם שם חשבון, פתחו עכשיו והזינו שם את שם המתחם שרכשתם. לאחר ההזנה תקבלו 2 שמות של ns records וכתובת ה-IP שלהם שאותם תצטרכו להזין באתר רישום שם המתחם שרכשתם: היכנסו לאתר שמשם רכשתם את שם המתחם שלכם, וחפשו הגדרות name servers. שנה את הפרטים שם לפי הפרטים שנתן לכם שרת zoneedit. השינוי אמור לחול תוך 24-48 שעות אבל כיום השינוי בד”כ נעשה תוך שעה שעתיים, אם כי יש תמיד שרתים שלוקח להם זמן להתעדכן (עד 48 שעות).

כעת ניכנס שוב ל-zoneedit ונבקש להוסיף A record. ב-zoneedit בחרו את השם מתחם שלכם ובחרו IP Address (האפשרות הראשונה משמאל. השרת מבקש שם וכתובת IP, אנחנו נוותר על השם ונכניס את כתובת ה-IP שספק האינטרנט שלנו נתן לנו. כיצד נדע מהי הכתובת שלנו? פשוט: היכנסו לאתר whatismyip ושם בגדול תופיע לנו כתובת ה-IP שלנו. העתיקו כתובת זו ל-zoneedit לשדה ה-IP ואשרו. zoneedit יבינו לבד שזו כתובת האתר שלכם ויציעו לכם הוספה של www אופציונאלית, כך שגם גלישה עם www תגיע לאתרכם. אשרו זאת. במזל טוב, מעכשיו מי שיגלוש לכתובת התחום שלכם יגיע אל אתרכם (בכפוף לעדכוני ה-DNS שעשיתם אצל רשם שם המתחם שלכם)…

כמעט..

יש מישהו שחוסם את כל העולם ואחותו להנות מזיו אתרכם המדהים, וזהו הראוטר בביתכם שבברירת המחדל שלו חוסם כניסה פנימה להכל. צריך לשנות אותו. פתחו דפדפן, ו”גלשו” לתוך כתובת הראוטר שלכם (זה יכול להיות http://10.0.0.138 או http://192.168.1.1 או http://192.168.2.1 , עיינו בחוברת הראוטר), וחפשו שם פונקציה של Port Forwarding. הפונקציה הזו אומרת לראוטר שמעתה, כל מי שינסה להגיע אל כתובת ה-IP שלכם בפורט 80, יגיע אל השרת הקטן שלכם שמארח את אתרכם. כל מה שיש לעשות הוא להגדיר שם פורט 80 ב-TCP וכתובת היעד היא כתובת ה-IP של השרת שלכם. ב-Linksys זה נראה כך:

firewall-rule לאחר שתגדירו את הפורט, שמרו את ההגדרות. אצל חלק מהראוטרים הם יבקשו להפעיל את עצמם מחדש (כמו ראוטרים של Edimax). אשרו. (עדכון: ראוטרים מסויימים שבזק מוכרים [במיוחד של סימנס] לא יאפשרו למחשבים בתוך הרשת הפנימית הביתית לגלוש לאתר עצמו ובמקום זאת הם יציגו את דף הכניסה לראוטר. במקרים כאלו יש צורך במחשבים הביתיים להגדיר את כתובת ה-IP הפנימית במחשב הגולש ל-IP הפנימי של השרת)

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

עתה נותרה לנו בעיה קטנה ואחרונה: כתובת ה-IP שלכם היא כתובת דינמית, משמע שבכל פעם שהראוטר יופעל מחדש או שהראוטר “יחייג” מחדש אל ספק האינטרנט שלכם, תקבלו כתובת IP שונה, וצריך לעדכן את zoneedit בכתובת החדשה שלכם.

לשם כך נשתמש בתוכנה על השרת לינוקס הנקראת ddclient. התקינו אותה (apt-get install ddclient באובונטו, yum install ddclient ב-CentOS). לאחר ההתקנה, יש צורך כמשתמש root לערוך את הקובץ etc/ddclient/ddclient.conf/ ושם חפשו את החלק שנקרא ZoneEdit. נשנה אותו לפי הצורך. הנה דוגמא:

##
## ZoneEdit (zoneedit.com)
##
server=www.zoneedit.com,               
protocol=zoneedit1,                    
login=MyUser,          
password=Mypassword
www.mydomain.com, domain.com

נשנה את הפרמטרים בהתאם (שם משתמש, סיסמא, שם תחום) ונפעיל את השרות: service ddclient restart ולאחר מס’ שניות הסקריפט של ddclient יעדכן אוטומטית את zoneedit בכתובת החדשה שברשותנו. ddclient ימשיך לרוץ בשרת ברקע ומדי מס’ דקות הוא יבדוק האם כתובת ה-IP שלנו שונתה או לא. אם כן, הוא יעדכן שוב את zoneedit. אם לא, הוא לא יבצע כלום וימשיך לנטר את הכתובת IP שלנו.

סיימנו. מעתה כל מי שיקבל את כתובת התחום שרכשת יוכל לגלוש לאתרך מבלי שתצטרך לשלם לספק אתרים מארח.

עתה מגיע החלק של האזהרות (לא חשבתם שתתחמקו מזה, נכון? 🙂 )

  • לא כולם נחמדים. מהרגע שהאתר שלך פתוח לעולם, יהיו מי שיגלשו וישמחו להפיל לך את האתר, להעתיק את החומר או למחוק את השרת. אינך יודע אף פעם מי הילד המשועמם וחסר חיים שמחפש להפיל את אתרך סתם כך בשביל הכיף. מה שאתה צריך לעשות, הוא לדאוג שרישוי הקבצים הוא מספיק לצרכים של שרת ה-Web שלך ולצרכיך ותו לא. עליך לבדוק מבחינת הקוד שלך שאינך משאיר כל מיני “חורים” שדרכם אפשר להכניס משאית ולהרוס את אתרך.
  • גרפיקה כבדה – לא באתרך. זה מאוד נחמד שאתה רוצה לשתף תמונה של כל ה”משפוחה” בטיול לבניאס עם קבצים בגודל 8 מגהבייט כל תמונה, אבל כך לא רק שהאתר שלך לא יגיב, גם הגלישה שלך תהיה איטית בטירוף. הגלישה באינטרנט בארץ היא אסינכרונית, כלומר כשמישהו גולש לאתר שלך, אתה מפסיד מהירות גלישה. רוצה לשים תמונות גדולות, קבצי פלאש גדולים וכו’? ארח את הקבצים האלו באתר חיצוני (כמו Google Sites) ותן לינק קישור לקובץ שנמצא בחוץ, כך אחרים יוכלו לקבל את הקבצים הגדולים במהירות ואתה לא תסבול מאיטיות.
  • אם רוב הצופים של אתרך הם מחו”ל, הם יקבלו אתר איטי, לפעמים מאוד איטי, כי מה לעשות: שרתים שנמצאים אצל ספק האינטרנט מספקים תעבורה הרבה יותר מהירה מהשרת שלך שנמצא במרתף ושמחובר ל-ADSL. אם רוב הגולשים לאתרך הם מחוץ לישראל, אולי כדאי שתיקח לך חבילת אירוח זולה בחו”ל ותדלג על העניין של שרת בבית.
  • כדאי תמיד להשתמש בדחיסה. אם אתה מפתח את האתר שלך, כדאי לבנות או להשתמש במגנוני Cache או להשתמש בדחיסה (כל הדפדפנים המודרניים תומכים בכך כיום), כך רוחב הפס שיצטרך האתר שלך יופחת משמעותית בהשוואה לגלישה באתר ללא Cache וללא דחיסה.

בהצלחה