半ば諦めて公式対応してくれるのを期待していたのですが、ふと思いついたのでやってみたらできました。
apt updateできない?
いろいろやりたいことを妄想して、いざパッケージをインストールしてみようとすると、いきなり壁にぶちあたります。
curlでのhttpは通信できるけれど、aptコマンドでのhttpでは通らない。。
apt update / install でリポジトリにつながらない (ただし、 curl だとつながる)
私の環境でもSymantec Endpoint Protectionを使っていて、一応、ファイアーウォールを無効にすれば、apt updateは成功しましたが、いつも無効にしておくわけにもいきません。
また、ファイアーウォールのルールはサーバー側で制御しているので、あまり多くのことを試すことができませんが、アプリケーションごとに通信の許可(ホワイトリスト)みたいなことはやっていませんでした。
ローカル通信は別なルールになるのでは?
ファイアウォールのルールで遮断されているなら、別なルールを使う通信ならいけるかも、と思ってWindows側のローカルにプロキシを立ててそこを経由させてみました。
プロキシ経由で接続してみる
プロキシには簡単に立てられる、BlackJumboDogを使わせていただきました。
msiとzipで配布されているので、よりお手軽なほうのzipでダウンロードしてきて、解凍。
起動したら、オプション→プロキシサーバ→ブラウザのダイアログで、「プロキシサーバ[Browser]を使用する」にチェックをつけて、以下の設定を。
-
基本設定タブ
-
クライアントから見たポート:8080
-
待ち受けるネットワーク:IPv4 127.0.0.1
-
ACLタブ
-
指定したアドレスからのアクセスのみを許可する
-
利用者(アドレス)の指定:お好きな名前で127.0.0.1を追加
準備ができたら、Bashでこんな感じにするといけます。
# export http_proxy="http://localhost:8080/"
# apt update
sudoでやりたいって方は、-Eオプションをつけて実行すると環境変数を引き継いでくれます。
$ export http_proxy="http://localhost:8080/"
$ sudo -E apt update