Heroku toolbelt无法安装407(Ubuntu / Precise)

时间:2013-01-15 19:48:20

标签: ubuntu heroku ubuntu-12.04

我按照说明操作:

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

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

这通常意味着什么

尝试使用APT安装软件包时通常会出现407 Proxy Authentication Required错误:

  1. 您使用HTTP代理。
  2. APT未正确配置为使用它。
  3. 如果是这种情况,那么您可以通过添加行

    来解决问题
    Acquire::http::Proxy "http://user:pass@proxy:port/";

    到文件/etc/apt/apt.conf(提供 user pass proxy port 正确的值。)

    来源: jaseemanswer407 Proxy Authentication RequiredAsk Ubuntu上)。< / em>的

    好奇的情况

    这里,其他软件资源似乎有效。 apt-get能够从archive.ubuntu.com读取数据,并且可能会做得更多(正如您在Ubuntu框中的软件包管理器彻底损坏时会注意到的那样)。

    因此,虽然问题似乎与代理相关,但可能不是您计算机上配置错误的结果。

    关于http://toolbelt.heroku.com软件源的一个有趣的事情是导航到该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
    

    aptitude有同样的问题,表明它不是apt-get错误。此外,./语法适用于Packagesapt-get update检索到的除 aptitude update之外的其他文件

    因此,除非这是足够的信息,你(或某人)可以弄清楚我不能做什么,所以不太可能将其更改为amazonaws域名也可以。

    手动下载并安装.deb

    如果您的代理设置正确且代理本身没有问题,并且向URL添加尾部斜杠不起作用,那么我能想到的唯一解决方案是手动下载和安装{{}的解决方法1}}包。

    首先,禁用导致错误的Heroku存储库:

    .deb

    cd /etc/apt/sources.list.d && sudo mv heroku.list heroku.list.save 文件(如果你根本无法下载的话)说:

    Packages

    所以,创建一个空目录,获取debs,并安装它们及其依赖项:

    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.
    

    请记住,当您使用其他软件时,它们不会自动更新。但是,假设您能够下载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 文件,则可以使用该文件不时检查更新。

    我希望我提出的早期解决方案之一能够为您服务。如果没有,这应该是,并且希望很快就能找到一个不那么难看的解决方案。