Ubuntu 安装 Scala-Chisel 及疑难解决
今天刚刚打算学学Chisel,看了一会儿书打算安一下路径,差点没给我人整麻掉,来写一下遇到了一堆问题怎么搞。
(仅限Ubuntu,其它系统没搞过,不过说不定有的参考?)
安装JDK
- Chisel是一个Scala的库,安装Chisel和最方便的途径是通过sbt(Scala Bulid Tool)。而Scala本身依赖于安装Java JDK 1.8,所以先安装一下JDK,顺便写一下,JDK,就是Java Development Kit。
这一步倒是应该不存在什么问题(我看到有文章说对于Linux,Java 8是已经默认安装的,可惜我的20.04.2.0是妹有的…)
$ sudo apt install openjdk-8-jdk git make gtkwave
顺利完成!好日子到头!
解决Scala问题
先来一个基础方案,就如果你能什么问题都不出的话,那我只能说确实牛(这玩意儿哪儿都一样,我参考的是《Digital Design with Chisel》上的)
$ echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee -a /etc/apt/sources.list.d/sbt.list
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823
$ sudo apt-get update
$ sudo apt-get install sbt
如果最后一步没有显示
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
E: 无法定位软件包 sbt
那可能真的成功了!
赶快试试
$ sbt sbtVersion
有版本号!
好耶!
然后赶快爬。
这一部分出了两种问题
-
第一种:(疑似是网的问题)
在输入
$ sudo apt-get update
后,命令行会显示
命中:1 http://security.ubuntu.com/ubuntu focal-security InRelease 命中:2 http://cn.archive.ubuntu.com/ubuntu focal InRelease 命中:3 http://download.opensuse.org/repositories/home:/manuelschneid3r/xUbuntu_20.04 InRelease 命中:4 http://ppa.launchpad.net/nilarimogard/webupd8/ubuntu focal InRelease 命中:5 http://cn.archive.ubuntu.com/ubuntu focal-updates InRelease 命中:6 http://cn.archive.ubuntu.com/ubuntu focal-backports InRelease 错误:7 https://dl.bintray.com/sbt/debian InRelease 403 Forbidden [IP: 35.155.142.53 443] 正在读取软件包列表... 完成 E: 无法下载 https://dl.bintray.com/sbt/debian/InRelease 403 Forbidden [IP: 35.155.142.53 443] E: 仓库 “https://dl.bintray.com/sbt/debian InRelease” 没有数字签名。 N: 无法安全地用该源进行更新,所以默认禁用该源。 N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。
就IP上不去,然后看了眼sbt官网能不能直接下载安装包,发现也并不行,然后一怒之下直接梯子开了全局,然后就…
出了第二种错误…
(但是后来换回来PAC就行了,非常的怪…)
-
第二种错误
改掉上面的问题之后,错误变成了这样
命中:1 http://cn.archive.ubuntu.com/ubuntu focal InRelease 获取:2 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB] 命中:3 http://ppa.launchpad.net/nilarimogard/webupd8/ubuntu focal InRelease 命中:4 http://download.opensuse.org/repositories/home:/manuelschneid3r/xUbuntu_20.04 InRelease 获取:5 http://cn.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB] 获取:8 http://cn.archive.ubuntu.com/ubuntu focal-backports InRelease [101 kB] 获取:6 https://scala.jfrog.io/artifactory/debian all InRelease [3,558 B] 错误:6 https://scala.jfrog.io/artifactory/debian all InRelease 由于没有公钥,无法验证下列签名: NO_PUBKEY 99E82A75642AC823 忽略:7 https://scala.jfrog.io/artifactory/debian InRelease 获取:9 https://scala.jfrog.io/artifactory/debian Release [815 B] 获取:10 https://scala.jfrog.io/artifactory/debian Release.gpg [821 B] 忽略:10 https://scala.jfrog.io/artifactory/debian Release.gpg 正在读取软件包列表... 完成 W: GPG 错误:https://scala.jfrog.io/artifactory/debian all InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY 99E82A75642AC823 E: 仓库 “https://repo.scala-sbt.org/scalasbt/debian all InRelease” 没有数字签名。 N: 无法安全地用该源进行更新,所以默认禁用该源。 N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。 W: GPG 错误:https://scala.jfrog.io/artifactory/debian Release: 由于没有公钥,无法验证下列签名: NO_PUBKEY 99E82A75642AC823 E: 仓库 “https://repo.scala-sbt.org/scalasbt/debian Release” 没有数字签名。 N: 无法安全地用该源进行更新,所以默认禁用该源。 N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。
错误内容变成了
由于没有公钥,无法验证下列签名: NO_PUBKEY 99E82A75642AC823
没有公钥咱们就安呗
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 99E82A75642AC823
然后又错了…
Executing: /tmp/apt-key-gpghome.kXcpa5BOtg/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys 99E82A75642AC823 gpg: 密钥 99E82A75642AC823:公钥 “sbt build tool <scalasbt@gmail.com>” 已导入 gpg: 处理的总数:1 gpg: 已导入:1 gpg: invalid key resource URL '/tmp/apt-key-gpghome.kXcpa5BOtg/home:manuelschneid3r.asc.gpg' gpg: 密钥区块资源‘(null)’:一般错误 gpg: key 1488EB46E192A257: 1 个签名因密钥遗失而未被检查 gpg: key 1488EB46E192A257: 1 个签名因密钥遗失而未被检查 gpg: key 3B4FE6ACC0B21F32: 3 个签名因密钥遗失而未被检查 gpg: key D94AA3F0EFE21092: 3 个签名因密钥遗失而未被检查 gpg: key 871920D1991BC93C: 1 个签名因密钥遗失而未被检查 gpg: 处理的总数:7 gpg: 已跳过的新密钥:7
差点心态爆炸
然后接着找,最后在一个国外的论坛上找到了解决方案
[参考问题](apt - “Invalid key resource URL” When adding key for Elementary tweaks - elementary OS Stack Exchange),咱也不知道为啥,反正就
$ sudo rm /etc/apt/trusted.gpg.d/home:manuelschneid3r.*
然后就完成啦!