אולי רבים ממשתמשי GNU/Linux לאור יוזמות ממשלתיות אחרונות ליצירת אינטרנט "ריבוני", אנו מודאגים מהמטרה להגן על עצמנו במקרה של אי זמינות של מאגרים של הפצות GNU פופולריות.Linux.
מי מוריד את המאגרים? CentOS, Ubuntu, Debian, יש אנשים שבונים הפצות משלהם על סמך הפצות קיימות, בעוד שאחרים מצוידים בספרי LFS (Linux מאפס) ו-BLFS (מעבר Linux (From Scratch) כבר החל ללקט את ההפצות שלו מקוד המקור, מכיוון שהוא מאמין שבתנאים של אינטרנט "ריבוני", התקפות האקרים, מגפות וירוסים, דליפות נתונים יתרחשו באופן בלתי נמנע, וקבצים בינאריים פשוט יהפכו למיושנים לאחר זמן מה.
לאחרונה התחלתי לקמפל מכונה וירטואלית לחלוטין מקוד המקור באמצעות ההוראות בספר. Linux מהדורת Systemd של From Scratch גרסה 8.3. אני להוט לשתף אתכם בתוצאות.
תהליך ההרכבה Linux
תהליך ההרכבה Linux מקוד המקור ניתן לחלק לשלושה שלבים:
- סביבת בנייה של LFS מורכבת על בסיס מערכת ההפעלה הקיימת.
- סביבת הבנייה תבנה תמונה של המכונה הוירטואלית LFS.
- חבילות נוספות מהספר BLFS שאינן בספר LFS מותקנות במחשב הוירטואלי.
קבצי סקריפט סטטיים
בעבודה עם סביבת ה-build, נוח להשתמש בלוח וב-SSH: העתקתי את הפקודות מהספר והדבקתי אותן בקונסולת ה-building.
לאחר השקת המכונה הוירטואלית שנוצרה, הופיעו בעיות חמורות. שלא כמו חלון מסוף, אינך יכול להדביק קוד בחלון לקוח של מחשב וירטואלי. הקלדת פקודות באמצעות המקלדת אינה נוחה וקיים סיכון גבוה לשגיאות הקלדה. הסכנה בשגיאות הקלדה היא שהן לא יופיעו מיד, אלא לאחר זמן מה ויובילו לבעיות חמורות.
ידוע שניתן להזין פקודות לא רק מהמקלדת אלא גם מהזרם הסטנדרטי (STDIN). המקור של הזרם הסטנדרטי יכול להיות יציאה טורית, כמו גם התוצאה של תוכנית הסקריפט, מה שנקרא פלט סטנדרטי (STDOUT).
אנשים רבים יודעים שהפקודה wget יכולה להוציא את התוכן של קובץ שהורד לפלט סטנדרטי (STDOUT):
wget http://example.com -O -אם הפלט של הפקודה wget נשלח למתורגמן, ניתן להפעיל קוד שרירותי. הקוד יתבצע כאילו הוקלד על המקלדת או הועתק מהלוח:
wget http://umvirt.com/linux/helloworld.sh -O - | bashבדרך זו, תוכל למקם קבצים עם פקודות בשרת אינטרנט כלשהו ולשלוח את תוכנם למתורגמן.
קבצי סקריפט דינמיים
קבצים סטטיים הם דבר טוב, כמובן, אם אתה יודע בדיוק מה צריך לעשות, אבל אם חבילה מותקנת, אם התלות לא מותקנות בבירור או לא, מה אז?
האתר הדינמי שמבוסס עליו מגיע לעזרה שרת אינטרנט LAMP (Linuxאם אתר יכול ליצור באופן דינמי דפים (קבצי HTML) ותמונות, אז הוא אמור להיות מסוגל להתמודד עם קבצי טקסט רגילים.
וכך זה קרה. כתב את האתר אשר יוצר סקריפטים עבור מתורגמן Bash. מסד הנתונים של האתר מכיל מידע על חבילות, תלות, תיקונים, תוספות ופקודות build.
כעת כדי להתקין את חבילת mc (midnight commander) אתה יכול להזין את הפקודה:
wget --no-check-cerificate https://umvirt.com/linux/packages/0.1/mc/install -O - | bashסקריפט האתר עצמו יקבל נתונים ממסד הנתונים ויפיק קוד בדיקת תלות וקוד סקריפט להתקנת החבילה. המתורגמן יעבד את ההוראות מהתסריט.
כדי לאפשר זאת, מידע על חבילות מותקנות מאוחסן במסד נתונים בדיסק המכונה הוירטואלית.
מסד הנתונים של החבילות המותקנות נמצא בספרייה /var/cache/ulfs-packages היא רשימה של קבצים ריקים עם שמות התואמים את שמות החבילות.
אם החבילה לא נמצאת במסד הנתונים, התלות מותקנות באופן רקורסיבי.
ציוד
כדי להפוך את התקנת החבילות לנוחה יותר, אתר אחר כתב את סקריפט השימפנזה , באמצעות הבסיס חבילות UmVirt LFS. המשימה העיקרית עוזר LFS של UmVirt - זהו ביצוע פקודות אחרות.
עם שימפנזה, התקנת חבילות הופכת לקלה עוד יותר:
chimp install mcהפגנה
היכרות עם עבודת השירותים חבילות UmVirt LFS и עוזר LFS של UmVirt אתה יכול להוריד את תמונת הבסיס . התקן את Xorg באמצעות פקודה אחת:
chimp install Xבזמן שהסקריפט פועל, 141 חבילות יותקנו אוטומטית. כדי לחסוך זמן הידור, אתה יכול להחליף את הערך של המשתנה MAKEFLAGS בקובץ /etc/profile מ-"-j1" (שרשור אחד) ל-, למשל, "-j6" (שישה אשכולות).
ביזור והתאמה אישית
למטרות הבטחת אבטחה, אוטונומיה והתאמה אישית, קוד המקור של חבילות UmVirt LFS ושירותי UmVirt LFS Assistant מתפרסם בנחלת הכלל. כל אחד יכול להוריד אותו, לפרוס אותו ולשנות שירותים בתוך התשתית שלו.
מקור: www.habr.com
