私の会社はHTTPプロキシを使用しているため、さまざまなUbuntu 12.04サーバーを適切に構成する必要があります。つまり、\etc\apt\apt.conf.d\80proxy
を次のように設定する必要があります。
Acquire::http::Proxy "http://proxy.mycompany.com:80";
Acquire::http::No-Cache true;
さて、数日後、この方法は突然機能しなくなりました。合計不一致エラーが発生しました。 私はstackoverflowまたはwebで見られる通常のトリックをすべて試しました、とりわけ:
Sudo rm -fR /var/lib/apt/lists/*
Sudo apt-get clean
しかし、何もうまくいかないようです。運もなくFTPサーバーに切り替えさえしました。この問題の根本的な解決策は何ですか?プロキシサーバーに何らかの問題がある可能性はありますか?どうなり得るか?
Ubuntu 12.04を使用する
プロキシ経由でapt-getを使用するには、次の手順を実行します。ただし、インターネットにアクセスできる必要があります(Firefoxなどのブラウザー経由)。
Sudo apt-get --print-uris install PROGRAM
これにより、インストールの実行に必要なパッケージのURL(およびmd5sumsなどのその他の情報)が出力されるため、ダウンロードできます。たとえば、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
次に、与えられたリンクから(できれば空のフォルダーに).deb
ファイルを、プロキシーなどを介して動作するブラウザーを介してダウンロードし、Software Centerを使用してインストールできます。または、ターミナルでcd /FOLDER/WITH/DOWNLOADED-DEB-FILES
とこれらのコマンドのいずれかを使用します
dpkg -i *.deb
gdebi *.deb
これは少し遅くて面倒ですが、HTTPプロキシで動作するようです。 http://packages.ubuntu.com/ からパッケージを取得することもできます
端末からaptを単独で使用することに関しては、次のことがうまくいくことがわかりました。
/etc/apt/apt.conf
を空のままにして、aptが$*_proxy
環境変数にフォールバックするようにします。環境変数が適切に設定されていることを確認します。たとえば、.bashrcを追加できます。
http_proxy="http://username:password@proxyserver:port"
# And so on for other proxy settings like https_proxy and ftp_proxy
ユーザー名またはパスワードに特殊文字が含まれている場合は、 RLエンコード にする必要があります。
独自の環境変数ではなく、your環境変数を使用するようにします。これは、/etc/sudoers
ファイルを編集することにより行われます。 これを行うときは注意してください!Sudo visudo
コマンドのみを使用してファイルを編集してください。エラーがあると、Sudoモードに再度入ることができなくなります。以下を追加します。
Defaults env_keep+="http_proxy https_proxy ftp_proxy socks_proxy"
これにより、Sudo apt-get install ...
などの実行時にSudoがこれらの変数を保持することが保証されます。
これは buntuのapt-get howto から見つけました。
動作するかどうか教えてください:)
Wilfに追加するために、次のコマンドを実行して、Chromeを介したダウンロードを自動化しました。 Firefox、さらに簡単にできることを理解しています。
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
編集:したがって、ダウンロードが完了すると、答え全体が1つの投稿になります。
cd /FOLDER/WITH/DOWNLOADED-DEB-FILES; dpkg -i *.deb
あなたがこれをすでに試したかどうかはわかりませんが、どうですか:
export http_proxy=proxy.mycompany.com:80
後で確認できます:
echo $http_proxy
ここでの1つの落とし穴は、非特権ユーザーとしてプロキシを設定した後に実行すると
Sudo apt-get install REQUIRED_PACKAGE
ここで、REQUIRED_PACKAGEはインストールするソフトウェアであり、プロキシを超えてマシンに接続するとハングすることがわかります。その後、次のようにSudoコマンドに-Eを渡して動作します。
Sudo -E apt-get install REQUIRED_PACKAGE
これには、現在の環境(プロキシ環境設定)を使用してrootとしてコマンドを実行する効果があります