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

时间:2018-06-19 01:02:59

标签: java google-compute-engine apt-get

我使用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.

2 个答案:

答案 0 :(得分:3)

这是一个班轮

sudo apt-get -y install default-jdk
java -version

答案 1 :(得分:1)

我在尝试在我的一个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用户身份运行命令而不是对您自己的所有内容进行sudo操作,则不需要这样做。)
  • 运行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

对于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

在这一点上,如果所有操作均按预期进行,则以下命令应产生类似于以下内容的内容:

$ 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)

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

埃里克