当我用shell运行我的Vagrantfile时,我在安装Java 8时遇到了同样的错误:
StackOverflow - jdk-8-is-not-installed-error-404-not-found
为了修复这个错误,我添加了以下代码行:
sudo sed -i 's|JAVA_VERSION=8u151|JAVA_VERSION=8u162|' /var/lib/dpkg/info/oracle-java8-installer.*
sudo sed -i 's|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u162-b12/0da788060d494f5095bf8624735fa2f1/|' /var/lib/dpkg/info/oracle-java8-installer.*
sudo sed -i 's|SHA256SUM_TGZ="c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f"|SHA256SUM_TGZ="68ec82d47fd9c2b8eb84225b6db398a72008285fafc98631b1ff8d2229680257"|' /var/lib/dpkg/info/oracle-java8-installer.*
sudo sed -i 's|J_DIR=jdk1.8.0_151|J_DIR=jdk1.8.0_162|' /var/lib/dpkg/info/oracle-java8-installer.*
我在我的Shell中有这个java代码块:
# /*======================
# = JAVA =
# ======================*/
# https://www.digitalocean.com/community/tutorials/how-to-install-java-with-apt-get-on-debian-8
sudo apt-get install -y software-properties-common
echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | sudo tee /etc/apt/sources.list.d/webupd8team-java.list
echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | sudo tee -a /etc/apt/sources.list.d/webupd8team-java.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886
sudo apt-get update
# Silent !! Sshh !
echo debconf shared/accepted-oracle-license-v1-1 select true | sudo debconf-set-selections
echo debconf shared/accepted-oracle-license-v1-1 seen true | sudo debconf-set-selections
# see https://stackoverflow.com/questions/46815897/jdk-8-is-not-installed-error-404-not-found
# Still not work
sudo sed -i 's|JAVA_VERSION=8u151|JAVA_VERSION=8u162|' /var/lib/dpkg/info/oracle-java8-installer.*
sudo sed -i 's|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u162-b12/0da788060d494f5095bf8624735fa2f1/|' /var/lib/dpkg/info/oracle-java8-installer.*
sudo sed -i 's|SHA256SUM_TGZ="c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f"|SHA256SUM_TGZ="68ec82d47fd9c2b8eb84225b6db398a72008285fafc98631b1ff8d2229680257"|' /var/lib/dpkg/info/oracle-java8-installer.*
sudo sed -i 's|J_DIR=jdk1.8.0_151|J_DIR=jdk1.8.0_162|' /var/lib/dpkg/info/oracle-java8-installer.*
sudo apt-get install -y oracle-java8-installer
sudo apt-get install -y oracle-java8-set-default
奇怪的是这些行通过SSH一个接一个地获取,当盒子启动时,你可以安装Java,它工作,但是当我第一次提供我的流浪盒子时,它不工作。
问题是来自sed还是其他命令?我猜是sed的命令,但不知道如何修复它,因为如果我通过SSH粘贴它们,它就可以工作。
我想在没有任何人工干预的情况下完成这项工作。
你可以使用这个github repo(V2)来测试我的虚拟机:VagrantFile + shells
我怎么能用流浪汉来做这件事呢?
编辑:
- 我在流浪汉2.0和虚拟机5.6上测试过
- 还使用vagrant 1.7和virtualBox 5.1进行了测试
4条答案
按热度按时间iqxoj9l91#
我把这个放在这里是为了以防有人对Debian的基本版本很满意,但却错过了它。我认为它应该已经安装在除了最基本的系统之外的任何系统上。
要让
openJDK
工作,这是Debian标准repos中提供的版本,您只需要使用还有其他的debug和docs包。
Debian还在
contrib
repos中提供了一个名为java-package
的包,它可以转换来自Oracle站点的源代码(你必须自己获得它以确定条款和条件),并从中创建一个deb。不幸的是,似乎没有一种方法可以直接假定所问问题的答案是肯定的,所以它需要一个expect
脚本或其他东西。就我使用
make-jpkg
获得的交互而言,这个脚本可以工作(从命令行)但是也可以用其它方式来实现。
差不多是个答案了,但可能会让你更接近。
yh2wf1be2#
很抱歉我的回答太晚了。另一个选择是挂接一个驱动器并静默安装oracle rpm包。
1.创建一个目录并把你的流浪汉文件放在那里。这是你的项目的根目录。
流浪者
1.从项目的根目录创建另一个名为bootstrap的目录。创建一个名为www.example.com的空文件setup.sh,将以下内容放入setup.sh文件中。文件路径为./bootstrap/setup.sh
设置.sh
1.转到Oracle网站下载正确的32或64位rpm linux软件包。Oracle网站上提供的版本可能会更改。在本例中,我下载了jdk-8u144-linux-x64.rpm软件包。我还从Oracle网站下载了无限加密强度策略,文件名为:jce_策略-8.zip。
1.从项目的根目录创建两个名为installfiles/java8的目录,将下载的文件放在其中,文件路径为:./installfiles/java8/jdk-8u144-linux-x64.rpm和./installfiles/java8/jce_policy-8.zip格式的文件
1.运行命令 vagrant up。在您的主机上,目录./installfiles将与您的virtualbox客户机在路径/installfiles上同步。在vagrant的供应状态下,java-8将自动安装。请记住,rpm包管理器随Red Hat发行版一起提供。但也可以在debian发行版上安装rpm包。
31moq8wy3#
以下代码段修复了从webupd8team repo for Debian发行版静默安装java的问题
到目前为止,它安装了以下内容
sgtfey8w4#
Debian 9“Stretch”有java 8(jdk 1.8)作为默认的jre。如果你不关心debian版本,下面的方法可能对你有用。我把
dabian/stretch64
配置为box。对我来说,-y标志对所有问题都有效。我有下面的流浪者文件: