Unha shell de Rake non pode desactivar o proxy de Ruby
Cambie o ENV de Ruby para as tarefas posteriores ou forneza un hash de contorno específico para o fillo en lugar de desactivar un proxy dentro dunha chamada sh illada.
sh 'unset http_proxy' cambia a shell que se lanza para esa chamada. Cando remata, o proceso Ruby de Rake segue tendo o seu contorno orixinal, e unha chamada sh posterior volve herdalo.
Para cambiar o proceso Ruby para o traballo posterior:
ENV.delete('http_proxy')
ENV.delete('HTTP_PROXY')
Isto afecta os fillos posteriores e o código Ruby que le esas claves. Non reconfigura o terminal que lanzou Rake orixinalmente.
Para unha única orde filla, forneza o seu contorno directamente:
sh(
{ 'http_proxy' => nil, 'HTTP_PROXY' => nil },
'ruby', 'download.rb'
)
A interface de lanzamento de procesos de Ruby trata os valores nil como eliminacións do contorno dese fillo. Rake pasa a lista de argumentos a esa interface, deixando o seu propio ENV sen cambios.
Elimine as claves relevantes para o cliente real. Unha operación HTTPS tamén pode consumir https_proxy, e algúns clientes consultan ALL_PROXY ou outro ficheiro de configuración. Eliminar só unha clave HTTP non é unha instrución universal de ruta directa.
A forma con varios argumentos mantén separados os argumentos do executábel. Non cómpre construír unha cadea de shell que conteña unha orde de desactivación e un URL.