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 ਸਤਰ ਬਣਾਉਣ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ।

ਸੰਬੰਧਿਤ ਲੇਖ