Rake qabığı Ruby-nin proxy-sini ləğv edə bilmir
Sonrakı tapşırıqlar üçün Ruby-nin ENV-ni dəyişin və ya təcrid olunmuş sh çağırışı daxilində proxy-ni ləğv etmək əvəzinə uşaq prosesə xas mühit hash-ı verin.
sh 'unset http_proxy' həmin çağırış üçün işə salınan qabığı dəyişir. O çıxdıqda, Rake-in Ruby prosesi hələ də ilkin mühitini saxlayır və sonrakı sh çağırışı onu yenidən miras alır.
Sonrakı işlər üçün Ruby prosesini dəyişmək üçün:
ENV.delete('http_proxy')
ENV.delete('HTTP_PROXY')
Bu, sonrakı uşaq proseslərə və həmin açarları oxuyan Ruby koduna təsir edir. O, Rake-i ilk işə salan terminalı yenidən konfiqurasiya etmir.
Bir uşaq əmri üçün onun mühitini birbaşa verin:
sh(
{ 'http_proxy' => nil, 'HTTP_PROXY' => nil },
'ruby', 'download.rb'
)
Ruby-nin proses işə salma interfeysi nil dəyərlərini həmin uşağın mühitindən silinmə kimi qəbul edir. Rake arqument siyahısını həmin interfeysə ötürür və öz ENV-ni dəyişməz qoyur.
Faktiki klientə aid açarları silin. HTTPS əməliyyatı https_proxy-dən də istifadə edə bilər, bəzi klientlər isə ALL_PROXY və ya başqa konfiqurasiya faylına baxır. Tək bir HTTP açarını silmək universal birbaşa marşrut təlimatı deyil.
Çoxarqumentli forma icra olunan arqumentləri ayrı saxlayır. Ləğvetmə əmri və URL olan qabıq sətri qurmağa ehtiyac yoxdur.