Câu trả lời:
Trong một số bản phát hành, sudo được cấu hình theo cách tất cả các biến môi trường đều bị xóa khi chạy lệnh. Để giữ giá trị cho http_proxy của bạn và sửa lỗi này, bạn cần chỉnh sửa / etc / sudoers, chạy:
visudo
Sau đó tìm một dòng có ghi:
Defaults env_reset
và thêm vào sau nó:
Defaults env_keep = "http_proxy ftp_proxy"
Mọi thứ sẽ bắt đầu làm việc như mong đợi.
Cảm ơn kdogksu trong Diễn đàn Ubuntu đã tìm ra giải pháp cho việc này.
Để không chỉ sửa lỗi apt-get mà cả đồ họa X11, ví dụ như synaptic, mintintall, ...), dòng sau đây /etc/sudoers
sẽ thực hiện công việc:
Defaults env_keep = "http_proxy https_proxy ftp_proxy DISPLAY XAUTHORITY"
Dùng cái này.
ubuntu@ubuntu:~$ cat /etc/apt/apt.conf
Acquire::http::Proxy "http://Username:Password@proxy.foo.bar.edu.au:8080";
Đây là những gì tôi sử dụng. Hoạt động hoàn hảo.
Apt cũng cho phép các cài đặt riêng lẻ được đặt trong các tệp bên dưới /etc/apt/apt.conf.d/
, do đó, điều này có tác dụng chính xác như ở trên, nhưng có thể dễ duy trì hơn nếu bạn có các dòng khác trong .conf
tệp:
ubuntu@ubuntu:~$ cat /etc/apt/apt.conf.d/05proxy
Acquire::http::Proxy "http://Username:Password@proxy.foo.bar.edu.au:8080";
apt.conf
.
/etc/apt/apt.conf
hoặc sử dụng đặt tệp cấu hình trong /etc/apt/apt.conf.d
.... hoặc hoạt động! :-)
E: Syntax error /etc/apt/apt.conf:2: Extra junk at end of file
Điều làm việc cho tôi là:
sudo http_proxy=http://yourserver apt-get update
Đó là một chút kỳ lạ bởi vì chỉ cần xuất http_proxy và sau đó chạy sudo echo $ http_proxy đã ngoan ngoãn in ra giá trị đã xuất
$http_proxy
được mở rộng trước khi sudo thậm chí được chạy.
export http_proxy=http://proxyusername:proxypassword@proxyaddress:proxyport
sudo apt-get update
Việc xuất không cần sudo
ing và nếu proxy của bạn là ẩn danh, chỉ cần bỏ proxyusername:proxypassword@
phần đó.
wget
?
Nếu đó là cấu hình tạm thời , bạn có thể thử điều này: sudo bash -c 'http_proxy = "http: // <proxy_host>: <proxy_port> /" apt-get update'
Bạn cần điều này, bởi vì biến môi trường cần được xác định cho tài khoản "root". Làm và xuất trước không nên làm việc.
Đối với cấu hình cố định , bạn sẽ phải sửa đổi tệp hệ thống. Điều này đã được mô tả trong câu trả lời sau về Cách kiểm tra proxy mạng thực sự được áp dụng? .
Ubuntu cực kỳ thù địch với việc xác thực proxy. Tôi sử dụng máy tính xách tay Ubuntu tại nơi làm việc và số lượng vỡ là không thể tin được.
Synaptic, Apt, Firefox, Chromium, v.v ... đều sử dụng các phương pháp khác nhau để chỉ định proxy và không có nơi nào để chỉ định thông tin đăng nhập một cách an toàn.
Một số lỗi về chủ đề: https://bugs.edge.launchpad.net/ubfox/+source/msttcorefonts/+orms/220070
https://bugs.edge.launchpad.net/ubfox/+source/apt-cacher/+orms/198138
https://bugs.edge.launchpad.net/ubfox/+source/apt/+orms/433827
https://bugs.edge.launchpad.net/ubfox/+source/b43-fwcutter/+orms/683630
Đề xuất của Oli để sử dụng xuất khẩu là cách duy nhất mơ hồ an toàn để làm điều đó. Đôi khi cũng có thể "làm mờ" hỗ trợ proxy nếu máy chủ proxy đang sử dụng xác thực thứ cấp để giảm thiểu tải trên các máy chủ xác thực chính (có lẽ là Active Directory). Đây là nơi kết nối proxy đầu tiên được xác thực bởi proxy so với AD, sau đó trong khoảng thời gian đã đặt (thường là 5 phút), tất cả các kết nối khác đều được "tin cậy" để trở thành người dùng đó. Do đó, bạn có thể mở firefox, duyệt internet (bất cứ nơi nào sẽ làm), sau đó thử tiện ích của bạn (wget, synap, bất cứ điều gì) bằng cách chỉ định proxy, nhưng để trống tên người dùng.
Ubuntu thường không thân thiện với bất kỳ môi trường doanh nghiệp nào vì nó cho phép mật khẩu được đọc dễ dàng. Seahorse là thủ phạm chính, nhưng Network Manager cũng gây sốc - kết nối với bất kỳ mạng xác thực PEAP nào và bạn vừa lưu mật khẩu của mình trong applet cho bất kỳ ai xem ai có thể mượn máy tính xách tay của bạn. Rõ ràng việc chia sẻ máy tính xách tay được coi là đặc quyền trong vùng đất Linux, vì các nhà phát triển Seahorse đã từ chối các tuyên bố về sự không an toàn. Sau đó, tôi không muốn liên lạc với các nhà quản lý mạng.
Bạn đã thử chỉnh sửa /etc/apt/apt.conf
? Tôi sử dụng điều này để sử dụng apt đằng sau proxy công ty của chúng tôi.
Acquire::http::proxy "http://user:password@host:port/";
Tôi tin rằng apt sử dụng giá trị này trừ khi $ http_proxy được xác định trong môi trường shell của bạn (tức là $ http_proxy được ưu tiên).
apt.conf
vẫn nên được sử dụng. Bạn có thể thấy những cài đặt cấu hình mà apt nghĩ rằng nó đã được đặt bằng cách sử dụng apt-config dump
.