1

指示に従って実行します。

wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh

そして私は得る:

...
Hit http://archive.ubuntu.com precise-backports/restricted Translation-en                                                  
Hit http://archive.ubuntu.com precise-backports/universe Translation-en                                                    
Err http://toolbelt.heroku.com ./ Packages                                                                                 
  407  Proxy Authentication Required
Ign http://apt-corp.mirror.corp.google.com goobuntu-backports-precise-stable/main Translation-en_US
...      
Ign http://apt-corp.mirror.corp.google.com ubiquity-precise-stable/main Translation-en
Ign http://apt-corp.mirror.corp.google.com vmware-precise-stable/main Translation-en_US
Ign http://apt-corp.mirror.corp.google.com vmware-precise-stable/main Translation-en
Fetched 2,313 kB in 18s (123 kB/s)
W: Failed to fetch http://toolbelt.heroku.com/ubuntu/./Packages  407  Proxy Authentication Required

これを解決する方法はありますか?

4

1 に答える 1

3

これが通常意味すること

通常、407 Proxy Authentication RequiredAPT を使用してパッケージをインストールしようとしたときのエラーは、次のことを意味します。

  1. HTTP プロキシを使用します。
  2. APT は、それを使用するように適切に構成されていません。

その場合は、次の行を追加することで問題を解決できます

Acquire::http::Proxy "http://user:pass@proxy:port/";

ファイルに追加します/etc/apt/apt.conf( userpassproxy、およびport正しい値を指定します)。

出典: 407 Proxy Authentication Requiredに対するjaseem回答( Ask Ubuntuで)。

奇妙な状況

ここでは、他のソフトウェア ソースが機能しているように見えます。apt-getからデータを読み取ることができarchive.ubuntu.com、おそらくもっと多くのことができます (Ubuntu ボックスのパッケージ マネージャーが完全に壊れている場合に気付くでしょう)。

したがって、問題はプロキシに関連しているように見えますが、マシンの構成ミスの結果ではない可能性があります。

http://toolbelt.heroku.comソフトウェア ソースの興味深い点の 1 つは、その URL に移動すると HTTPS サイトに転送されることです。APT は HTTPS ソフトウェア ソースを完全にサポートしていますが、このソフトウェア ソースは HTTPS ではありません

スクリプトが有効になっているソフトウェア ソースの構成を調べると、次のことがわかります。

$ cat /etc/apt/sources.list.d/heroku.list 
deb http://toolbelt.heroku.com/ubuntu ./

http://toolbelt.heroku.com/ubuntuも HTTPS 404 ページに移動しますが、末尾にスラッシュがあると移動しません。で終了すると、 http://heroku-toolbelt.s3.amazonaws.com/apt//にリダイレクトされます (これは便利ですが、おそらく無関係ですが、末尾に があるかどうかに関係なく正しく動作します)。/

おそらく、Ubuntu またはプロキシは、プロキシの目的で、HTTP と HTTPS が何であるかを理解するのに苦労しています。これは単なる推測ですが、チェックする価値があると思います。

考えられる解決策

/etc/apt/sources.list.d/heroku.listその内容を編集して次のように変更します。

deb http://toolbelt.heroku.com/ubuntu/ ./

(つまり、URL の末尾にスラッシュを追加します。)

次に実行sudo apt-get updateして、エラーが消えるかどうかを確認します。その場合は、Heroku をインストールしてみてください。

  • ダウンロードしたスクリプトによって自動的にインストールされますが、その時点までは到達しませんでした。したがって、手動で実行します:sudo apt-get install heroku

amazonaws ドメイン名に変更しないのはなぜですか?

末尾にスラッシュを追加することを提案したとき、おそらく行を次のように変更するように言わなかった理由を疑問に思ったでしょう。

deb http://heroku-toolbelt.s3.amazonaws.com/apt ./

その理由は、Packagesファイル (リポジトリが提供するパッケージのリスト) が存在しhttp://heroku-toolbelt.s3.amazonaws.com/apt

wget http://heroku-toolbelt.s3.amazonaws.com/apt/./Packages

...それにもかかわらず、どういうわけかapt-get updateファイルをダウンロードできません:

W: Failed to fetch http://heroku-toolbelt.s3.amazonaws.com/apt/./Packages  404  Not Found

aptitudeapt-get同じ問題があり、バグではないことを示唆しています。さらに、./構文は、およびによって取得されるファイル以外 の他のファイルに対しても正常に機能します。Packagesapt-get updateaptitude update

