Linux မှာ Software Installation လုပ်ခြင်း၏ သဘောသဘာဝ

Linux မှာ software တွေကို package များဖြင့် ဖွဲ့စည်းထားပါတယ်။ ထို့ကြောင့် Linux မှာ software installation လုပ်ခြင်းကို package installation လုပ်တယ်ခေါ်ပါတယ်။ Linux ဟာ library files တွေကို share လုပ်သုံးတာကြောင့် package တွေဟာ တစ်ခုပေါ်တစ်ခု ဆက်နွယ်မှီခိုနေကြတယ်။ package A ကို install လုပ်ဖို့အတွက် package B ကိုလိုတယ်။ package B ကလဲ နောက်ထပ် package C လိုတယ်။ package C သည်လည်း package A နှင့် အခြားသော package D,E,F ကို လိုအပ်တယ်။ ဒီလို တစ်ခုပေါ်တစ်ခု ဆက်နွယ်မှီခိုနေခြင်းကို package dependencies လို့ခေါ်ပါတယ်။ ထို့ကြောင့် package တစ်ခုကို installation လုပ်မည်ဆိုလျင် ၎င်း package အတွက် လိုအပ်တဲ့ dependencies တွေကိုလည်း တစ်ခါတည်း installation လုပ်ဖို့ မဖြစ်မနေလိုအပ်ပါတယ်။ ကိုယ့်ကွန်ပျူတာမှာ ဘာ dependencies တွေလိုနေမှန်းမသိဘဲ package တွေကို download လုပ်လာပြီး တင်ကြည့်လျင် unmet dependencies ဆိုပြီး error ဖြစ်ပါလိမ့်မယ်။

package များကို အမျိုးအစားခွဲရင် အဓိကအားဖြင့် နှစ်မျိုးတွေ့ရပါတယ်။ .deb နှင့် .rpm ဆိုပြီး နှစ်မျိုးတွေ့ ရပါတယ်။ နာမည်အရှည်အနေနဲ့ဆိုရင် deb ဆိုတာ (debian) နဲ့ rpm က (red hat package managment) တို့ဖြစ်ပါတယ်။ ဒီ package system နှစ်ခုပေါ်အခြေခံပြီး linux OS တွေဟာ အမျိုးအစားတွေ ဖြန့်ကွဲသွားကြပါတယ်။ အင်္ဂလိပ်လိုပြောရင် distribution ဖြစ်သွားတယ်ပေါ့။ အဲ့ကနေ linux distro များဆိုပြီး ရေးကြပြောကြတာပါ။

သက်ဆိုင်ရာ linux distro အလိုက် packages တွေကို တင်ထားပေးတဲ့ ftp server တွေရှိပါတယ်။ Linux မှာ ဒါကို repository လို့ခေါ်ပါတယ်။ အဖျားဆွတ်ပြီး repo လို့လဲ အတိုကောက် ခေါ်ကြပါတယ်။ ၎င်း repo တွေမှာ ရနိုင်မယ့် package တွေကို စာရင်းဇယားအတိအကျနဲ့ တင်ထားပါတယ်။ ဘယ် package တွေကို ဘယ် server ကနေ download ရနိုင်သလဲဆိုတဲ့စာရင်း ဖြစ်ပါတယ်။ source list ဟု ခေါ်ပါတယ်။ package တွေကို version အသစ်တွေ အမြဲပြောင်းလဲတင်ပေးနေတဲ့အတွက်ကြောင့် source list ဟာလဲ အမြဲပြောင်းလဲ နေပါတယ်။

ထို့ကြောင့် linux OS တွေမှာ package တစ်ခုခုကို download လုပ်ချင်တာပဲဖြစ်ဖြစ် install လုပ်ချင်တာဘဲ နောက်ဆုံး update ဖြစ်တဲ့ source list ကို ရယူဖို့လိုပါတယ်။ တနည်းအားဖြင့် repo တွေမှာရနိုင်မယ့် package database ကို ထည့်သွင်းဖြစ်ပါတယ်။ အတိုကောက် repo သွင်းတယ်လို့ ခေါ်ကြပါတယ်။

Source list က Linux OS ကို install ပြုလုပ်စဉ်ကတည်းက ပါလာပြီးပါ။ ဒါပေမယ့် up to date မဖြစ်ပါဘူး။ ဒါကြောင့် တစ်စုံတစ်ခုကို install ပြုလုပ်ဖို့ လိုအပ်လာတိုင်းမှာ ဒီစာရင်းတွေကို update ပြုလုပ်ရတာဘဲဖြစ်ပါတယ်။ source list က အမြဲပြောင်းနေတော့ အမြဲ update ဖြစ်နေအောင် လုပ်ပေးနေရတဲ့သဘော ဖြစ်ပါတယ်။ ဒါကြောင့်လဲ ကိုယ် install လုပ်လိုတဲ့စက်ဟာ အင်တာနက်အဆက်အသွယ် ရှိမှကို ရမယ့်သဘောဖြစ်လာပါတယ်။

