- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是 Puppet 的新手,如果这是一个愚蠢的问题,请原谅我。我找不到任何类似的问题。
这是我正在尝试做的事情:我正在使用 jenkins-puppet 使用 vagrant 和 puppet 配置一个 jenkins 环境模块。到目前为止,一切都很好。我可以创建一个主服务器,并使用 swarm 插件,我可以使用模块中的 jenkins::slave
包轻松创建一个从服务器 using
class { 'jenkins::slave':
masterurl => 'http://jenkins-master-url:8080',
version => "2.0",
slave_mode => "exclusive",
labels => "scala sbt"
}
但是我需要在这个从机上使用 scala 和 sbt,这就是我遇到问题的地方。安装工作正常使用
package { "openjdk": name => "openjdk-7-jre" }
## SBT
wget::fetch { "download sbt":
source => "https://dl.bintray.com/sbt/debian/sbt-0.13.2.deb",
destination => "/tmp/sbt-0.13.2.deb",
cache_dir => "/vagrant/cache/"
}
package { "sbt":
provider => "dpkg",
source => "/tmp/sbt-0.13.2.deb",
require => [ File["/tmp/sbt-0.13.2.deb"], Package["scala"] ]
}
file_line { "sbt options":
path => "/etc/environment",
line => "SBT_OPTS=\"-Xms40M -Xmx2G -Xss2M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=1G -Djavax.net.ssl.trustStore=cacerts -Djavax.net.ssl.trustStorePassword=********\"",
match => "^SBT_OPTS"
}
## SCALA
wget::fetch { "download scala":
source => "http://www.scala-lang.org/files/archive/scala-2.10.3.deb",
destination => "/tmp/scala-2.10.3.deb",
cache_dir => "/vagrant/cache/"
}
package { "libjansi-java": }
package { "scala":
provider => "dpkg",
source => "/tmp/scala-2.10.3.deb",
require => [ File["/tmp/scala-2.10.3.deb"], Package["openjdk"], Package["libjansi-java"] ]
}'
但是当我尝试从一个 puppet 脚本运行这些命令时,它无法告诉我缺少 java6 依赖项(已经与 jenkins 服务一起安装)并告诉我运行 apt-get -f install
.当我通过 ssh 连接到机器并执行此操作时,它成功了。
Error: Execution of '/usr/bin/dpkg --force-confold -i /tmp/scala-2.10.3.deb' returned 1: Selecting previously unselected package scala. ==> jenkins-slave: (Reading database ... 40786 files and directories currently installed.)
==> jenkins-slave: Preparing to unpack /tmp/scala-2.10.3.deb ...
==> jenkins-slave: Unpacking scala (2.10.3-400) ...
==> jenkins-slave: dpkg: dependency problems prevent configuration of scala:
==> jenkins-slave: scala depends on openjdk-6-jre | java6-runtime; however:
==> jenkins-slave: Package openjdk-6-jre is not installed.
==> jenkins-slave: Package java6-runtime is not installed.
==> jenkins-slave:
==> jenkins-slave: dpkg: error processing package scala (--install):
==> jenkins-slave: dependency problems - leaving unconfigured
==> jenkins-slave: Processing triggers for man-db (2.7.0.2-5) ...
==> jenkins-slave: Errors were encountered while processing:
==> jenkins-slave: scala
==> jenkins-slave: Error: /Stage[main]/Main/Node[jenkins-slave]/Package[scala]/ensure: change from purged to present failed: Execution of '/usr/bin/dpkg --force-confold -i /tmp/scala-2.10.3.deb' returned 1: Selecting previously unselected package scala.
==> jenkins-slave: (Reading database ... 40786 files and directories currently installed.)
==> jenkins-slave: Preparing to unpack /tmp/scala-2.10.3.deb ...
==> jenkins-slave: Unpacking scala (2.10.3-400) ...
==> jenkins-slave: dpkg: dependency problems prevent configuration of scala:
==> jenkins-slave: scala depends on openjdk-6-jre | java6-runtime; however:
==> jenkins-slave: Package openjdk-6-jre is not installed.
==> jenkins-slave: Package java6-runtime is not installed.
==> jenkins-slave:
==> jenkins-slave: dpkg: error processing package scala (--install):
==> jenkins-slave: dependency problems - leaving unconfigured
==> jenkins-slave: Processing triggers for man-db (2.7.0.2-5) ...
==> jenkins-slave: Errors were encountered while processing:
==> jenkins-slave: scala
==> jenkins-slave: Notice: /Package[sbt]: Dependency Package[scala] has failures: true
==> jenkins-slave: Warning: /Package[sbt]: Skipping because of failed dependencies
==> jenkins-slave: Error: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install openjdk-7-jdk' returned 100: Reading package lists...
==> jenkins-slave: Building dependency tree...
==> jenkins-slave: Reading state information...
==> jenkins-slave: You might want to run 'apt-get -f install' to correct these:
==> jenkins-slave: The following packages have unmet dependencies:
==> jenkins-slave: openjdk-7-jdk : Depends: openjdk-7-jre (= 7u91-2.6.3-1~deb8u1) but it is not going to be installed
==> jenkins-slave: Recommends: libxt-dev but it is not going to be installed
==> jenkins-slave: scala : Depends: openjdk-6-jre but it is not installable or
==> jenkins-slave: java6-runtime
==> jenkins-slave: E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
==> jenkins-slave: Error: /Stage[main]/Java/Package[java]/ensure: change from purged to present failed: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install openjdk-7-jdk' returned 100: Reading package lists...
==> jenkins-slave: Building dependency tree...
==> jenkins-slave: Reading state information...
==> jenkins-slave: You might want to run 'apt-get -f install' to correct these:
==> jenkins-slave: The following packages have unmet dependencies:
==> jenkins-slave: openjdk-7-jdk : Depends: openjdk-7-jre (= 7u91-2.6.3-1~deb8u1) but it is not going to be installed
==> jenkins-slave: Recommends: libxt-dev but it is not going to be installed
==> jenkins-slave: scala : Depends: openjdk-6-jre but it is not installable or
==> jenkins-slave: java6-runtime
==> jenkins-slave: E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
==> jenkins-slave: Notice: /Stage[main]/Java::Config/Exec[update-java-alternatives]: Dependency Package[java] has failures: true
==> jenkins-slave: Warning: /Stage[main]/Java::Config/Exec[update-java-alternatives]: Skipping because of failed dependencies
==> jenkins-slave: Notice: /Stage[main]/Java/Anchor[java::end]: Dependency Package[java] has failures: true
==> jenkins-slave: Warning: /Stage[main]/Java/Anchor[java::end]: Skipping because of failed dependencies
==> jenkins-slave: Notice: /Stage[main]/Jenkins::Slave/User[jenkins-slave_user]/ensure: created
==> jenkins-slave: Notice: /Stage[main]/Jenkins::Slave/Exec[get_swarm_client]/returns: executed successfully
==> jenkins-slave: Error: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install daemon' returned 100: Reading package lists...
==> jenkins-slave: Building dependency tree...
==> jenkins-slave: Reading state information...
==> jenkins-slave: You might want to run 'apt-get -f install' to correct these:
==> jenkins-slave: The following packages have unmet dependencies:
==> jenkins-slave: scala : Depends: openjdk-6-jre but it is not installable or
==> jenkins-slave: java6-runtime
==> jenkins-slave: E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
==> jenkins-slave: Error: /Stage[main]/Jenkins::Slave/Package[daemon]/ensure: change from purged to present failed: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install daemon' returned 100: Reading package lists...
==> jenkins-slave: Building dependency tree...
==> jenkins-slave: Reading state information...
==> jenkins-slave: You might want to run 'apt-get -f install' to correct these:
==> jenkins-slave: The following packages have unmet dependencies:
==> jenkins-slave: scala : Depends: openjdk-6-jre but it is not installable or
==> jenkins-slave: java6-runtime
==> jenkins-slave: E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
但是当我使用 2 个脚本(首先安装服务,然后执行 scala/sbt 的东西,而不运行 apt-get -f install
)时它成功了。
两个文件的输出
==> jenkins-slave: Notice: Compiled catalog for jenkins-slave.jade.box in environment production in 1.97 seconds
==> jenkins-slave: Notice: /Stage[main]/Jenkins::Slave/File[/etc/default/jenkins-slave]/ensure: defined content as '{md5}fc9a0abb2cdd083b052e2a1ae747fc13' ==> jenkins-slave: Notice: /Stage[main]/Java/Package[java-common]/ensure: ensure changed 'purged' to 'present'
==> jenkins-slave: Notice: /Stage[main]/Jenkins::Slave/File[/etc/init.d/jenkins-slave]/ensure: defined content as '{md5}dd82f282fd273568cdc22b7475a0ef0b'
==> jenkins-slave: Notice: /Stage[main]/Java/Package[java]/ensure: ensure changed 'purged' to 'present'
==> jenkins-slave: Notice: /Stage[main]/Jenkins::Slave/User[jenkins-slave_user]/ensure: created
==> jenkins-slave: Notice: /Stage[main]/Jenkins::Slave/Exec[get_swarm_client]/returns: executed successfully
==> jenkins-slave: Notice: /Stage[main]/Timezone/File[/etc/timezone]/content: content changed '{md5}a1aea69cebd51fc6bebc02f7a550fbcf' to '{md5}6322bc8cb3ec53f5eea33201b434b74b'
==> jenkins-slave: Notice: /Stage[main]/Timezone/Exec[update_timezone]: Triggered 'refresh' from 1 events
==> jenkins-slave: Notice: /Stage[main]/Timezone/File[/etc/localtime]/ensure: ensure changed 'file' to 'link'
==> jenkins-slave: Notice: /Stage[main]/Jenkins::Slave/Package[daemon]/ensure: ensure changed 'purged' to 'present'
==> jenkins-slave: Notice: /Stage[main]/Jenkins::Slave/Service[jenkins-slave]/ensure: ensure changed 'stopped' to 'running'
==> jenkins-slave: Notice: Finished catalog run in 46.95 seconds
==> jenkins-slave: Running provisioner: puppet...
==> jenkins-slave: Running Puppet with sbt-scala.pp...
==> jenkins-slave: stdin: isseconds not a tty
==> jenkins-slave: Warning: Config file /etc/puppet/hiera.yaml not found, using Hiera defaults
==> jenkins-slave: Notice: Compiled catalog for jenkins-slave.jade.box in environment production in 1.22 seconds
==> jenkins-slave: Notice: /Stage[main]/Main/Node[jenkins-slave]/File_line[sbt options]/ensure: created
==> jenkins-slave: Notice: /Stage[main]/Main/Node[jenkins-slave]/Wget::Fetch[download sbt]/Exec[wget-download sbt]/returns: executed successfully
==> jenkins-slave: Notice: /Stage[main]/Main/Node[jenkins-slave]/Wget::Fetch[download sbt]/File[/tmp/sbt-0.13.2.deb]/ensure: defined content as '{md5}daa304595c0132c34b170b1e1a6b4044'
==> jenkins-slave: Notice: /Stage[main]/Main/Node[jenkins-slave]/Wget::Fetch[download scala]/Exec[wget-download scala]/returns: executed successfully
==> jenkins-slave: Notice: /Stage[main]/Main/Node[jenkins-slave]/Wget::Fetch[download scala]/File[/tmp/scala-2.10.3.deb]/ensure: defined content as '{md5}59f6ff95433df2105ed27dd77bb29a9e'
==> jenkins-slave: Notice: /Stage[main]/Main/Node[jenkins-slave]/Package[libjansi-java]/ensure: ensure changed 'purged' to 'present'
==> jenkins-slave: Notice: /Stage[main]/Main/Node[jenkins-slave]/Package[scala]/ensure: ensure changed 'purged' to 'present'
==> jenkins-slave: Notice: /Stage[main]/Main/Node[jenkins-slave]/Package[sbt]/ensure: ensure changed 'purged' to 'present'
==> jenkins-slave: Notice: Finished catalog run in 3.65
所以基本上我的问题是,这个错误是什么意思,是否可以通过某种方式从一个脚本运行它?为了可维护性和保持代码清洁,我希望这样做。
我的两个脚本的 vagrantfile 看起来像
config.vm.define "linux-slave" do |node|
node.vm.box = "debian/jessie64"
node.vm.hostname = "jenkins-slave.box"
node.vm.network :private_network, ip: "172.28.128.12"
node.vm.provider :virtualbox do |v|
v.memory = 2048
v.cpus = 2
end
node.vm.provision :shell, inline: "apt-get update && apt-get install -y puppet vim"
node.vm.provision :puppet do |puppet|
puppet.manifests_path = "jenkins-slave"
puppet.module_path = ".modules"
puppet.manifest_file = "default.pp"
puppet.options = "--parser future"
end
node.vm.provision :puppet do |puppet|
puppet.manifests_path = "jenkins-slave"
puppet.module_path = ".modules"
puppet.manifest_file = "sbt-scala.pp"
puppet.options = "--parser future"
end
end
我想去掉第二个 node.vm.provision :puppet do |puppet| ...结束
部分。
它是 puppet 运行命令的顺序吗?我可以以某种方式强制执行此操作吗?
身边有没有懂这个的 puppet 大师?
最佳答案
安装告诉您需要安装 Java 才能将 scala 安装为 there is a dependency on 1.6 or later
安装 Java 的方法有很多种,但我建议使用 puppet module
关于linux - 无法从与 jenkins 服务相同的文件中提供 scala/sbt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33953042/
我有一些 Scala 代码,它用两个不同版本的类型参数化函数做了一些漂亮的事情。我已经从我的应用程序中简化了很多,但最后我的代码充满了形式 w(f[Int],f[Double]) 的调用。哪里w()是
如果我在同一目录中有两个单独的未编译的 scala 文件: // hello.scala object hello { def world() = println("hello world") }
val schema = df.schema val x = df.flatMap(r => (0 until schema.length).map { idx => ((idx, r.g
环境: Play 2.3.0/Scala 2.11.1/IntelliJ 13.1 我使用 Typesafe Activator 1.2.1 用 Scala 2.11.1 创建一个新项目。项目创建好后
我只是想知道如何使用我自己的类扩展 Scala 控制台和“脚本”运行程序,以便我可以通过使用实际的 Scala 语言与其通信来实际使用我的代码?我应将 jar 放在哪里,以便无需临时配置即可从每个 S
我已经根据 README.md 文件安装了 ensime,但是,我在低级 ensime-server 缓冲区中出现以下错误: 信息: fatal error :scala.tools.nsc.Miss
我正在阅读《Scala 编程》一书。在书中,它说“一个函数文字被编译成一个类,当在运行时实例化时它是一个函数值”。并且它提到“函数值是对象,因此您可以根据需要将它们存储在变量中”。 所以我尝试检查函数
我有 hello world scala native 应用程序,想对此应用程序运行小型 scala 测试我使用通常的测试命令,但它抛出异常: NativeMain.scala object Nati
有few resources在网络上,在编写与代码模式匹配的 Scala 编译器插件方面很有指导意义,但这些对生成代码(构建符号树)没有帮助。我应该从哪里开始弄清楚如何做到这一点? (如果有比手动构建
我是 Scala 的新手。但是,我用 创建了一个中等大小的程序。斯卡拉 2.9.0 .现在我想使用一个仅适用于 的开源库斯卡拉 2.7.7 . 是吗可能 在我的 Scala 2.9.0 程序中使用这个
有没有办法在 Scala 2.11 中使用 scala-pickling? 我在 sonatype 存储库中尝试了唯一的 scala-pickling_2.11 工件,但它似乎不起作用。我收到消息:
这与命令行编译器选项无关。如何以编程方式获取代码内的 Scala 版本? 或者,Eclipse Scala 插件 v2 在哪里存储 scalac 的路径? 最佳答案 这无需访问 scala-compi
我正在阅读《Scala 编程》一书,并在第 6 章中的类 Rational 实现中遇到了一些问题。 这是我的 Rational 类的初始版本(基于本书) class Rational(numerato
我是 Scala 新手,我正在尝试开发一个使用自定义库的小项目。我在库内创建了一个mysql连接池。这是我的库的build.sbt organization := "com.learn" name :
我正在尝试运行一些 Scala 代码,只是暂时打印出“Hello”,但我希望在 SBT 项目中编译 Scala 代码之前运行 Scala 代码。我发现在 build.sbt 中有以下工作。 compi
Here链接到 maven Scala 插件使用。但没有提到它使用的究竟是什么 Scala 版本。我创建了具有以下配置的 Maven Scala 项目: org.scala-tools
我对 Scala 还很陌生,请多多包涵。我有一堆包裹在一个大数组中的 future 。 future 已经完成了查看几 TB 数据的辛勤工作,在我的应用程序结束时,我想总结上述 future 的所有结
我有一个 scala 宏,它依赖于通过包含其位置的静态字符串指定的任意 xml 文件。 def myMacro(path: String) = macro myMacroImpl def myMacr
这是我的功能: def sumOfSquaresOfOdd(in: Seq[Int]): Int = { in.filter(_%2==1).map(_*_).reduce(_+_) } 为什么我
这个问题在这里已经有了答案: Calculating the difference between two Java date instances (45 个答案) 关闭 5 年前。 所以我有一个这
我是一名优秀的程序员,十分优秀!