したがって、これがあなた (または誰か) が私が理解できないことを理解できる十分な情報でない限り、それを amazonaws ドメイン名に変更しても機能しない可能性があります。

.debパッケージを手動でダウンロードしてインストールする

プロキシ設定が正しく、プロキシ自体に問題がなく、URL に末尾のスラッシュを追加しても機能しない場合、私が考える唯一の解決策は、.debパッケージを手動でダウンロードしてインストールする回避策です。

まず、エラーの原因となっている Heroku リポジトリを無効にします。

cd /etc/apt/sources.list.d && sudo mv heroku.list heroku.list.save

Packagesファイル(まったくダウンロードできない場合に備えて)には次のように書かれています:

Package: foreman
Priority: standard
Section: main
Maintainer: Heroku
Architecture: all
Version: 0.60.0
Depends: ruby1.9.1
Filename: ./foreman-0.60.0.deb
Size: 89486
MD5sum: 83c614451545d98a09d0bb55e939cc03
SHA1: afd5d9d6ede750cb42bce1ab938dd9ac7bebe100
SHA256: a41532cb9ed60226ca9b4388842215c5ba94f8f5c32d832519858f66d5b19ebe
SHA512: c9327af190b12cb4d7f33cf2480c15c1249b400c4605ea5405ba3e3ddd433789a94471946ef4be452ed1669f1b63bf7150dba03c0e76a0d6f9c9ff981890490a
Description: Manage Procfile-based applications.
 Foreman is a manager for Procfile-based applications. Its aim is to
 abstract away the details of the Procfile format, and allow you to
 either run your application directly or export it to some other
 process management format.

Package: heroku-toolbelt
Priority: standard
Section: main
Installed-Size:
Maintainer: Heroku
Architecture: all
Version: 2.34.0
Depends: git-core, foreman, heroku (= 2.34.0)
Filename: ./heroku-toolbelt-2.34.0.deb
Size: 628
MD5sum: e81597804c537e93f85b89720ae2ebfd
SHA1: ebbb60c1479364f112ea386b5f6199de54dfcf5f
SHA256: c204b87691a5fdd8e0b750512e557ac5c494d4d561ecafb1e6d2c04b078b4bf8
SHA512: 8622e839f4748878a3c3083b09d1a84a16fb0c8c6cd3ac0885e5960810e8116c785e63027ccf87bfd1618be53736dabbcfc47c9c83e072776e9099c5443a64f9
Description: A metapackage for working with the Heroku platform.

Package: heroku
Priority: standard
Section: main
Maintainer: Heroku
Architecture: all
Version: 2.34.0
Depends: ruby1.9.1, libopenssl-ruby1.9.1, libreadline-ruby1.9.1, libssl0.9.8 (>= 0.9.8k) | libssl1.0.0
Filename: ./heroku-2.34.0.deb
Size: 639186
MD5sum: 474461b8217d45a954fc0eeab007b53d
SHA1: 50f2ca475d78d480a47dcc56353707c69209dbb9
SHA256: 7caf91c66e6c439b210b338a06313218b8a38ce5458467771f51df770832c476
SHA512: d009fb299232dc65ce586fe185670d96c1cf30bf15e7dada1f11000e7753951dc77b872caca0897e856a88fe3142f2da9f63b90adaeca213bacdb73455c8c1f1
Description: Client library and CLI to deploy apps on Heroku.

したがって、空のディレクトリを作成し、deb を取得して、それらとその依存関係をインストールします。

mkdir ~/heroku-debs
cd ~/heroku-debs
wget http://toolbelt.heroku.com/ubuntu/foreman-0.60.0.deb
wget http://toolbelt.heroku.com/ubuntu/heroku-toolbelt-2.34.0.deb
wget http://toolbelt.heroku.com/ubuntu/heroku-2.34.0.deb
# You may want to verify hashes now. Ideally, download the Packages file
# yourself, rather than assuming the authenticity of what I've quoted here.
sudo dpkg -i *.deb
sudo apt-get update && sudo apt-get -f install

他のソフトウェアが更新されている場合、それらは自動的に更新されないことに注意してください。ただし、Packagesファイルをダウンロードできると仮定すると、それを使用して時々更新を確認できます。

私が提示した以前の解決策の1つがうまくいったことを願っています. そうでない場合は、これが必要であり、うまくいけば、より醜い解決策がすぐに見つかります。

于 2013-01-18T11:45:40.610 に答える