【Linux】aptコマンド ~ Proxy環境下でaptを使用する ~

■ はじめに

https://dk521123.hatenablog.com/entry/2014/11/28/162708

で、aptコマンドを扱ったが、
今回は、プロキシ経由でapt系コマンドを実行するには
どうするかを考える

【1】プロキシ経由でapt系コマンドを実行するには

方法は、以下の2通り

1)環境変数「http_proxy」等を使う場合
2)/etc/apt/apt.conf or /etc/apt/apt.conf.d/xxxx.conf を使う場合

1)環境変数「http_proxy」等を使う場合

構文

export http_proxy="http://【ユーザID】:【パスワード】@【プロキシ・ホスト名】:【プロキシ・ポート番号】/"
export https_proxy="https://【ユーザID】:【パスワード】@【プロキシ・ホスト名】:【プロキシ・ポート番号】/"
export ftp_proxy="ftp://【ユーザID】:【パスワード】@【プロキシ・ホスト名】:【プロキシ・ポート番号】/"

認証がない場合は、「【ユーザID】:【パスワード】@」が不要

export http_proxy="http://admin:password@192.168.16.29:3128/"
export https_proxy="https://admin:password@192.168.16.29:3128/"
export ftp_proxy="ftp://admin:password@192.168.16.29:3128/"

2)/etc/apt/apt.conf or /etc/apt/apt.conf.d/xxxx.conf を使う場合

構文

Acquire::http::proxy "http://【ユーザID】:【パスワード】@【プロキシ・ホスト名】:【プロキシ・ポート番号】/";
Acquire::https::proxy "https://【ユーザID】:【パスワード】@【プロキシ・ホスト名】:【プロキシ・ポート番号】/";
Acquire::ftp::proxy "ftp://【ユーザID】:【パスワード】@【プロキシ・ホスト名】:【プロキシ・ポート番号】/";

認証がない場合は、「【ユーザID】:【パスワード】@」が不要

# 「;」がないと Syntax error になる
# 例
Acquire::http::proxy "http://admin:password@192.168.16.29:3128/";
Acquire::https::proxy "https://admin:password@192.168.16.29:3128/";
Acquire::ftp::proxy "ftp://admin:password@192.168.16.29:3128/";

【2】使用上の注意

* 設定値に「@」等の記号が含まれる場合は、「%40」等でエンコードする必要がある
  => パーセントエンコード変換できるように、Java で自作した。

参考文献

http://d.hatena.ne.jp/mrgoofy33/20100726/1280154695
http://www.tamoot.net/d/20130508.html

関連記事

【ネットワーク】プロキシ / Proxy
https://dk521123.hatenablog.com/entry/2017/08/08/224300
aptコマンド ~ 入門編
https://dk521123.hatenablog.com/entry/2014/11/28/162708
プロキシサーバソフト [1] ~ Squid / 初期設定編 ~
プロキシサーバソフト [2] ~ Squid / Basic認証編 ~
パーセントエンコーディングJavaで自作する