ඔබ Ubuntu මත ස්වයං-හෝස්ට් CI/CD ඒජන්ට් එකක් සකස් කර, pip: command not found හෝ No module named pip යන දෝෂ පණිවිඩයක් දැකලා තිබේද? බොහෝ අය පළමුව ජාල සම්බන්ධතාවය පරීක්ෂා කරනවා, නමුත් එය බොහෝ විට වැරදි යැයි පෙනේ.
අද අපි Azure DevOps ඒජන්ට් (GitHub Actions රනර් හෝ Jenkins බොක්ස් වැනි) එකක් මත Python CLI මෙවලමක් pip හරහා ස්ථාපනය කිරීමට උත්සාහ කළ විට මුහුණ පාපු සිදුවීම්, ඒවායේ පියවර, සහ අවසානයේ සාර්ථක විසඳුම ගැන පූර්ණ විස්තරයක් ඉදිරිපත් කරනවා.
ප්රථමයෙන් python3 -m pip install --user some-cli-tool ක්රියාත්මක කළාම /usr/bin/python3: No module named pip යන පණිවිඩය ලැබුණා. පසුබැසීමෙන් ensurepip භාවිතා කර බැලුවා, නමුත් /usr/bin/python3: No module named ensurepip යන දෝෂය එළිවුණා.
Ubuntu සහ Debian හි මූලික python3 පැකේජය pip සහ ensurepip ඉවත් කර තිබේ. ඒවා python3-pip සහ python3-venv යන වෙනත් apt පැකේජයන්ගෙන් ස්ථාපනය කළ යුතුය. නමුත් ස්වයං-හෝස්ට් CI පරිසරයක් තුළ sudo ප්රවේශයක් නොමැති බැවින් apt භාවිතා කළ නොහැක.
අවසාන උත්සාහයක් ලෙස venv භාවිතා කර බලන්නැයි සිත්ගන්නා ලදි, නමුත් එයත් ensurepip මත රඳා සිටීම නිසා අසාර්ථක වුණා.
අවසාන විසඳුම get-pip.py ස්ක්රිප්ට් භාවිතා කිරීමයි. මෙම ස්ක්රිප්ට් ensurepip මත පදනම් නොවී, සෘජුව pip ස්ථාපනය කරයි. පහත පියවර අනුගමනය කළාම sudo නැතිව pip සහ CLI මෙවලම සාර්ථකව ස්ථාපනය කළ හැකිය:
- curl -sS https://bootstrap.pypa.io/get-pip.py -o /tmp/get-pip.py
- python3 /tmp/get-pip.py --user
- python3 -m pip install --user some-cli-tool
මෙම ක්රියාවලිය ක්රියාත්මක කර ඇත්තේ, පළමුව PyPI වෙත ජාල ප්රවේශය පරීක්ෂා කිරීමයි. curl -sS -o /dev/null -w "pypi.org: %{http_code}\n" https://pypi.org --max-time 5 යන කමාන්ඩ් එක 200 ප්රතිචාරයක් දෙනවාදැයි බලන්න.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ තාක්ෂණික වෘත්තිකයින්, විශ්වවිද්යාල සිසුන්, හා ස්ථානික ව්යාපාර සඳහා මෙම තොරතුරුව ඉතා ප්රයෝජනවත්. CI/CD පයිප්ලයින් එකක් නිර්මාණය කිරීමේදී sudo අවශ්ය නොවන පරිසරයක් භාවිතා කරන විට pip ගැටලුවක් ඇතිවීම සාමාන්යය. get-pip.py භාවිතා කරමින්, සරලව pip ස්ථාපනය කළ හැකි නිසා:
- දෙවන ලෝකයේ අලුත්ම DevOps මෙවලම් ඉක්මනින් පරික්ෂා කළ හැකිය.
- ඉගෙනුම් කාලය අඩු වී, සිසුන්ට වැඩි ප්රායෝගික පළපුරුද්දක් ලැබේ.
- ස්ථානික ස්ටාර්ට්‑අප්ස් සහ IT සමාගම්ට පිරිවැය අඩු කරමින්, පරිසර-මිතුරන් CI පද්ධති සකස් කළ හැකිය.
ඉදිරියේදී, Ubuntu මූලික Docker රූපයන් හෝ CI රන්නර් ඩිස්කෝර්ඩ් පරිසරයන් තුළ මෙම ක්රමය අනුගමනය කිරීම, දේශීය තාක්ෂණික සමාජයට තවත් ඉහළ මට්ටමේ සොෆ්ට්වෙයා සංවර්ධනයේ අවස්ථා ලබා දේ.
අවසානයේ, pip නොමැති Ubuntu පරිසරයක් ඔබේ CI/CD ජංගමය වුවත්, get-pip.py මගින් ඒ ගැටලුව ඉක්මනින් විසඳා, වැඩි කාලයක් නිෂ්පාදනයේ යොදන්න හැකිය.