sh 'unset http_proxy' ಆ ಕರೆಗಾಗಿ ಪ್ರಾರಂಭವಾಗುವ ಶೆಲ್ ಅನ್ನು ಬದಲಿಸುತ್ತದೆ. ಅದು ನಿರ್ಗಮಿಸಿದಾಗ, 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 ಅನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಇಡುತ್ತದೆ. unset ಆಜ್ಞೆ ಮತ್ತು URL ಹೊಂದಿರುವ shell string ನಿರ್ಮಿಸುವ ಅಗತ್ಯವಿಲ್ಲ.

ಸಂಬಂಧಿತ ಲೇಖನಗಳು