【问题标题】:how to use sudo in ammonite shell"如何在菊石壳中使用 sudo"
【发布时间】:2016-12-20 17:23:28
【问题描述】:

Scala REPL 糟糕的一件事是没有直接的方式来加载 maven/sbt 依赖项。

我发现菊石壳有一个很方便的东西,比如load.ivy,非常可爱。它还有一个不错的文件系统包装器。

但是我没有找到执行 sudo 的方法。因此,例如,如果我正在遍历目录中的文件并且我没有文件夹的权限,则命令失败

ls.rec! cwd | (x => x.size -> x.last) sortBy (-_._1) take 3

错误

java.nio.file.AccessDeniedException: /Users/foo/Library/Saved Application State/com.bitrock.appinstaller.savedState
  sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
  sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
  sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
  sun.nio.fs.UnixFileSystemProvider.newDirectoryStream(UnixFileSystemProvider.java:407)
  java.nio.file.Files.newDirectoryStream(Files.java:457)

有人知道如何在菊石壳中执行 sudo 吗?

【问题讨论】:

  • 你的问题标题不应该是“如何在菊石壳中使用sudo”吗?
  • 我编辑了标题。谢谢!

标签: scala ammonite


【解决方案1】:

有多种方法可以从 JVM 进程调用中为 sudo 提供密码:

就个人而言,我发现最直接的解决方案是设置SUDO_ASKSPASS 环境变量。类似的东西

val sudo = "sudo"
val askPass = "/usr/bin/ssh-askpass"
val procBuilder = Process(List(sudo, "-A", ???), None, "SUDO_ASKPASS" -> askPass)
val res = procBuilder.!

【讨论】:

    猜你喜欢
    • 2020-04-19
    • 1970-01-01
    • 2017-03-22
    • 1970-01-01
    • 2020-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    相关资源
    最近更新 更多