将 JDK 安装到 Azure Batch 中池的计算节点
Installing JDK to a pool's compute nodes in Azure Batch
我必须在池中的 Ubuntu 个服务器节点上安装 java。我试图通过任务来完成,但每次我尝试使用以下代码通过任务安装 java 时:
TaskAddParameter taskToAdd = new TaskAddParameter();
taskToAdd.withId(taskId).withCommandLine(String.format("sudo apt-get install openjdk-8-jdk"));
// Associate resource file with task
taskToAdd.withResourceFiles(getListOfResourceFiles(sas));
我收到一条错误消息
sudo: no tty present and no askpass program specified
我也通过在池的 StartTask 中给出此命令在池级别尝试了上述方法,但它也给了我同样的错误。
我需要在我的池节点上安装 java,以便我可以 运行 我的 java 程序。
您应该在池的 StartTask 上执行此操作。
对于 commandLine
,您需要调用 shell,如最佳实践指南 here 中所述。所以代替:
sudo apt-get install openjdk-8-jdk
做:
/bin/bash -c "sudo apt-get install openjdk-8-jdk"
此外,您应该使用 PoolAdmin AutoUser 用户身份,这样您就不必调用 sudo
。请参阅 this guide 了解更多信息。
我必须在池中的 Ubuntu 个服务器节点上安装 java。我试图通过任务来完成,但每次我尝试使用以下代码通过任务安装 java 时:
TaskAddParameter taskToAdd = new TaskAddParameter();
taskToAdd.withId(taskId).withCommandLine(String.format("sudo apt-get install openjdk-8-jdk"));
// Associate resource file with task
taskToAdd.withResourceFiles(getListOfResourceFiles(sas));
我收到一条错误消息
sudo: no tty present and no askpass program specified
我也通过在池的 StartTask 中给出此命令在池级别尝试了上述方法,但它也给了我同样的错误。
我需要在我的池节点上安装 java,以便我可以 运行 我的 java 程序。
您应该在池的 StartTask 上执行此操作。
对于 commandLine
,您需要调用 shell,如最佳实践指南 here 中所述。所以代替:
sudo apt-get install openjdk-8-jdk
做:
/bin/bash -c "sudo apt-get install openjdk-8-jdk"
此外,您应该使用 PoolAdmin AutoUser 用户身份,这样您就不必调用 sudo
。请参阅 this guide 了解更多信息。