Как удалить OpenJDK?

Я не хочу OpenJDK установлен в моей системе Ubuntu 13.04, но пытается удалить openjdk-7-jre выдает следующее сообщение:

$ sudo apt-get purge openjdk-7-jreReading package lists... DoneBuilding dependency tree       Reading state information... DoneThe following extra packages will be installed:  gcj-4.7-base gcj-4.7-jre gcj-4.7-jre-headless gcj-4.7-jre-lib gcj-jre gcj-jre-headless icedtea-6-jre-cacao icedtea-6-jre-jamvm libgcj-common libgcj13 libgcj13-awt  openjdk-6-jre-headless openjdk-6-jre-libSuggested packages:  fastjar gcj-4.7-jdk gcj-jdk libgcj13-dbg sun-java6-fonts fonts-ipafont-gothic fonts-ipafont-mincho ttf-telugu-fonts ttf-oriya-fonts ttf-kannada-fonts  ttf-bengali-fontsThe following packages will be REMOVED:  default-jre* icedtea-7-plugin* icedtea-netx* icedtea-plugin* libatk-wrapper-java* libatk-wrapper-java-jni* openjdk-7-jre*The following NEW packages will be installed:  gcj-4.7-base gcj-4.7-jre gcj-4.7-jre-headless gcj-4.7-jre-lib gcj-jre gcj-jre-headless icedtea-6-jre-cacao icedtea-6-jre-jamvm libgcj-common libgcj13 libgcj13-awt  openjdk-6-jre-headless openjdk-6-jre-lib0 upgraded, 13 newly installed, 7 to remove and 4 not upgraded.Need to get 57,0 MB/57,2 MB of archives.After this operation, 156 MB of additional disk space will be used.Do you want to continue [Y/n]?

Что мне нужно сделать, чтобы при удалении не устанавливались новые пакеты, из которых мне ни один не нужен openjdk-7?

Отличный вопрос, я сам задавался этим вопросом.

Я обнаружил, что вы можете использовать следующее, чтобы удалить openjdk-7-jre в Ubuntu 13.04:

sudo apt-get autoremove openjdk-7-jre

Нажмите "y", а затем нажмите enter, когда появится запрос на подтверждение этого изменения. Это также должно привести к очистке всех дополнительных библиотек зависимостей, которые были установлены вместе с ним.

Я также обнаружил, что вы можете использовать следующую команду для выполнения дополнительной очистки:

sudo apt-get purge openjdk*

Если вы используете следующую команду:

java -version

Вы больше не должны видеть установленный openjdk-7-jre!

Надеюсь, это поможет. :)

Вы можете использовать следующую команду:

sudo apt-get purge openjdk-8-jre openjdk-8-jre-headless openjdk-7-jre gcj-4.7-base gcj-4.7-jre openjdk-6-jre-headless

Таким образом, новые пакеты устанавливаться не будут. Вот мой вывод для приведенной выше команды:

Reading package lists... DoneBuilding dependency tree       Reading state information... DonePackage 'gcj-4.7-base' is not installed, so not removedPackage 'gcj-4.7-jre' is not installed, so not removedPackage 'openjdk-6-jre-headless' is not installed, so not removedThe following packages will be REMOVED:  default-jre* icedtea-7-plugin* icedtea-netx* libatk-wrapper-java*  libatk-wrapper-java-jni* libreoffice-base* minecraft-installer*  openjdk-7-jre*0 upgraded, 0 newly installed, 8 to remove and 6 not upgraded.After this operation, 10,3 MB disk space will be freed.Do you want to continue [Y/n]? n

Но я не предлагаю вам делать это. В один прекрасный день вам наверняка понадобится OpenJDK (6 или 7).

Чтобы удалить OpenJDK, вам необходимо выполнить эти команды в вашем терминале.Вы можете получить доступ к терминалу, используя эти ключи, ctrl + shift + enter.

Удалить только Openjdk:

$ sudo apt-get remove openjdk*

Удалите Openjdk вместе с зависимостями:

$ sudo apt-get remove --auto-remove openjdk*

Удалите Openjdk и его конфигурационные файлы:

