在Ubuntu 14.04上使用aptitude安装SBT失败

26

我按照scala-sbt主页的指引,尝试通过aptitude在Ubuntu上安装sbt时遇到了几个错误:

echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee -a /etc/apt/sources.list.d/sbt.list
sudo apt-get update
sudo apt-get install sbt

http://www.scala-sbt.org/0.13/tutorial/Installing-sbt-on-Linux.html

我首先遇到了一个软件包验证错误,然后是段错误。

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  sbt
0 upgraded, 1 newly installed, 0 to remove and 6 not upgraded.
Need to get 1,041 kB of archives.
After this operation, 1,224 kB of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
  sbt
Install these packages without verification? [y/N] y
E: Method https has died unexpectedly!
E: Sub-process https received a segmentation fault.

编辑:

我可以正常浏览这个镜像,没有任何证书错误。

通过apt-cache确认正在使用哪个镜像。

$ sudo apt-cache policy sbt
sbt:
  Installed: (none)
  Candidate: 0.13.7
  Version table:
     0.13.7 0
        500 https://dl.bintray.com/sbt/debian/  Packages
     0.13.6 0
        500 https://dl.bintray.com/sbt/debian/  Packages
     0.13.5 0
        500 https://dl.bintray.com/sbt/debian/  Packages
     0.13.2 0
        500 https://dl.bintray.com/sbt/debian/  Packages
     0.13.1-0.1-build-001 0
        500 https://dl.bintray.com/sbt/debian/  Packages
     0.13.0-0.1-build-001 0
        500 https://dl.bintray.com/sbt/debian/  Packages
     0.12.4-0.1-build-001 0
        500 https://dl.bintray.com/sbt/debian/  Packages

编辑2:最终我决定手动下载该软件包,然后使用dpkg进行安装。

3个回答

35

有相关的答案引导我得出这个解决方案:

wget https://dl.bintray.com/sbt/debian/sbt-0.13.7.deb
sudo dpkg -i sbt-0.13.7.deb

附言:我认为官方文档中提供的方法行不通,因为他们没有提供apt用于验证软件包的公钥。

另外,经过一些研究,我发现这个问题更与apt软件包有关,在bugs.launchpad.net上有很多关于这个错误的报告。所以,虽然这仍然是sbt没有提供公钥的问题,但它不应该导致这个错误。我希望canonical能尽快解决这个问题。

相关链接:


是的,这也是我所做的。我会接受它作为答案,但希望typesafe的某人能够参与并解决根本原因,或者更新他们的官方文档。 - Sean Glover
感谢@SeanGlover,我同意typesafe应该意识到这个bug并记录下来或提供一个无bug的安装方法,但是我发现这个问题源于apt包,并影响了许多其他用户。我已经相应地更新了我的答案。 - Sergiy Sokolenko
2
你不需要运行 apt-get update 就可以让它工作。 - David Weber
@DavidWeber,感谢您的注意,我已相应更新了我的答案。 - Sergiy Sokolenko

1
此外,作为临时解决方法,您可以使用HTTP仓库地址代替HTTPS。
只需打开文件/etc/apt/sources.list.d/sbt.list并替换。
deb https://dl.bintray.com/sbt/debian /

使用

deb http://dl.bintray.com/sbt/debian /


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接