Rake shell එකට Ruby හි proxy ඉවත් කළ නොහැක
පසුකාලීන කාර්යයන් සඳහා Ruby හි ENV වෙනස් කරන්න, නැතහොත් හුදකලා sh ඇමතුමක් තුළ proxy ඉවත් කරනවා වෙනුවට දරු ක්රියාවලියට වෙනම environment hash එකක් දෙන්න.
sh 'unset http_proxy' එම ඇමතුම සඳහා ආරම්භ කරන shell එක වෙනස් කරයි. එය අවසන් වූ විට, Rake හි Ruby ක්රියාවලියට තවමත් එහි මුල් environment ඇත, පසුව එන sh ඇමතුමක් එය නැවත උරුම කරගනී.
පසුකාලීන වැඩ සඳහා Ruby ක්රියාවලිය වෙනස් කිරීමට:
ENV.delete('http_proxy')
ENV.delete('HTTP_PROXY')
මෙය පසුකාලීන දරුවන්ට සහ එම keys කියවන Ruby කේතයට බලපායි. එය Rake මුලින් ආරම්භ කළ ටර්මිනලය නැවත වින්යාස නොකරයි.
එක් දරු විධානයක් සඳහා, එහි environment සෘජුවම දෙන්න:
sh(
{ 'http_proxy' => nil, 'HTTP_PROXY' => nil },
'ruby', 'download.rb'
)
Ruby හි ක්රියාවලි-ආරම්භක අතුරුමුහුණත nil අගයන් එම දරුවාගේ environment එකෙන් ඉවත් කිරීම් ලෙස සලකයි. Rake argument ලැයිස්තුව එම අතුරුමුහුණතට ලබා දෙන අතර තමන්ගේම ENV නොවෙනස්ව තබයි.
සැබෑ client සම්බන්ධ keys ඉවත් කරන්න. HTTPS ක්රියාවක් https_proxy ද භාවිත කළ හැක, සමහර client ALL_PROXY හෝ වෙනත් configuration ගොනුවක් බලයි. එක් HTTP key එකක් පමණක් ඉවත් කිරීම සර්වකාලීන direct-route උපදෙසක් නොවේ.
බහු-argument ආකෘතිය ක්රියාත්මක කළ හැකි ගොනුවේ arguments වෙන් කර තබයි. ඉවත් කිරීමේ විධානයක් සහ URL එකක් අඩංගු shell string එකක් ගොඩනැගීමට අවශ්ය නැත.