Package တွေကို offline သုံးလို့ရအောင် download လုပ်ထားတဲ့ အခါမှာ အဆင်မအဆင်မပြေမှုတွေရှိလာပါတယ်။ ဘာကြောင့်လဲဆိုတော့ ဥပမာအားဖြင့် download လုပ်ထားတဲ့ package A ရဲ့ version က 2.2.1 ဆိုကြပါတော့။ ဒီ package သည် အခြားသော package ငါးခုလောက်ပေါ် မှီခိုနေတယ်။ ဒီ အခြား packages ငါးခုကလည်း နောက်ထပ် packages များပေါ် အသီးသီး မှီခိုမှုရှိနေကြမယ်။ package (က) ရဲ့ version က 2.2.1 ကနေ 2.2.2 သာ ဖြစ်သွားခဲ့ရင် အခြားသော package တွေဟာလဲ ဆင့်ကဲ ဆင့်ကဲ version အမြင့်တွေ လိုက်ဖြစ်ရမယ်။ လိုက်ထည့်ပေးမှ ရမယ်။ အချို့ package များကလဲ လိုက်မြင့်စရာ မလိုဘဲ ဆက်ပြီး အလုပ်လုပ်နိုင်မယ်။ တစ်ခုလေး အချိန်အပြောင်း ဖြစ်ရင်တောင် နောက်က လိုက်ထည့်ရမယ့် package က သုံး လေးခု ဖြစ်နေနိုင်တယ်။ ပုံမှန် linux OS Desktop GUI version မှာ ဆိုရင် package က မပါဘူးဆိုရင်တောင် အနည်းဆုံး ၁၀၀၀ ကျော်လောက်ပါပါတယ်။ ဒီ ၁၀၀၀ ကျော်လောက်ရဲ့ ဘယ်ဟာ ဘာလိုတယ်။ ဟိုဟာက ဟိုဟာလိုတယ် ဆိုတာတွေကို ပြေလည်အောင် ဖြေရှင်းဖို့ဆိုတာက manually လုပ်ဖို့ကတော့ မလွယ်ပါဘူး။ ဒါကြောင့် package database တွေထားပြီး auto ဖြေရှင်းပေးဖို့ package manager များ ပါရှိခြင်းဖြစ်ပါတယ်။ ဒါကြောင့် ကိုယ့်စက်ရဲ့ package lists နဲ့ မကိုက်ညီဘဲ packages တွေကို ဇွတ်အတင်း install မလုပ်ရပါဘူး။ လုပ်ရင် unmet dependencies ဆိုပြီး error တတ်ပါလိမ့်မယ်။

တစ်ခါတစ်ရံ မှာ package database ကိုယ်တိုင်က error တတ်နိုင်ပါသေးတယ်။ source list update လုပ်နေစဉ်မှာ ရပ်လိုက်ခြင်း အင်တာနက်ကော်နက်ရှင် ပြတ်တောက်သွားခြင်း အစရှိသည် ဖြင့် အမျိုးမျိုးဖြစ်နိုင်ပါသေးတယ်။ အဲ့ကျရင် package manager တွေတောင် အလုပ်မလုပ် တော့ပါဘူး။ အဲလိုအခါမျိုးကျရင် စာရင်းတွေအကုန်လုံးကို ဖျက်ပစ်လိုက်ပြီး အသစ်ထပ်ယူရပါတယ်။ အဲအခါကျရင် source.list ဖိုင်မှာပါတဲ့အတိုင်း တစ်ခါထပ်ပြီး package database တွေကို တစ်ခါ download လုပ်ပြန်ပါတယ်။ package database နဲ့တင် 100MB လောက်ရှိပါတယ်။ packages တွေအကုန်ဆိုရင်တော့ DVD ၁၅ ချပ်စာလောက်ရှိမယ်လို့ ဖတ်ဖူးတယ်ဗျ။ အကုန် download လုပ်ထားနိုင်ရင်တော့ offline repo လုပ်လို့ရပြီဗျ။ ရှိသလောက်လေးနဲ့လည်း ကိုယ်ပိုင် repo လုပ်လို့ရပါတယ်။ up to date ကတော့ လုပ်တဲ့နေ့အထိဘဲ ဖြစ်မှာဖြစ်ပါတယ်။

အင်တာနက်ချိတ်ဆက်ထားမှုမရှိရင် သို့မဟုတ် အရမ်းနှေးတယ်ဆိုရင် Linux OS မှာ အသုံးချ ဆော့ဖ်ဝဲလ်တွေသွင်းတဲ့လုပ်ငန်းစဉ်ဖြစ်တဲ့ package install လုပ်တဲ့ အလုပ်ကို လုပ်ရတာ အဆင်မပြေ ဘူး။ package တွေဟာ တစ်ခုနဲ့တစ်ခု မှီခိုနေကြတဲ့အတွက် တစ်ခုခုကို install လုပ်ချင်ရင် အဲ့ဒီ့ package လိုနေတဲ့ နောက်ထပ် package မရှိဘဲ install လုပ်လို့ရလိမ့်မယ် မဟုတ်ဘူး။ ရရင်လဲ အလုပ်လုပ်မှာ မဟုတ်ဘူး။ ဒီလို တစ်ခုပေါ်တစ်ခုမှီခိုနေတဲ့ဖြစ်စဉ်ကို dependencies လို့ခေါ်တယ်။

Leave a Reply