Como executar o “sudo apt-get update” através do proxy na linha de comando?

66

No meu escritório eu quero atualizar e baixar através de (wget) e aqui eles estão usando proxy?

Como posso fazer isso pela linha de comando?

    
por Renjith G 15.10.2010 / 13:07

7 respostas

78

Em algumas versões, o sudo é configurado de tal forma que todas as variáveis de ambiente são limpas ao executar o comando. Para manter o valor do seu link e corrigir isso, você precisa editar o / etc / sudoers, executar:

visudo

Em seguida, encontre uma linha que indique:

Defaults env_reset 

e adicione depois:

Defaults env_keep = "http_proxy ftp_proxy" 

As coisas começarão a funcionar conforme o esperado.

Obrigado ao kdogksu nos fóruns do Ubuntu por encontrar a solução para isso.

Para corrigir não apenas o apt-get, mas também os utilitários gráficos do X11 como, por exemplo, synaptic, mintintall, ...), a seguinte linha em /etc/sudoers deve fazer o trabalho:

Defaults env_keep = "http_proxy https_proxy ftp_proxy DISPLAY XAUTHORITY"
    
por paulo.albuquerque 29.12.2010 / 20:21
34

Use isso.

ubuntu@ubuntu:~$ cat /etc/apt/apt.conf
Acquire::http::Proxy "http://Username:[email protected]:8080";

Isso é o que eu uso. Funciona perfeitamente.

O Apt também permite que configurações individuais sejam colocadas em arquivos em /etc/apt/apt.conf.d/ , então isso tem exatamente o mesmo efeito que o acima, mas pode ser mais fácil de manter se você tiver outras linhas no arquivo .conf :

ubuntu@ubuntu:~$ cat /etc/apt/apt.conf.d/05proxy
Acquire::http::Proxy "http://Username:[email protected]:8080";
    
por John Cartwright 18.03.2013 / 05:24
10
export http_proxy=http://proxyusername:proxypassword@proxyaddress:proxyport
sudo apt-get update

A exportação não deve precisar de sudo ing e se o seu proxy é anônimo, basta abandonar a parte proxyusername:proxypassword@ .

    
por Oli 15.10.2010 / 13:19
9

O que funcionou para mim foi:

sudo http_proxy=http://yourserver apt-get update

O que é um pouco estranho porque simplesmente exportar http_proxy e executar sudo echo $ http_proxy obedientemente imprimiu o valor exportado

    
por Sam 07.04.2011 / 09:05
3

O Ubuntu é incrivelmente hostil à autenticação de proxies. Eu uso um laptop Ubuntu no trabalho e o número de quebras é incrível.

O Synaptic, o Apt, o Firefox, o Chromium, etc. usam métodos diferentes para especificar um proxy e não há onde especificar credenciais com segurança.

Alguns bugs no assunto: link

link

link

link

A sugestão de Oli para usar uma exportação é a única maneira vagamente segura de fazê-lo. Às vezes também é possível "falsificar" o suporte a proxy se o servidor proxy estiver usando autenticação secundária para minimizar a carga nos principais servidores de autenticação (digamos talvez o Active Directory). É onde a primeira conexão de proxy é autenticada pelo proxy em relação ao AD e, em seguida, por um período de tempo definido (geralmente 5 minutos), todas as outras conexões são "confiáveis" para ser esse usuário. Portanto, você pode abrir o firefox, navegar na Internet (em qualquer lugar) e, em seguida, tentar seu utilitário (wget, synaptic, whatever), especificando um proxy, mas deixe o nome de usuário em branco.

O Ubuntu é geralmente hostil a qualquer ambiente corporativo, simplesmente porque permite que as senhas sejam lidas tão facilmente. O Seahorse é o principal culpado, mas o Network Manager também é chocante - conecte-se a qualquer rede autenticada PEAP e você acabou de armazenar sua senha no applet para qualquer um ver quem pode pedir emprestado seu laptop. Aparentemente, o compartilhamento de laptop é considerado um sacrilégio em terras Linux, já que os desenvolvedores da Seahorse rejeitaram as alegações de insegurança. Depois disso, não tive coragem de entrar em contato com os desenvolvedores do network-manager.

    
por Scaine 29.12.2010 / 21:24
3

Você tentou editar /etc/apt/apt.conf ? Eu uso isso para usar o apt por trás do nosso proxy corporativo.

Acquire::http::proxy "http://user:password@host:port/";

Acredito que o apt usa esse valor, a menos que $ http_proxy seja definido em seu ambiente shell (por exemplo, $ http_proxy tem precedência).

    
por Jon Brett 15.10.2010 / 15:32
2

Se for uma configuração temporária , você pode tentar isto: sudo bash -c 'http_proxy="http: // < proxy_host & gt ;: < proxy_port > /" apt-get update'

Você precisa disso, porque a variável de ambiente precisa ser definida para a conta "raiz". Fazer e exportar antes não deve funcionar.

Para uma configuração permanente , você terá que modificar um arquivo do sistema. Isso já está descrito na seguinte resposta sobre Como verificar O proxy de rede é realmente aplicado? .

    
por Huygens 15.10.2010 / 13:21

Tags