Utilizzare “gem” sotto proxy
Questo post vale per Ubuntu Server 12.04 e Debian 6 (con sudo attivato)
Quando si tenta di eseguire il comando gem dietro un proxy si può avere qualche problema anche se la variabile HTTP_PROXY è definita nell’ambiente.
Ciò è dovuto al fatto che il comando sudo è eseguito in un altro file nel quale vengono passate le variabili in modo diverso. Quello che dovete fare per farlo funzionare è fare delle correzioni:
sudo gem install rake ERROR: http://rubygems.org/ does not appear to be a repository ERROR: Could not find a valid gem 'rake' (>= 0) in any repository
Nononostante il fatto che la variabile d’ambiente http_proxy era stata fissata nel file ~ /.Bashrc.
# ~/.bashrc: executed by bash(1) for non-login shells. # HTTP Proxy export http_proxy=http://username:password@192.168.0.1:80/ # ...
E’ necessario quindi fare qualche ritocco se si vuole utilizzare sudo dietro proxy. Per fare questo, eseguire sudo visudo e aggiungere la riga env_keep come nell’esempio sottostante:
# /etc/sudoers # # This file MUST be edited with the 'visudo' command as root. # # See the man page for details on how to write a sudoers file. # Defaults env_reset Defaults env_keep += "http_proxy https_proxy ftp_proxy"
Una volta finito di modificare salvate il file.Ora tutto dovrebbe essere risolto. È possibile verificare che l’ambiente si propaga usando il comando env.
sudo env | grep http_proxy http_proxy=http://username:password@192.168.0.1:80/
E finalmente…
sudo gem install rake Successfully installed rake-0.8.7 1 gem installed Installing ri documentation for rake-0.8.7... Installing RDoc documentation for rake-0.8.7...