ለማንኛውም ፍላጎት ላለው ገንቢ (ወይም በአጠቃላይ ቴክኒካዊ ለሆነ ሰው) በጣም አስፈላጊ ከሆኑት ተግባራት መካከል አንዱ ኮምፒዩተራቸውን ልክ እንደ አንድ የማበልጸጊያ አካባቢ በማቀናበር የድር ጣቢያዎችን፣ የድር አፕልኬሽኖችን እና ሌሎች ሶፍትዌሮችን ለማበልጸግ ተስማሚ እንዲሆን ማድረግ ነው፡፡ በማበልጸጊያ አካባቢ ላይ መሰረታዊ እውቀትን ለማግኘት የሚያስፈልገውን ተማር፣ ሁሉንም አስፈላጊ ቁሳቁሶች በአንድ ቦታ ላይ በማስቀመጥ ዋናውን የበቂ ተማር ተከታታይ የስልጠና ትምህርትን እና የሩቢ ኦን ሬይልስ ስልጠናን ለማሟላት የተቀየሰ ነው፡፡
ይህ የስልጠና ትምህርት የተለያየ ደረጃ ልምድ ላላቸው እና የተካኑ አንባቢያን ላይ ኢላማ ያደረገ፣ አንድ የማበልጸጊያ አካባቢን ለማዘጋጀት የተላያዩ አማራጮችን ይሸፍናል፡፡ በክፍል 2 ውስጥ የሚታየውን አማራጪ ለመጠቀም ከወሰናችሁ፣ አጠቃላይ የሆነ የኮምፒዩተር ዕውቀት ከመኖር በስተቀር፣ ይህንን የስልጠና ትምህርት ለማጠናቀቅ የሚያስፈልግ ምንም አይነት ቅድመ ዝግጅት አያስፈልጋችሁም፡፡ በክፍል 3 ውስጥ ያለውን (አብዛኛዎቹ አንባቢያን አንድ ወቅት ላይ እንዲሞክሩት ምክሬን የምለግስበትን) በጣም ፈታኝ የሆነውን መዋቅር ተግባራዊ ለማድረግ ከፈለጋችሁ፣ (በማበልጸጊያ አካባቢ ላይ መሰረታዊ እውቀትን ለማግኘት የሚያስፈልገውን ተማር ላይ እንደተሸፈነው) ከዩኒክስ የማዘዥያ መስመር ጋር አንድ መሰረታዊ የሆነ ትውውቅ ሊኖራችሁ ይገባል፤ እንዲሁም (በጽሑፍ አርታኢ ላይ መሰረታዊ እውቀትን ለማግኘት የሚያስፈልገውን ተማር ላይ እንደተሸፈነው) ከአንድ የጽሑፍ አርታኢ እና አንድ ስርዓትን ከማዋቀር ጋር ትውውቅ ሊኖራችሁ እንደሚገባ ይመከራል፡፡
የዚህ የስልጠና ትምህርት የኢ-መጽሐፍ ስሪቶች በበቂ ተማር ላይ በነጻ ይገኛሉ።
በዚህ የስልጠና ትምህርት ውስጥ የምናተኩረው፣ የሚከተሉትን አራት መሰረታዊ የሶፍትዌር ማበልጸጊያ መሳሪያዎችን በመጫን ወይም በማንቃት ላይ ይሆናል (ምስል 1):-
እነዚህ የተለያዩ የሶፍትዌር አይነቶች ላይ የበለጠ መረጃን ለማግኘት ከፈለጋችሁ በማዘዥያ መስመር ላይ መሰረታዊ እውቀትን ለማግኘት የሚያስፈልገውን ትምህርት ተማር፣ በጽሑፍ አርታኢ ላይ መሰረታዊ እውቀትን ለማግኘት የሚያስፈልገውን ተማር፣ በጊት ላይ መሰረታዊ እውቀትን ለማግኘት የሚያስፈልገውን ተማር እና በሩቢ ላይ መሰረታዊ እውቀትን ለማግኘት የሚያስፈልገውን ተማር ላይ ተመልከቱ።
አንድ የማበልጸጊያ አካባቢን በማቀናበር ጊዜ፣ ሁለት የምንመክራቸው ዋና አማራጪ መንገዶች አሉ፤ እነሱም አስቸጋሪነታቸው እየጨመረ በሚሄድ ቅደም ተከተል መሰረት ተዘርዝረዋል:-
ስለዚህ ሁኔታ ልምድ የሌላችሁ ከሆነ፣ የደመና ቅ.ማ.አው ከሌሎቹ የቀለለ የማዋቀር ሂደት ስላለው፣ በሱ እንድትጀምሩ እንመክራለን (ክፍል 2)።
አንድ አፕልኬሽንን ለማበልጸግ ሲጀምሩ የደመና ቅ.ማ.አ አማራጩን መጠቀሙ በጣም ጥሩ ቢሆንም፣ መጨረሻ ላይ ግን በቤተኛ ስርዓተ ክወናችሁ ላይ ሶፍትዌሮችን ማበልጸግ መቻሉ በጣም አስፈላጊ ነው። አለመታደል ሆኖ፣ (ቴክኒካዊ ብልሃታችሁን የመጠቀም ሰፊ ዕድሉን ከዘነጋችሁ (ሳጥን 1)) አንድ ሙሉ በሙሉ ተግባራዊ የሆነ ቤተኛ የማበልጸጊያ አካባቢን ማዋቀሩ አንድ ፈታኝ እና ተስፋ የሚያስቆርጥ ሂደት ሊሆን ይችላል1፤ ይሁን እንጅ እሱን ማድረጉ ፍላጎት ላለው ለማንኛውም የቴክኒክ ባለሙያ አንድ አስፈላጊ የመተላለፊያ ስነ-ስርዓት ነው፡፡
ይህንን አስቸጋሪ ፈተና ለመቋቋም፣ በክፍል 3 ውስጥ ለማክክ.ስ (macOS)፣ ለሊኒክስ እና ለዊንዶውስ የቤተኛ ስርዓተ ክወናን እንዴት አድርገን እንደምናቀናብር እንመለከታለን፡፡
ቴክኒካዊ ብልሃት ማለት ቴክኒካዊ የሆኑ ችግሮችን በግል የመፍታት ችሎታ ማለት ነው። አንድ የማበልጸጊያ አካባቢን በመጫን አውድ ውስጥ፣ ይህ ማለት አንድ ነገር ከተበላሸ የስህተት መልዕክቱን መጎገሉን ማወቅ፣ አፕልኬሽኑን ማቆም እና አንድ አፕልኬሽንን (ማለት እንደ የማዘዥያ መስመር ቀፎ ያሉትን አፕልኬሽኖችን) እንደገና ማስጀመር እና እንደዛ ማድረጉ ነገሮችን ያስተካከለ መሆኑን ማየትን ያካትታል።
ብዙውን ጊዜ ለችግሩ አጠቃላይ የሆነ አንድ መፍትሔ ስለማይገኝ፣ አንድ የማበልጸጊያ አካባቢን በማቀናበር ወቅት ብዙ ነገሮች ወዳልተጠበቀ ስህተት ሊያመሩ ይችላሉ። (ሁሉም ነገር እስኪሰራ ድረስ ቴክኒካዊ ብልሃታችሁን መጠቀሙን መቀጠል ይኖብባችኋል፡፡ ችግሩ አልወጣም ካላችሁ ግን ስለሱ ብዙ ልትጨነቁ አይገባም።) ይህ ነገር በሕይወት ዘመናችን ውስጥ በአንድ ወቅት በሁላችንም ላይ ተከስቷል ወይም ሊከሰት ይችላል።
ካሉት የማበልጸጊያ አካባቢ አማራጮች ሁሉ በጣም ቀላሉ የማበልጸጊያ አካባቢ የደመና ቅ.ማ.አው (cloud IDE) ነው፣ ይህም እናንተ የመረጣችሁትን የድር አሳሽ በመጠቀም የምትደርሱበት አንድ በደመና ውስጥ የተቀናጀ የማበልጸጊያ አካባቢ ነው። ለማግበር ቀላል ቢሆንም፣ ከዚያ የሚገኘው ስርዓት ግን አንድ የቁም ነገር ደረጃ ያለው የማበልጸጊያ ኮምፕዩተር ነው እንጅ አንድ ተራ መጫወቻ አይደለም። በተጨማሪም፣ እሱን ለመጠቀም የሚያስፈልጋችሁ አንድ ተራ የድር አሳሽ ስለሆነ (ማለት ይህንን ማንኛውም ስርዓተ ክወና ስለሚያቀርበው)፣ የደመና ቅ.ማ.አው በሁሉም ስርዓተ-መሳርያ ላይ በራስሰር ይሰራል።
አንድ የደመና ቅ.ማ.አን ለማስኬድ የሚያገለግሉ በርካታ የንግድ/የሚከፈልባቸው አማራጮች አሉ፣ የ ሩቢ ኦን ሬይልስ ስልጠናን ለመገንባት የአማዞን የድር አገልግሎቶች አካል ከሆነው ከክላው9 ጋር ተሻርከናል። ከዚያ የሚገኘው ውጤትም አንድ ለሩቢ ኦንሬይልስ የድር ማበልጸጊያ የሚስማማ አካባቢ ነው፣ በእርግጥ በክፍል 1 ውስጥ የተጠቀሱትን ሁሉንም ነገሮች ያካትታል፡፡ በተለይም በምስል 2 ላይ እንደሚታየው፣ የአ.ድ.አ ክላውድ9‘ኑ (AWS Cloud9) አንድ የማዘዥያ መስመር መናኸሪያን እና አንድ የጽሑፍ አርታኢን (አንድ የፋይል ስርዓት ዳሳሽን አካቶ) ሰንቆ ይመጣል፡፡ እያንዳንዱ የክላውድ9 የመስሪያ ቦታ አንድ ሙሉ በሙሉ የሚሰራ የሊኒክስ ስርዓትን ስለሚሰጥ፣ የጊት የስሪት ቁጥጥር ስርዓትን፣ እንዲሁም የሩቢን እና የሌሎች በርካታ የፕሮግራም ቋንቋዎችን በራስሰር ያካትታል፡፡
የደመና የማበልጸጊያ አካባቢን፣ ጥቅም ላይ ለማዋል፣ የሚያስፈልጉት ሂደቶች የሚከተሉት ናቸው:-2
በሩቢ ኮድን ለመጻፍ፣ በአንድ የጽሑፍ አርታኢ ውስጥ፣ በያንዳንዱ ኮድ መሃል፣ የሁለት ክፍተቦታ (Space) መተው፣ ከሩቢ ልማዶች ውስጥ አንዱ ስለሆነ፣ እኔም የጽሑፍ አርታኢው፣ ነባሪውን የአራት ክፍተቦታ ከመጠቀም ይልቅ፣ የሁለት ክፍተቦታን ይጠቀም ዘንድ፣ የጽሑፍ አርታኢውን እንድትቀይሩት እመክራለሁ፡፡ በምስል 7 ላይ እንደተመለከተው፣ ከገጹ ራስጌ፣ በቀኝ በኩል የተመለከተውን ጥርሳማ ክብ አዶ ላይ ጠቅ በማድረግ፣ ከዛም በ “Soft Tabs” ቅንብር ላይ የተመለከተውን፣ የመቀነስ ምልክት “2” ቁጥር ላይ እስኪደርስ ድረስ ጠቅ በማድረግ፣ የተፈለገውን ውጤት ማግኘት ትችላላችሁ፡፡ (ይህ ቅንጅት በራስሰር ተግባራዊ ስለሚሆን “Save” የሚለውን አዝራር ጠቅ ማድረጉ አያስፈልግም፡፡)
$ git --version
# የስሪት ቁጥሩ ከ 2.28.0 ያልበለጠ ከሆነ የሚከተለውን ትእዛዝ አስኪዱ:-
$ source <(curl -sL https://cdn.learnenough.com/upgrade_git)
በመጨረሻም፣ ይህ ስልጠና የሩቢ ስሪት ቁጥር 2.7.4 ‘ን እንደ አንድ መስፈርት አድርጎ የሚጠቀም ስለሆነ፣ ይህንኑ መስፈርት እንደሚከተለው አድርጋችሁ በደመና ቅ.ማ.አው ላይ መጫን ትችላላችሁ:-
$ rvm install 2.7.4
(ይህ በደመና ቅ.ማ.አው ላይ ቀድሞ-ተጪኖ የሚመጣውን የሩቢ ስሪት አስተዳዳሪን ይጠቀማል።) አንዴ ትእዛዙ ከጨረሰ በኋላ፣ የሩቢ ስሪቱን እንደሚከተለው አድርጋችሁ ማረጋገጥ ትችላላችሁ:-
$ ruby -v
ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x86_64-linux]
(እንቅጩ የስሪት ቁጥር ከላይ ከምታዩት የስሪት ቁጥር ሊለይ ይችላል)
በዚህ ጊዜ ጨርሳችኋል! ክላውድ9‘ን ለመጠቀም የበይነመረብ መዳረሻ አስፈላጊ መሆኑን ልትገነዘቡ ይገባል።
በክፍል 1 ላይ እንደተጠቀሰው፣ ቤተኛ ስርዓተ ክወናችሁን ለአንድ የማበልጸጊያ አካባቢ ማዋቀሩ ፈታኝ ሊሆን ይችላል፣ ነገር ግን ይሄ ውቅረት አንድ የተወሰነ የቴክኒካዊ ዘመናዊነት ደረጃ ላይ ከደረሱ በኋላ መውሰድ የሚገባው አንድ እርምጃ ነው፡፡ ካሉት አማራጮች ውስጥ የደመና ቅ.ማ.አ አማራጩ ይህንን ስራ ለመጀመር በጣም ጥሩው መንገድ ነው፣ ነገር ግን በሬውን በቀንዱ በመያዝ ቤተኛ ክወናውን እንደምትፈልጉት መግራት ይኖርባችኋል (ምስል 8)5። (እዚህ ላይ በሬውን በቀንዱ ማያዝ አንድ የእንግሊዝኛ ፈሊጣዊ አነጋገር ሲሆን ትርጉሙ ደግሞ “አስቸጋሪ ሁኔታን በቀጥታ ወይም ራስን በመተማመን መቋቋም ወይም መግጠም” ማለት ነው።)
ክፍል 3.1 ማክስ.ክን (macOS) ወደ አንድ ሙሉ በሙሉ የታጠቀ የማበልጸጊያ አካባቢ መለወጥን የሚሸፍን ሲሆን፣ ክፍል 3.2 ደግሞ ለሊንክስ እንደዛው ያደርጋል፡፡ የማይክሮሶፍት ዊንዶውስ አማራጪን በክፍል 3.3 ላይ እንሸፍናለን፣ (በአጪሩ በክፍል 1 ላይ እንደተጠቀሰው) ይህ ክፍል ግን በአሁኑ ወቅት በክፍል 2 ውስጥ የተጠቀሰውን የደመና ቅ.ማ.አ አማራጩን ይመለከታል፡፡
ቤተኛው የማኪንቶሽ ስርዓተ ክወና በመጀመሪያ ማክ ኦኤስ ኤክስ (Mac OS X) ተብሎ ይጠራ ነበር፣ አሁን ግን ባጪሩ ማክኦኤክስ (macOS) ተብሎ ይጠራል፤ በአንድ ጠንካራ የዩኒክስ መሰረት ላይ ቢገነባም አንድ የተስተካከለ ስእላዊ የተጠቃሚ በይነገጽ (ስ.ተ.በ GUI) አለው፡፡ በዚህ ምክንያትም፣ ማክኦኤክስ (macOS) ለአበልጻጊወች ልክ እንደ አንድ የማበልጸጊያ አካባቢ ሁኖ ለማገልገል እጅግ ተስማሚ ሁኗል፡፡
በዚህ ክፍል ውስጥ ያሉት ሂደቶች አንድ አነስተኛ ስርዓትን ብቻ የሚመሰርቱ አይደሉም፤ በርግጥ ነው ስርዓቱን እናንተ ከዚህ ባነሰ መልኩ በመመስረት ባጪሩ ልትገላገሉ ትችላላችሁ፣ ነገር ግን ሶስቱም ደራሲዎቻችሁ ማክኦኤክስን ስለምንጠቀም እናንተን አንድ በደንብ ባልተሟላ መዋቀር መሸወዱ አስፈላጊ እንዳልሆነ ይሰማናል።
ምንም እንኳን ማክኦኤክስ ከአንድ ቤተኛ የመናኸሪያ ፕሮግራም ጋር አብሮ የሚመጣ ቢሆንም፣ እኛ ግን አይተርምን እንድትጪኑ እንመክራለን፣ ይህም ለገንቢዎች እና ለሌሎች የቴክኒክ ተጠቃሚዎች ከነባሪው መናኸሪያ የተሻለ እንዲሆን የሚያደርጉ የተለያዩ መሻሻሎችን ያካተተ ነው፡፡
እንዲሁም አንድ የአበልጻጊዎች የጽሑፍ አርታኢን እንድትጪኑ እንመክራለን። ብዙ ምርጥ የሆኑ ምርጫዎች ቢኖሩም የአተም አርታኢ ግን ለመጀመሪያ ጥሩ ምርጫ ነው፤ ማለት ቀድሞውን የምትወዱት አንድ የጽሑፍ አርታኢ ከለላችሁ ማለት ነው (ይህ የጽሑፍ አርታኢም በበጽሑፍ አርታኢ ላይ መሰረታዊ እውቀትን ለማግኘት የሚያስፈልገውን ተማር ላይ በደንብ ተሸፍኗል)።
ይህ በንዲህ እያለ፣ ለበቂ ተማሩ እና ለሬይልስ ማሰልጠኛ ትምህርት፣ ነባሪውን ማለት ዚ (Z) የተባለውን ቀፎ ከመጠቀም ይልቅ (ምንም እንኳን ብዙውን ጊዜ በሁለቱ መካከል ምንም ለውጥ ባይኖረውም) ቦርን-አጌይን የተባለውን ቀፎ እንድትጠቀሙ እንመክራለን። ቀፏችሁን ወደ ባሽ ለመቀየር፣ በማዘዥያ መስመሩ ላይ ይህንን chsh -s /bin/bash
ትእዛዝ አስኪዱ እና ከዚያ መሕለፈቃላችሁን ካስገባችሁ በኋላ የመናኸሪያ ፕሮግራማችሁን እንደገና አስጀምሩ። ይህንን በማድረግ የምታገኟቸውን የማስጠንቀቂያ መልዕክቶች ችላ ብላችሁ ብታልፏቸው የሚያመጡት ምንም ነገር የለም። ለበለጠ መረጃ በበቂ ተማር ብሎግ ልጥፍ ላይ “በበቂ ተማር የስልጠና ትምህርት ላይ የዚ ቀፎን በማክ ላይ መጠቀም” የሚለውን ተመልከቱ፡፡
ምንም እንኳን ማክኦኤክስ በዩኒክስ ላይ የተመሰረተ ቢሆንም፣6 ለአንድ የማበልጸጊያ አካባቢ አስፈላጊ ከሆኑት ሁሉ ሶፍትዌሮች ጋር ግን ተጪኖ አይሰደድም፡፡ ይህንን ለሟሟላት፣ የማክኦኤክስ ተጠቃሚዎች በአፕል የተፈጠሩ የማበልጸጊያ መሳሪያዎች እና የኮድ ቤተኮድ ስብስብ የሆነውን ኤክስኮድን (Xcode) መጫን ይኖርባቸዋል።
ቀደም ሲል ኤክስኮድ፣ አንድ ከ 4 ጌጋባይት በላይ የሆነ የምንጪ ፋይሎችን መጫኛን ማውረድ ይፈልግ ነበረ፣ ምስጋና ለአፕል ይሁን እና በቅርብ ጊዜ ዝርዝር 2 ላይ እንደሚታየው በአንድ ቀላል የማዘዥያ መስመር ኤክስኮድን መጫኑን እጅግ ፈጣን እና ቀላል አድርጎታል፡፡
$ xcode-select --install
ቀጣዩ ሂደት በምርጫ ሊደረግ የሚችል ነው፣ ነገር ግን በእኛ አመለካከት አንድ የባለ ሙያ ደረጃ ላለው እውነተኛ የማክኦኤክስ የማበልጸጊያ አካባቢ አስፈላጊ ነው ብለን እናምናለን፣ እሱም ግሩሙን የሆምብሬው (Homebrew) የጥቅል አስተዳዳሪን መጫን ነው።
አንድ የጥቅል አስተዳዳሪን ልክ በነጻ የክፍት-ምንጪ ሶፍትዌር እንደተሞላ እና በማዘዥያ መስመር እንደሚካሄድ የአፕልኬሽን ማከማቻ አድርጋችሁ ማሰብ ትችላላችሁ፡፡ በአሁኑ ጊዜ አብዛኛዎቹ የሊኒክስ ስርጪቶች ከአንድ ቤተኛ የጥቅል አስተዳዳሪ (ክፍል 3.2) ጋር አብረው ይመጣሉ፣ ይሁን እንጅ ማክኦኤክስ በነባሪነት ምንም የለውም፡፡ ሆምብሬው በክፍት-ምንጪ ማህበረሰብ ውስጥ ከሚገኙ ብዙ የጥቅል አስተዳዳሪዎች መካከል አንዱ ነው፣ ከጊዜ በኋላ ግን በብዙ የማክኦኤክስ ገንቢዎች መካከል በጣም ተወዳጅነትን ያተረፈ አማራጪ ሆኗል፡፡
በክፍል 3.1.5 ላይ እንደምናየው፣ ሩቢን ለመጫን አንድ የሩቢአካባ (rbenv) የተባለ ፕሮግራምን እንጠቀማለን፣ እሱም በክፍል 3.1.4 ውስጥ በሆምብሬው በኩል ይጫናል፡፡ ይህ በንዲህ እያለ ሆምብራው ራሱ ሩቢን ይፈልጋል፣ ስለሆነም አንድ የጥገኝነት ክብ ውስጥ የገባን ይመስላል። ደስ የሚለው ነገር ደግሞ፣ ማክኦኤክስ ጪነቱን በራሱ-የሚጀምር ሂደት አድርገን ልንጠቀምበት ከምንችልበት አንድ የሩቢ ስርዓት ጋር ተጪኖ መሰደዱ ነው፡፡ ሆምብሬውን ለመጫን ይህንን ነባሪ ሩቢ እንጠቀማለን፣ ከዚያ ከላይ እንደተጠቀሰው የሩቢአካባቢ‘ን እና ተጨማሪ የሩቢ ስሪቶችን እንጪናለን።
የሆምብሬው መጫኛ ፕሮግራሙ አንድ የባሽ ፕሮግራምሲሆን፣ በማዘዥያ መስመር ላይ መሰረታዊ እውቀትን ለማግኘት የሚያስፈልገውን ትምህርት ተማር ላይ እንደተሸፈነው ከርል (curl
) የተባለውን ፕሮግራም በመጠቀም ሊደረስበት ይችላል፡፡ በ‘/ቢን (/bin
) ማውጫ ውስጥ የሚገኘውን፣ የ‘ባሽ (bash
) ስርዓት ተፈጻሚን በመጠቀም፣ የሆምብሬው መጫኛ ፕሮግራምን ማስፈጸም እንችላለን። ሙሉው ትእዛዝ በዝርዝር 3 ላይ እንደሚታየው ይሆናል።
$ /bin/bash -c "$(curl -fsSL https://www.learnenough.com/homebrew.sh)"
ዝርዝር 3 ወቅታዊውን የሆምብሬው መጫኛ ፕሮግራምን የሚያመላክት አንድ የለርንኢነፍ.ኮም (learnenough.com) ማስተላለፊያ ዓ.አ.ሃ.አን (URL) እንደሚጠቀም ልታስተውሉ ይገባል። በዚህ መንገድ፣ ሆምብሬው ፕሮግራሙን ለማስተናገድ የሚያገለግለውን ዓ.አ.ሃ.አን ቢቀይረው እኛም የማስተላለፊያ አድራሻውን በቀላሉ ማዘመን እንችላለን፣ ስለሆነም ይህ የስልጠና ትምህርት ሁልጊዜ ወቅታዊነቱን እንደጠበቀ መስራቱን ይቀጥላል ማለት ነው። (ከፈለጋችሁ ደግሞ፣ ከሆምብሬው የመነሻ ገጽ ላይ የሚገኘውን ሙሉውን ትእዛዝ ቀድታችሁ በማዘዥያ መስመራችሁ ላይ መገልበጥ ትችላላችሁ።)
ሆምብሬው ጥቅሎችን ለመጫን፣ ለማዘመን እና ለማስወገድ የሚያገለግል አንድ ብሬው (brew
) የተባለ የማዘዥያ መስመርን ይጪናል። ሆምብሬው መጫኑን ከጨረሰ በኋላ፣ የሰፈር ፋይሎችን ለማስተዳደር በሆምብሬው የሚፈለጉ ሁሉም ማውጫወች እና ፈቃዶች በትክክል መዘጋጀታቸውን የሚያረጋግጠውን የ‘ብሬው ዶክተር (brew doctor
) ትእዛዝን ማስኬዱ አንድ ጥሩ ሀሳብ ነው:-
$ brew doctor
በዚህ ጊዜ የሆነ ችግር ካጋጠማችሁ በዊኪ የሆምብሬው መላ መፈለጊያ ላይ መጣቀስ ይኖርባችኋል፣ በእውነቱ ከሆነ ግን የስርዓት አቃፊዎችን በዘፈቀደ ካለወጣችሁ እና የፈቃድ ችግር ካላጋጠማችሁ በስተቀር ምንም አይነት ችግር ሊያጋጥማችሁ አይገባም።
ቀደም ሲል ማክኦኤክስ ሩቢ ጋር አብሮ ተጪኖ እንደሚመጣ ተመልክተናል፣ በስሪቱ እንቅጪ ቁጥር ላይ ግን ምንም አይነት የመቆጣጠር ሃይሉ የለንም፣ ማክኦኤክስም በቤተኛነት በርካታ የሩቢ ተጓዳኝ ስሪቶችን እንድንጠቀም አያስችለንም። የማበልጸጊያ አካባቢያችንን ልባችን እንደፈቀደው እንድናደርግ ያስችለን ዘንድ፣ የሩቢአካባቢን (rbenv) እንጪናለን። ይህም የተለያዩ የሩቢ ስሪቶችን የሚያስተዳድር እና የሩቢ የሶፍትዌር ጥቅሎችን (ማለት እንቁዎች (gems) ተብለው የሚጠሩትን) ሩቢ እንዲያገኛቸው በትክክለኛው ቦታ ላይ እንደተቀመጡ የሚያረጋግጥ አንድ መገልገያ7 ነው።
የሩቢአካባቢን ከ‘ሩቢ-ገንባ (ruby-build) ትእዛዝ ጋር አብሮ መጠቀሙ፣ ለተለያዩ የፕሮጀክት ማከማቻዎች አንድ የተለየ የሩቢ ስሪትን እንድንለይ ያስችለናል፤ ይህም በሶፍትዌር ብልጸጋ ላይ አንድ የተለመደ ተግባር ነው፡፡8 ለምሳሌ፣ አንድ የቆየ የፕሮግራም ስሪትን በትክክል ለማስኬድ አንድ የቆየ የሩቢ ስሪትን ሊፈልግ ይችላል። ይህ ማለት የሩቢአካባቢን በመጠቀም፣ ሌሎች ፕሮጀክቶቻችን እጅግ ወቅታዊ በሆነ አንድ የሩቢ ስሪት እያስኬድን፣ እንዲህ አይነቱን የቆየ አንድ ፕሮግራም ደግሞ በአንድ የቀድሞ የሩቢ ስሪት ማስኬድ እንችላለን ማለት ነው።
በሆምብሬው የሩቢአካባቢን መጫኑ እጅግ ቀላል ነው። በዝርዝር 4 ላይ እንደሚታየው ብሬው የሩቢአካባቢ ጫን‘ን (brew install rbenv
) በመጠቀም ሁለቱንም ማለት የሩቢአካባቢን እና ሩቢ-ገንባ‘ን (ruby-build) በአንድ ጊዜ መጫን እንችላለን፡፡
$ brew install rbenv # እንዲሁም ሩቢ-ገንባ`ን (ruby-build) በራስሰር ይጪናል።
ዝርዝር 4 መጫኑን ከጨረሰ በኋላ፣ በዝርዝር 5 ላይ እንደሚታየው አርቢአካባቢ አስጀምር‘ን (rbenv init
) በመጠቀም የሩቢአካባቢን በስራ ላይ ማዋል ይፈለግብናል፡፡
ማሳሰቢያ:- የዚኤስኤች (Zsh) ቀፎን የምትጠቀሙ ከሆነ፣ .zshrc
‘ን በ .bash_profile
መተካት ይኖርባችኋል። የበለጠ መረጃ ለማግኛት “በበቂ ተማር የስልጠና ትምህርት ላይ የዚ ቀፎን በማክ ላይ መጠቀም” የሚለውን ተመልከቱ፡፡
$ rbenv init
# የሚከተለውን ትእዛዝ በ ~/.bash_profile (የዚቀፎን የምትጠቀሙ ከሆነ ደግሞ
# በ ~/.zshrc ትእዛዝ ላይ ) በማያያዝ የሩቢአካባቢን (rbenv) በራስሰር ጫኑ:-
eval "$(rbenv init -)"
ዝርዝር 5 “እንደዚህ አይነት ፋይል ወይም ማውጫ የለም (No such file or directory.)” የሚል አንድ የስህተት መልእክት ከሰጣችሁ፣ “ተቆር-ዲንን (Ctrl-D)” በመጠቀም ከቀፎ ፕሮግራሙ ውጡ እና እንደገና አስጀምራችሁ ከዚያ ትእዛዙን እንደገና ሞክሩት። (ይህ ዓይነቱ እንደገና የማስጀመር እና እንደገና የመሞከሩ ዘዴ፣ የተለመደ ቴክኒካዊ ብልሃት ነው (ሳጥን 1)።)
በዝርዝር 5 ላይ እንደተመለከተው፣ የሩቢአካባቢ አስጀምርን (rbenv init
) ማስኬዱ፣ ሁልጊዜ የሩቢአካባቢን እራሳችን ከማስጀመር ይልቅ ይህንን ትእዛዝ:-
eval "$(rbenv init -)"
በ .bash_profile
ማህደር ውስጥ በማስገባት ድግግሞሽን እንዴት ማስወገድ እንደምንችል አንድ አስተያየትን ያበረክታል (ይህም በጽሑፍ አርታኢ ላይ መሰረታዊ እውቀትን ለማግኘት የሚያስፈልገውን ተማር ላይ በደንብ ተሸፍኗል።)
ከፈለጋችሁ በናንተ የ .bash_profile
ማህደር ውስጥ eval
የሚለውን ትእዛዝ ለማከል አንድ የጽሑፍ አርታኢን መጠቀም ትችላላችሁ፣ በማዘዥያ መስመር ላይ መሰረታዊ እውቀትን ለማግኘት የሚያስፈልገውን ትምህርት ተማር ላይ እንደተሸፈነው ቀላሉ መንገድ ግን አስተጋባን (echo
) እና የቅጥያ >>
ስሌትን እንዲህ አድርጎ መጠቀም ነው:-
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
# ዚኤስኤችን (Zsh) የምትጠቀሙ ከሆነ ~/.zshrc `ን ተጠቀሙ
እዚህ ላይ፣ በአሁኑ ወቅት በየትኛውም ማውጫ ውስጥ ብንሆንም እንኳን ትእዛዙ እንዲሰራ፣ የቤት ማውጫውን (~
) በመንገዱ ውስጥ እንዳካተትነው ልታስተውሉ ይገባል፡፡
በመጨረሻም፣ (በጽሑፍ አርታኢ ላይ መሰረታዊ እውቀትን ለማግኘት የሚያስፈልገውን ተማር ላይ እንደተጠቀሰው) አዲሱን የመገለጫ ማህደር ለማግበር አመንጪ (source
) የተባለውን ትእዛዝ መጠቀም ይኖርብናል:-
$ source ~/.bash_profile # ዚኤስኤችን (Zsh) የምትጠቀሙ ከሆነ ~/.zshrc `ን ተጠቀሙ
አሁን የሩቢአካባቢ ስለተዘጋጀ፣ እስኪ አንድ ስርዓት ውስጥ ያልገባ የሩቢ ስሪትን እንዲያስተዳድር እንስጠው። የመጫን ሂደቱ ሙሉ በሙሉ የሚስተናገደው በሩቢአካባቢ ነው፣ ስለሆነም ማድረግ ያለባችሁ ነገር ቢኖር ትክክለኛውን የሩቢ የስሪት ቁጥር ከሩቢአካባቢ ትእዛዝ ጋር ጎንለጎን በመስጠት በስርዓታችሁ ላይ የትኛውን ስሪት እንደምትፈልጉ መንገር ብቻ ነው፡፡
በዚህ የስልጠና ትምህርት ውስጥ የሩቢ ስሪት ቁጥር 2.7.4 ‘ን እንጠቀማለን፣ ይህ ጽሑፍ እስከተጻፈበት ጊዜ ድረስ የተለያዩ የሩቢ አፕልኬሽኖች ላይ በደንብ እንደሚሰራም ይታወቃል፣ ነገር ግን ከፈለጋችሁ በሩቢ ድርጣቢያ ላይ እንደተዘረዘረው ወቅታዊውን ወይም የቀድሞውን የሩቢ ስሪት መጠቀምም ትችላላችሁ፡፡
የሩቢአካባቢ‘ን (rbenv
) በመጠቀም የተፈለገውን የሩቢ ስሪት ለመጫን፣ በዝርዝር 6 ላይ የሚታየውን ትእዛዝ ብቻ ፈጽሙ፡፡ ስርዓታችሁ የተሰጠው የሩቢ ስሪት አልተገኘም ብሎ ቅሬታ ካሰማ፣ ወቅታዊውን ስሪት ለመድረስ ስርዓታችሁን ማዘመን ይኖርባችኋል (ሳጥን 2)።
$ rbenv install 2.7.4
በዝርዝር 6 ውስጥ ያለውን ትእዛዝ ካስኬዳችሁ በኋላ፣ የሩቢአካባቢ የማውረድ ሂደቱን ሲጀምር እና ለዚያ የተወሰነ የሩቢ ስሪት የሚያስፈልጉትን ጥገኛዎች (ጥገኛ ፕሮግራሞች) ሲጪን ማየት አለባችሁ፡፡ (ይህም በመተላለፊያ ይዘቱ እና በማዕከላዊ የሂደት ክፍሉ (ማ.ሂ.ክ (CPU)) ወሰን ላይ በመመርኮዝ ትንሽ ጊዜ ሊወስድ ይችላል)።
ማሳሰቢያ:- ይህን የመሰለ አንድ የስህተት መልእክት ልታገኙ ትችሉ ይሆናል:-
ruby-build: definition not found: 2.7.4
See all available versions with `rbenv install --list'.
If the version you need is missing, try upgrading ruby-build:
brew update && brew upgrade ruby-build
ይህ ከተከሰተ እጅግ ወቅታዊውን የ‘ሩቢ-ገንባ (ruby-build
) ዝርዝርን በሩቢአካባቢ plugins
ማውጫ ውስጥ መሰል9 (Clone) ማድረግ ይኖርባችኋል:-
$ mkdir ~/.rbenv/plugins
$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
ሩቢ-ገንባ (ruby-build
) ቀድሞውኑ እዛው ላይ ካለ፣ ወቅታዊ ለውጦቹን በቀላሉ ለማውረድ የጊት ጎትት (pull
) ትእዛዝን እንደሚከተለው አድርጋችሁ መጠቀም ትችላላችሁ:-
$ cd ~/.rbenv/plugins && git pull && cd -
ምንም እንኳን አሁን ሁሉንም ማለት ተገቢ የሆነ ግንኙነት ያላቸውን የሶፍትዌሮች ወቅታዊ ስሪቶችን ብጪንም፣ ከጥቂት ጊዜ በኋላ ግን የሰፈራችሁ ስርዓት ከአዳዲስ የሆምብሬው ስሪቶች እና ከማንኛውም የተጫኑ ጥቅሎች ጋር አይመሳሰሉም፡፡ ስርዓቱን ለማዘመን፣ አንዳንድ ጊዜ ሆምብሬውን እራሱን ማዘመን እና ከዚያ የተጫኑትን ጥቅሎችንም ማሻሻሉ አንድ ጥሩ ሀሳብ ነው። ይህንንም በሚከተሉት ትእዛዛት መፈጸም ይቻላል:-
$ brew update $ brew upgrade
ሩቢን መጫኑ ከተጠናቀቀ በኋላ፣ ግልጽ ባልሆነ ስም የተሰየመውን የ‘እንዳዲስ-አቅርብ (rehash
) ትእዛዝን በመጠቀም አንድ አዲስ የሩቢ ስሪት እንዳለ ለስርዓቱ መንገር ይኖርብናል:-
$ rbenv rehash
ለዚህ መመሪያ፣ ፕሮጀክታችሁን በምትጀምሩበት ጊዜ የሩቢ ስሪትን ለይታችሁ ለመጥቀስ እንዳትጨነቁ፣ የዝርዝር 6 የሩቢ ስሪቱን በተጨማሪ አንድ የዓለም አቀፍ ነባሪ ስሪት እንዲሆን እናደርጋዋለን (እዚህ ላይ አንድ ስሪትን ዓለም አቀፍ ማድረግ ማለት በዚህ ስርዓት ውስጥ የሚፈጠሩ አፕልኬሽኖች በሙሉ አንድ ዓለም አቀፍነት የተሰጠውን ስሪት ይጠቀማሉ ማለት ነው፤ በዚህ ወቅት ደግሞ የሩቢ የስሪት ቁጥር 2.7.4 ‘ን ይሆናል ማለት ነው)፡፡ ይህንን ለማድረግ መንገዱም የ‘ዓለም-አቀፍ (global
) ትእዛዝን መጠቀም ነው:-
$ rbenv global 2.7.4
በዚህ ጊዜ ሁሉም ቅንጅቶች በትክክል እንደተዘመኑ ለማረጋገጥ፣ የቀፎ ፕሮግራሙን እንደገና ማስጀመሩ አንድ ጥሩ ሀሳብ ሊሆን ይችላል፡፡
ለወደፊቱ ስራ፣ በአንድ ፕሮጀክት መሰረት ላይ የተወሰነ የሩቢ ስሪትን መጠቀም ትፈልጉ ይሆናል፣ ይህም በፕሮጀክቱ ስረ ማውጫ ላይ አንድ .ruby-version
የተባለ ፋይልን በመፍጠር እና ጥቅም ላይ እንዲውል የተፈለገውን የሩቢ ስሪትን በማካተት ሊከናወን ይችላል። (በስርዓታችሁ ላይ አሁን ከሌለ፣ በዝርዝር 6 ላይ እንደተመለከተው rbenv install <የስሪት ቁጥር>
‘ን በመጠቀም መጫን ይኖርባችኋል።) የበለጠ መረጃ ለማግኘት የሩቢአካባቢ ሰነድን ተመልከቱ።
በመጨረሻም፣ የሩቢ ሶፍትዌርን በእንቁዎች (gems) ወይም እራሱን-በያዘ የሩቢ ኮድ ጥቅል በኩል በምትጪኑበት ጊዜ፣ ሶፍትዌሩን ከመጫን ይልቅ የሰፈር ሰነዱን ለመጫን ብዙ ጊዜ ሊወስድ ስለሚችል፣ ብዙውን ጊዜ እሱን ላለመጫን መዝለሉ የተመረጠ ነው፣ በተፈለገ ጊዜ ደግሞ ሰነዱን በመስመር ላይ መድረሱ እጅግ አመች ነው። ሰነድ መጫንን መከላከሉ፣ እንደየሁኔታው ሊከናወን ይችላል፣ ነገር ግን በዝርዝር 7 ላይ እንደሚታየው፣ እምብዛም ጥቅም ላይ የማይውሉትን (እና ለመጫን ጊዜ የሚወስዱትን) የሩቢ የሰነድ ፋይሎች ለመዝለል በቤት ማውጫው ውስጥ አንድ .gemrc
ተብሎ የሚጠራ ፋይልን በመፍጠር እሱን አንድ ዓለም አቀፍ ነባሪ ማድረጉ የበለጠ አመች ይሆናል።
.gemrc
ማህደርን ማዋቀር።
$ echo "gem: --no-document" >> ~/.gemrc
በዚህ ውቅር የሩቢ እንቁዎችን ለመጫን፣ ማንኛውም gem install <የእንቁ ስም>
‘ን መጠቀሙ፣ በራስሰር ስልክክ ያለ፣ ቀልጣፋ እና ከሰነድ ነጻ እንዲሆን ያደርገዋል፡፡
ወቅታዊው የጊት የስሪት ቁጥጥር ስርዓት ክፍል 3.1.2 ላይ ከተጫኑት የኤክስኮድ የማዘዥያ መስመር መሳሪያዎች ጋር በራስሰር መምጣት ይኖርበታል፣ ይህንንም የ‘የትኛው (which
) ትእዛዝን በመጠቀም ማረጋገጥ ትችላላችሁ:-
$ which git
የዚህ ውጤት ባዶ ከሆነ፣ ጊት አልተጫነም ማለት ነው፣ እናም ሆምብሬውን በመጠቀም እሱን መጫን ትችላላችሁ:-
$ brew install git
ያም ሆነ ይህ፣ የጊት የስሪት ቁጥር ቢያንስ ቢያንስ 2.28.0
መሆኑን ማረጋገጥ ይኖርባችኋል:-
$ git --version
git version 2.31.1 # የስሪት ቁጥሩ ቢያንስ ቢያንስ 2.28.0 መሆን አለበት።
የስሪት ቁጥሩ ወቅታዊ ካልሆነ፣ መጀመሪያ ብሬው አዘምን‘ን (brew update
) ከዚያ ደግሞ brew upgrade git
‘ን ማስኬድ ይኖርባችኋል።
በሊኒክስ እጅግ ቴክኒካዊ የሆነ የዘር አመጣጥ ምክንያት፣ የሊኒክስ ስርዓቶች በተለምዶ በአፕልኬሽኖች መገንቢያ መሳሪያዎች በሚገባ የተሰነቁ ናቸው። በዚህ ምክንያት፣ አንድ ቤተኛ የሊኒክስ ስርዓተ ክወናን ለአንድ የማበልጸጊያ አካባቢ ለማዘጋጀት በሚገባ ቀላል ነው፡፡
እያንዳንዱ ዋና የሊኒክስ ስርጪት ከአንድ የመናኸሪያ ፕሮግራም፣ ከአንድ የጽሁፍ አርታኢ እና ከጊት ጋር ተጪኖ ይሰደዳል፡፡ ከነባሪዎቹ በተጨማሪ ሊደረጉ ይገባቸዋል ብለን የምንመክራቸው ነገሮች ቢኖሩ ግን እነዚህ አራት ዋና ሂደቶች ብቻ ይሆናሉ:-
2.28.0
መሆኑን አረጋግጡ።
ከላይ ካሉት ውስጥ የመጨረሻው ሂደት የሚከተለውን ትእዛዝ በማስኬድ ማረጋገጥ ይችላል:-
$ git --version
የስሪቱ ውጽአት ቢያንስ ቢያንስ 2.28.0
ካልሆነ፣ ወደ “ጊትን ለመጫን መጀመር” አምሩ እና ወቅታዊውን የጊት ስሪት ለስርዓታችሁ ጫኑ።
በዚህ ጊዜ፣ ሁሉንም ነገር በትክክል አሟልታችሁ ወደሚቀጥለው ጉዞ ለማለፍ መብቃት አለባችሁ!
በመጨረሻም፣ ለማይክሮሶፍት ዊንዶውስ አንድ የቤተኛ መመሪያ ይኖረናል፣ ወይም በትክክለኛው አነጋገር በዊንዶውስ ላይ ዩኒክስን የሚጠቀሙ መመሪያወች አሉን ማለት ይቻላል። በክፍል 2 ላይ እንደተብራራው፣ አንዱ አማራጪ አንድ የደመና ቅ.ማ.አን መጠቀም ነው፣ በተለይ በዊንዶውስ ላይ ሊኒክስን በቀጥታ መጫኑ ግን መልካም ውጤት እንዳለው አንዳንድ ዘገባወች ደርሰውናል፡፡
ትክክል ነው! እመኑም አትምኑም፣ አሁን ዊንዶውስ ከአንድ ከሚሰራ የሊኒክስ ከርኔል (kernel) ጋር ተጪኖ ይሰደዳል፣ እና የራሱን የማይክሮሶፍትን መመሪያዎች በመከተል ማንኛውንም የሊኒክስ ስርጪቶችን መጫን ትችላላችሁ፡፡ (በ 90 ዎቹ መጨረሻ እና በ 2000 ዎቹ መጀመሪያ ላይ የሊኒክስ የማይክሮሶፍት ጥላቻን እና የማይክሮሶፍት ስግብግብነትን/ቀማኛነትን ለምናስታውስ፣ ዊንዶውስ አንድ ቀን አንድ ቤተኛ ሊኒክስን ከመገደፍ ጋር ተጪኖ ይሰደዳል ብሎ ማሰቡ በእውነቱ ጪራሽ የማይታሰብ ነገር ነበረ፣ አሁን ግን ለዚህ በቃን (ውሻ እና ድመት አብረው ይኖራሉ ይሏችኋል ይሄ ነው!)፡፡)
ሁሉም ነገር እንዲሰራ ለማድረግ፣ ምክራችን በስካት ሀንሰልማን የቀረበውን “ሩቢ ኦን ሬይልስን በዊንዶውስ መገንባት የሚቻል ብቻ ሳይሆን፣ ደብሊውኤስኤል2‘ን (WSL2) እና ቪኤስ ኮድን (VS Code) በመጠቀም መገንባቱ እጅግ ድንቅ ነው” የሚለውን ትምህርታዊ መጣጥፍን እንድትከተሉ ነው። ምንም እንኳን ለሩቢ ኦን ሬይልስ የድር ማበልጸጊያ ጠቃሚ ቢሆንም፣ የሀንሰልማን የስልጠና ትምህርት ግን በአጠቃላይ ብዙ ዘርፎች ላይ የሚያገለግል ነው፣ እና የስልጠና ትምህርቱን መከታተሉ አንድ ድንቅ የዊንዶውስ ስርዓት ማበልጸጊያ አጠቃላይ ተሞክሮን ሊያስገኝ ይገባል፡፡
እስከዚህ ድረስ ከደረሳችሁ (እና በተለይ ደግሞ በክፍል 3 ላይ ያለውን አንድ የቤተኛ ስርዓተ ክወና ማዋቀርን ካጠናቀቃችሁ) አሁን “በማበልጸጊያ አካባቢ አደገኛ ለመሆን በቂ ተማር” ‘ን ተምራችኋል ማለት ነው። አሁን እንደ በቅ.ቋ እና በገጽታ ላይ መሰረታዊ እውቀትን ለማግኘት የሚያስፈልገውን ተማር፣ በሩቢ ላይ መሰረታዊ እውቀትን ለማግኘት የሚያስፈልገውን ተማር እና እንደ ሩቢ ኦን ሬይልስ ስልጠናያሉ ፈታኝ የስልጠና ትምህርቶችን ለመፋለም እና በድል ለማጠናቀቅ ዝግጁዎች ናችሁ ማለት ነው። መልካም ዕድል!
በማበልጸጊያ አካባቢ ላይ መሰረታዊ እውቀትን ለማግኘት የሚያስፈልገውን ተማር። የቅጂ መብቱ © እ.ኤ.አ በ 2017 በማይክል ሃርትል፣ በሊዶናሆ እና በኒክ ሜርዊን ተሰጥቷል።
git clone
) አንድ ነባር ማከማቻ ላይ ኢላማ በማድረግ ኢላማ የተደረገበትን ማከማቻ ለመቅዳት የሚያገለግል አንድ የጊት የማዘዥያ መስመር መገልገያ ነው፡፡ ስለዚህ በጊት ውስጥ መሰል (Clone) ማድረግ ማለት ከአንድ ማከማቻ ላይ መቅዳት ማለት ነው።