使用apt-get在Google Compute Engine实例上安装Java 8

Ale*_*ato 6 java apt-get google-compute-engine

我使用apt-get运行了此命令,但收到此错误。我不太确定该如何解决。这是我使用apt-get犯的核心错误,要求做一些不可能的事情吗?有谁知道阻止其安装的根本原因?

sudo apt-get install openjdk-8-jdk                                                                                       
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 openjdk-8-jdk : Depends: openjdk-8-jre (= 8u171-b11-1~bpo8+1) but it is not going to be installed
                 Depends: openjdk-8-jdk-headless (= 8u171-b11-1~bpo8+1) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
Run Code Online (Sandbox Code Playgroud)

Vin*_*ent 8

这是一个单班轮

sudo apt-get -y install default-jdk
java -version
Run Code Online (Sandbox Code Playgroud)


Eri*_*een 3

我在尝试在我的一个 Google Compute Engine 实例上安装 Java 8 JDK 时遇到了类似的问题,并在此处找到了解决方案(但请先阅读下面的修改):

http://cgrant.io/tutorials/gcp/compute/gce/how-to-deploy-a-java-application-to-google-compute-engine/

在“部署脚本”部分中,在 install.sh 显示的代码块内,我提取了适用的行并进行了一些修改来运行它们,如下所示:

  • 我使用 sudo 运行了所有命令,但在运行任何命令之前,按照他的做法和“su -”(更改为 root)可能更合适。
  • 将所有者和组更改为我自己的,因为尽管使用 sudo 运行所有命令,但我还是遇到了权限错误(如果您以 root 身份运行命令而不是像自己一样执行所有命令,则不需要执行此操作)。
  • 在运行 apt-key 之前运行“apt-get install dirmngr”,因为我收到命令不存在的错误。
  • 将 --allow-unauthenticated 标志添加到“apt-get install openjdk-8-jdk -y”命令中。

以下是我成功安装 Java 8 Open JDK 的实际命令:

# Grant yourself permission to the necessary directory
sudo chown $YOUR_USER_NAME /etc/apt/sources.list.d 
sudo chgrp $YOUR_GROUP_ID /etc/apt/sources.list.d

sudo echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee /etc/apt/sources.list.d/webupd8team-java.list

sudo echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list

sudo apt-get install dirmngr       
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886
sudo apt-get update

sudo apt-get install openjdk-8-jdk -y --allow-unauthenticated
Run Code Online (Sandbox Code Playgroud)

对于 Oracle Java 8 JDK:

# Grant yourself permission to the necessary directory
sudo chown $YOUR_USER_NAME /etc/apt/sources.list.d 
sudo chgrp $YOUR_GROUP_ID /etc/apt/sources.list.d

sudo echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee /etc/apt/sources.list.d/webupd8team-java.list

sudo echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list

sudo apt-get install dirmngr 
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886
sudo apt-get update

sudo echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections
sudo apt-get install oracle-java8-installer -y --allow-unauthenticated
Run Code Online (Sandbox Code Playgroud)

此时,如果一切按预期进行,以下命令应该生成类似于以下内容的内容:

$ javac -version
javac 1.8.0_171

$ java -version
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-1~deb9u1-b11)
OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode)
Run Code Online (Sandbox Code Playgroud)

祝你好运,请告诉我这是否适合你。如果没有,我很乐意根据需要为您提供进一步帮助。

埃里克