记一次内网访问外网使用代理出现的apt问题

背景

tx 内网的开发网不允许直接访问外网,而且内网中的 apt 源内容较少,所以使用 apt 等工具管理开源工具时,需要使用代理访问 archive.ubuntu.com 和 security.ubuntu.com 以获取内容和修改PPA源。

问题

  1. 通过~/.bashrc设置 http 代理和 https 代理后,source 和重启 bash 都无法使 apt 连接至 archive.ubuntu.com 和 security.ubuntu.com。
  2. sudo apt-add-repository 无法正常工作。

原因

  1. apt 并不使用系统变量 http_proxy 和 https_proxy ,需修改 /etc/apt/apt.conf 或使用 -o 选项指定 http/https 代理。
  2. sudo 命令使用root的环境设置,需使用 -E 选项保留当前用户的设置。

方法

  1. 使用 sudo apt-get -o Acquire::http::proxy=”xxxx” 。
  2. 使用 sudo -E apt-add-repository 。