Ma société utilise un proxy HTTP et nos différents serveurs Ubuntu 12.04 doivent donc être configurés correctement, notamment en définissant \etc\apt\apt.conf.d\80proxy
sur:
Acquire::http::Proxy "http://proxy.mycompany.com:80";
Acquire::http::No-Cache true;
Maintenant, depuis quelques jours, cette méthode a soudainement cessé de fonctionner: je rencontre des erreurs d’inadéquation des sommes. J'ai essayé tous les trucs habituels trouvés sur stackoverflow ou sur le web, entre autres:
Sudo rm -fR /var/lib/apt/lists/*
Sudo apt-get clean
Mais rien ne semble fonctionner. J'ai même basculé sur un serveur FTP, sans aucune chance. Quelle est la solution radicale à ce problème? Est-ce que le serveur proxy a probablement un problème? Qu'est ce que ça pourrait être?
Utiliser Ubuntu 12.04
Pour utiliser apt-get via un proxy, procédez comme suit: vous devez toutefois pouvoir accéder à Internet (par exemple, via un navigateur comme Firefox):
Sudo apt-get --print-uris install PROGRAM
Cela permet d’imprimer les URL (et d’autres informations telles que md5sums) des paquets nécessaires à la réalisation de l’installation, afin que vous puissiez les télécharger. Par exemple, en utilisant supertux
:
wilf@comp:~$ Sudo apt-get install --print-uris supertux
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
supertux-data
The following NEW packages will be installed
supertux supertux-data
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 59.4 MB of archives.
After this operation, 80.0 MB of additional disk space will be used.
Do you want to continue [Y/n]? Y
'http://gb.archive.ubuntu.com/ubuntu/pool/universe/s/supertux/supertux-data_0.3.3-6_all.deb' supertux-data_0.3.3-6_all.deb 58590640 MD5Sum:68bd36f2c262f7caed1b5c947977202a
'http://gb.archive.ubuntu.com/ubuntu/pool/universe/s/supertux/supertux_0.3.3-6_i386.deb' supertux_0.3.3-6_i386.deb 804782 MD5Sum:a49c6c3c918bae2c968b3da6ac725b06
Ensuite, téléchargez les fichiers .deb
à partir des liens indiqués (de préférence dans un dossier vide), via un navigateur fonctionnant via le proxy, etc., et vous pourrez ensuite les installer à l'aide du Centre de logiciel. ou en utilisant cd /FOLDER/WITH/DOWNLOADED-DEB-FILES
et une de ces commandes dans le terminal
dpkg -i *.deb
gdebi *.deb
Ceci est un peu lent et ennuyeux, mais semble fonctionner sur les proxies HTTP. Vous pouvez également obtenir les packages à partir de http://packages.ubuntu.com/
J'ai constaté que les opérations suivantes fonctionnaient pour moi, en ce qui concerne l'utilisation d'apt à partir du terminal uniquement:
/etc/apt/apt.conf
vide, afin qu'apt s'appuie sur les variables d'environnement $*_proxy
.Assurez-vous que vos variables d’environnement sont correctement définies: vous pouvez par exemple ajouter dans .bashrc:
http_proxy="http://username:password@proxyserver:port"
# And so on for other proxy settings like https_proxy and ftp_proxy
Si votre nom d'utilisateur ou votre mot de passe contient des caractères spéciaux, il peut être nécessaire de les utiliser RL codée .
Faites que Sudo utilise vos variables d’environnement et non les siennes. Cela se fait en modifiant le fichier /etc/sudoers
. Faites attention en procédant de la sorte! Utilisez uniquement la commande Sudo visudo
pour éditer le fichier. toute erreur peut vous empêcher de repasser en mode Sudo! Ajouter ce qui suit:
Defaults env_keep+="http_proxy https_proxy ftp_proxy socks_proxy"
Cela garantit que Sudo conserve ces variables lors de l'exécution de Sudo apt-get install ...
etc.
J'ai découvert ceci à partir de apt-get howto d'Ubunt .
Faites-moi savoir si cela fonctionne :)
Pour ajouter à Wilf, j'ai exécuté la commande suivante pour automatiser le téléchargement via Chrome. Firefox, je comprends, peut être encore plus simple.
yes | Sudo apt-get --print-uris install PROGRAM-NAME-HERE | grep http | awk '{print $1 }' | tr -d \' | while read -r line; do google-chrome "$line"; done
EDIT: donc toute la réponse sera dans un post, une fois les téléchargements terminés simplement couru
cd /FOLDER/WITH/DOWNLOADED-DEB-FILES; dpkg -i *.deb
Je ne sais pas si vous avez déjà essayé cela, mais qu'en est-il:
export http_proxy=proxy.mycompany.com:80
Vous pouvez le vérifier ensuite avec:
echo $http_proxy
Un piège est que si, après avoir configuré votre proxy en tant qu’utilisateur non créé, vous exécutez
Sudo apt-get install REQUIRED_PACKAGE
où REQUIRED_PACKAGE est le logiciel que vous voulez installer et vous voyez toujours qu'il se bloque lorsque vous contactez l'ordinateur au-delà de votre proxy, cela vous permettra probablement de passer - E à la commande Sudo comme suit ...
Sudo -E apt-get install REQUIRED_PACKAGE
Cela a pour effet d'exécuter votre commande en tant que root en utilisant votre environnement actuel (vos paramètres d'environnement proxy).