Я использовал следующий код для установки jdk 8 и для добавления репозитория
sudo apt-add-repository ppa:webupd8team/java
sudo apt-get update
После этого, когда я пытаюсь установить Java с помощью следующей команды,
sudo apt-get install oracle-java8-installer
Я получаю сообщение, код ответа,
Reading package lists... Done
Building dependency tree
Reading state information... Done
oracle-java8-installer is already the newest version (8u151-1~webupd8~0).
0 upgraded, 0 newly installed, 0 to remove and 13 not upgraded.
oracle-java8-installer уже является последней версией
Это сообщение об ошибке появляется при попытке установить один и тот же пакет дважды, поскольку пакет уже установлен. Чтобы доказать это, выполните следующую команду, чтобы показать, установлен ли oracle-java8-installer:
apt policy oracle-java8-installer
Когда вы попытались установить oracle-java8-installer, вы получили следующее сообщение об ошибке:
Download done. Removing outdated cached downloads... sha256sum mismatch jdk-8u151-linux-x64.tar.gz Oracle JDK 8 is NOT installed. dpkg: error processing package oracle-java8-installer (--configure): subprocess installed post-installation script returned error exit status 1 Errors were encountered while processing: oracle-java8-installer E: Sub-process /usr/bin/dpkg returned an error code (1)
apt сообщает, что oracle-java8-installer установлен, но java -version
не может найти java, поэтому он не должен быть установлен правильно из-за ошибки sha256sum mismatch
, которая означает, что jdk-8u151-linux-x64.tar .gz не был правильно загружен сценарием oracle-java8-installer.
У вас может быть та же проблема, что и у других, из-за того, что скрипт oracle-java8-installer не работает должным образом: Когда я пытаюсь установить или удалить любое программное обеспечение, произойдет ошибка, пожалуйста, кто-нибудь поможет мне Посетите официальный веб-сайт Oracle Java 9 , загрузите оттуда jdk-9.0.1_linux-x64_bin.tar.gz и установите его, следуя инструкциям в этом ответе: Как я могу установить проприетарную версию Java JDK Sun / Oracle 6/7/8 или JRE? .
Другой способ подтвердить, что он установлен, - запустить эту команду с вашего терминала:
dpkg-query -l oracle-java8-installer
Вы должны увидеть это:
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==================================-======================-======================-=========================================================================
ii oracle-java8-installer 8u151-1~webupd8~0 all Oracle Java(TM) Development Kit (JDK) 8
Второй i
означает, что он установлен.
Из man dpkg-query
:
-l, --list [package-name-pattern...]
List packages matching given pattern. If no package-name-pattern is given, list all packages in /var/lib/dpkg/status, excluding the ones
marked as not-installed (i.e. those which have been previously purged). Normal shell wildcard characters are allowed in package-name-pattern.
Please note you will probably have to quote package-name-pattern to prevent the shell from performing filename expansion. For example this
will list all package names starting with “libc6”:
dpkg-query -l 'libc6*'
The first three columns of the output show the desired action, the package status, and errors, in that order.
Desired action:
u = Unknown
i = Install
h = Hold
r = Remove
p = Purge
Package status:
n = Not-installed
c = Config-files
H = Half-installed
U = Unpacked
F = Half-configured
W = Triggers-awaiting
t = Triggers-pending
i = Installed
Error flags:
<empty> = (none)
R = Reinst-required
An uppercase status or error letter indicates the package is likely to cause severe problems. Please refer to dpkg(1) for information about
the above states and flags.
The output format of this option is not configurable, but varies automatically to fit the terminal width. It is intended for human readers,
and is not easily machine-readable. See -W (--show) and --showformat for a way to configure the output format.