Thursday, May 2, 2024
 Popular · Latest · Hot · Upcoming
147
rated 0 times [  147] [ 0]  / answers: 1 / hits: 69595  / 2 Years ago, sun, july 3, 2022, 4:28:08

I'm trying to install Java through apt-get.



I found this PPA of Java Installers, however, when I add the repository, update and then issue the apt-get install -y command, the installer for java takes over and it pops up a configuration option.



I'm hoping to be able to install it without any intervention or pressing of keyboards since I am creating build and deploy scripts for my EC2 instances which will automatically install all of the tagged packages that it needs.



Is there any other options?


More From » java

 Answers
7

If OpenJDK/OpenJRE works fine for you, I recommend using that package instead as suggested by @SAM. However, some software really requires Oracle's JDK/JRE. This answer is how to silence the license question with the Oracle package from the PPA.



First, let's recognize the question asked is a feature of the package, created by the developer.




oracle-java7-installer (7u7-0~webupd8~4) maverick; urgency=medium

* removed cookie file use or else the PPA stays disabled
* request the user to accept the Oracle license before installation
-- Alin Andrei <[email protected]> Tue, 04 Sep 2012 14:18:29 +0200



As @Nate indicated in his answer, there should be a silent option. And there is. Do this before installing it:



$ 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


This sets the value of the debconf key to true, but also marks it as seen by the user. Now this question should not appear!



How did I find this?



In the source of the package, I tracked this down in the oracle-java7-installer.preinst file:




license=oracle-license-v1-1

# snip

db_get shared/accepted-$license
if [ "$RET" = "true" ]; then
echo "$license license has already been accepted" >&2
exit 0
fi



Apparantly, it uses debconf's value for the key shared/accepted-oracle-license-v1-1 to check whether the user has already accepted the license. If it is, the script will exit gracefully and allow the installation to continue without asking you the question. We should now just tell debconf you already accept the Oracle Licence 1.1.



Please refer to the manpage of debconf-set-selections on more details, but this is the example for your issue and works similar for other packages. What other keys do you have on your system in debconf's database? Install debconf-utils and do



$ sudo debconf-get-selections


Then grep for more keys you need to set in your automated installation. This is way more flexible than using -y with apt-get as it gives you the opportunity to set other than default settings on installation times.


[#35454] Monday, July 4, 2022, 2 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
bleger

Total Points: 468
Total Questions: 108
Total Answers: 100

Location: Belarus
Member since Wed, Dec 7, 2022
1 Year ago
;