Rake qobig'i Ruby proxy'sini o'chira olmaydi
Keyingi vazifalar uchun Ruby ENV'ini o'zgartiring yoki izolyatsiyalangan sh chaqiruvi ichida proxy'ni o'chirish o'rniga bola jarayonga alohida environment hash bering.
sh 'unset http_proxy' o'sha chaqiruv uchun ishga tushirilgan qobiqni o'zgartiradi. U chiqqanda, Rake ichidagi Ruby jarayoni hali ham asl muhitini saqlaydi va keyingi sh chaqiruvi uni yana meros oladi.
Keyingi ish uchun Ruby jarayonini o'zgartirish uchun:
ENV.delete('http_proxy')
ENV.delete('HTTP_PROXY')
Bu keyingi bolalarga va o'sha kalitlarni o'qiydigan Ruby kodiga ta'sir qiladi. U Rake'ni dastlab ishga tushirgan terminalni qayta sozlamaydi.
Bitta bola buyrug'i uchun uning muhitini to'g'ridan-to'g'ri bering:
sh(
{ 'http_proxy' => nil, 'HTTP_PROXY' => nil },
'ruby', 'download.rb'
)
Ruby'ning jarayon ishga tushirish interfeysi nil qiymatlarini o'sha bolaning muhitidan olib tashlash deb qabul qiladi. Rake argumentlar ro'yxatini o'sha interfeysga uzatadi va o'z ENV'ini o'zgartirmaydi.
Haqiqiy client uchun tegishli kalitlarni olib tashlang. HTTPS operatsiyasi https_proxy'dan ham foydalanishi mumkin, ba'zi clientlar esa ALL_PROXY yoki boshqa konfiguratsiya faylini ko'radi. Faqat bitta HTTP kalitini olib tashlash universal to'g'ridan-to'g'ri yo'l ko'rsatmasi emas.
Ko'p argumentli shakl bajariladigan fayl argumentlarini alohida saqlaydi. Olib tashlash buyrug'i va URL bo'lgan qobiq satrini qurish kerak emas.