Amazon Linux 2 සිට Amazon Linux 2023 වෙත EC2 ඉන්ස්ටෑන්ස්, AMI හෝ ලොන්ච් ටෙම්ප්ලේට් මාරු කරන විට, පළමු වරට පද්ධතිය ආරම්භ කරන විට "/usr/bin/env: 'python2': No such file or directory" යන දෝෂයක් පෙනෙයි. එසේම, ස්ක්රිප්ට් එකේ #!/usr/bin/python2 ලෙස සදහන් කර ඇති විට "-bash: /usr/bin/python2: No such file or directory" යන පණිවුඩයක් ලැබේ.
මෙම ගැටළුවට හේතුව Amazon Linux 2023 හි Python 2 කිසිදු පැකේජයක් නොමැතිවීමයි. Amazon Linux 2 හි Python 2.7 මුල් රූපයෙහි අඩංගු වූ අතර, පරණ system‑init මොඩියුල සහ පාරම්පරික මෙවලම් ඒකට පදනම් වූහ. නව AL2023 වසරේදී Python 3 (පෙරනිමි 3.9) පමණක් සපයයි; Python 2, python27 වැනි පැකේජ කිසිවක් DNF මගින් ස්ථාපනය කළ නොහැක.
ඒ නිසා #!/usr/bin/env python2 ලෙස ලියූ user‑data, cron, systemd සේවා, Ansible/Chef/Puppet මොඩියුල, හෝ Python 2 පදනම් වූ SDK/CLI මෙවලම් අලුත් AMI එකේ ක්රියා නොකරයි. මෙම ගැටළුව සරලව සලකා බලන්නේ නම්, පද්ධතිය සෞඛ්යවත් වුවත්, Python 2 ඉල්ලීම් කරන ඕනෑම කේතයක් හෝ මෙවලමක් “කාර්යය නොකිරීම” ලෙස පෙනේ.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ බහුතරයෙකු විසින් AWS Cloud භාවිතා කරන අතර, ඉගෙනුම් මට්ටමට Python 2 පදනම් වූ පරණ පාඨමාලා, විශ්වවිද්යාල ව්යාපෘති, හෝ කුඩා ව්යාපාරික සේවා ඇත. AL2023 වෙත මාරු වීමේදී මෙම පද්ධති අඩංගු නම්, ඉක්මනින් අසාර්ථකත්වයක් හෝ සේවා බිඳ වැටීමක් සිදු වේ. ඒ නිසා:
- සිසුන් – Python 3 වෙත මාරු නොකළ පාඨමාලා වල ලැබෙන කේත උදාහරණ දැඩි ගැටළුවක් පැනේ.
- ඩිවෙලපර්ස් – CI/CD පයිප්ලයින්, Ansible playbook, Dockerfile ආදියන්හි python2 යොදා ගැනීම අත්හිටුවා, අලුත් python3 පරිසරයට යාවත්කාලීන කළ යුතුය.
- ව්යාපාර – පාරම්පරික ආභ්යන්තර සේවා හෝ SDK භාවිතා කරන සමාගම්, අලුත් Amazon Linux 2023 රූපයෙහි Python 2 නොමැති බව නිසා, කේතය පරිවර්තනය නොකළ පමණින් සේවා නතර විය හැක.
ඉතා පහසු විසඳුම Python 2 කේතය Python 3 වෙත පරිවර්තනය කිරීමයි. පියවර මත පියවර:
- Shebang එක
#!/usr/bin/env python3ලෙස වෙනස් කරන්න. - අවශ්ය Python 3 සංස්කරණය DNF මඟින් ස්ථාපනය කරන්න (උදා:
sudo dnf install -y python3.11). - පුරාවට
python2හෝpip2යොදාගෙන ඇති ස්ක්රිප්ට් සෙවීමෙන්, ඒවාpython3/pip3වෙත වෙනස් කරන්න. - කේතයේ පරණ syntax (print without parentheses, unicode handling, dict.iteritems(), integer division) යාවත්කාලීන කර පරීක්ෂා කරන්න.
අවසන් වශයෙන්, ගැටළුව “binary not found” පණිවුඩයක් පමණක් නොව, එය ගැලවූ පසු “feature stopped working” ලෙස සඟවා ඇති සිදුවීම් පවා පරීක්ෂා කර, අනාගතයේ support ticket එකක් ලැබීමට පෙර ගැටළුව හඳුනාගත යුතුය.
Amazon Linux 2 → 2023 මාරු කිරීමේදී පॅකේජ් කළමනාකරණය, firewall, time sync, සහ Python සංස්කරණය වෙනස් වන බැවින්, සම්පූර්ණ checklist එක අනුගමනය කිරීම වැදගත් වේ.