$ sudo apt-get purge openjdk*

Удалите Openjdk вместе с зависимостями и его конфигурационными файлами:

$ sudo apt-get purge --auto-remove openjdk*

Почему это происходит

Вероятно, это происходит из-за того, что другой пакет в вашей системе зависит от Java. При удалении openjdk-7-jre, apt-get видит, что если он удалит OpenJDK, некоторые пакеты будут иметь неудовлетворенные зависимости. Чтобы решить эту проблему, он устанавливает другой пакет, который предоставляет Java.

Чтобы выяснить, что является причиной этого, выполните следующие команды в терминале:

packages=(default-jre default-jre-headless icedtea-6-plugin icedtea-7-plugin java-compiler java-jdk java-runtime java-runtime-headless java-sdk java-virtual-machine java2-jdk java2-runtime java2-runtime-headless java2-sdk java5-jdk java5-runtime java5-runtime-headless java5-sdk java6-jdk java6-runtime java6-runtime-headless java6-sdk java7-jdk java7-runtime java7-runtime-headless java7-sdk openjdk-6-jdk openjdk-6-jre openjdk-6-jre-headless openjdk-7-jdk openjdk-7-jre openjdk-7-jre-headless oracle-java7-bin oracle-java7-fonts oracle-java7-jdk oracle-java7-jre oracle-java7-plugin sun-java6-bin sun-java6-fonts sun-java6-jdk sun-java6-jre sun-java6-plugin)for pkg in "${packages[@]}"; do    apt_cache_out="$(apt-cache --installed rdepends "$pkg" | grep -E '^ [| ]\S')"    if (( $? == 0 )); then        echo -----------------------        echo "$pkg"        echo "$apt_cache_out"    fidone

Пример вывода (сокращенный):

-----------------------openjdk-7-jre |libreoffice-filter-mobiledev |libreoffice |libreoffice-writer |libreoffice-base |libreoffice-filter-mobiledev |libreoffice |libreoffice-writer |libreoffice-base

Это указывает на то, что все пакеты LibreOffice зависят от openjdk-7-jre. Пока эти пакеты установлены, OpenJDK нельзя удалить без автоматической установки альтернативной Java.

Удалять openjdk-7-jre

Если вы хотите удалить openjdk-7-jre (без установки других пакетов), вам нужно будет сначала удалить все пакеты, которые зависят от него.

Из примера вывода, который будет:

sudo apt-get remove oracle-java7-installer libreoffice-filter-mobiledev libreoffice libreoffice-writer libreoffice-base libreoffice-filter-mobiledev libreoffice libreoffice-writer libreoffice-base

Я заметил, что вы сказали, что хотите использовать JDK Oracle. Если вы хотите вместо этого установить JDK Oracle, вы можете загрузить его и извлечь в выбранном вами месте.

Затем вы просто используете update-alternatives, чтобы сообщить своей системе, где установлена Java. Если вы не уверены в синтаксисе update-alternatives, вы можете использовать для этого интерфейс galternatives.

Например... Здесь я довольно широко использую JDK от Oracle.

Я извлекаю его в /opt /java/.

Затем, чтобы все двоичные файлы Oracle Java были основными утилитами для материалов, связанных с Java, я делаю следующее с помощью update-alternatives:

for j in `ls /opt/java/bin` ; do update-alternatives --install /usr/bin/"$j" "$j" /opt/java/bin/"$j" 1 ; done

Это использует все утилиты Oracle Java, которые вы ранее извлекли, и дает им первый приоритет, если у вас установлены другие версии Java. (поскольку Ubuntu позволяет устанавливать несколько версий одной и той же утилиты)

Вместе с остальными ответами - вы проверили свой .bashrc файл, чтобы убедиться, что среды JAVA_HOME там нет? Удаление этой строки должно помочь освободить вашу Ubuntu от openjdk. Как пример:

 JAVA_HOME=/usr/local/java/jdk1.7.0_45 export PATH=$JAVA_HOME:$PATH

Если вы видите что-то подобное, то удалите эти две строки и перезагрузитесь.

Взгляните сюда: How to completely uninstall Java? - Ask Ubuntu