Як видалити OpenJDK?


38

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

$ sudo apt-get purge openjdk-7-jre
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The 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-lib
Suggested 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-fonts
The 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-lib
0 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?


Відповіді:


29

Можна використовувати таку команду:

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... Done
Building dependency tree       
Reading state information... Done
Package 'gcj-4.7-base' is not installed, so not removed
Package 'gcj-4.7-jre' is not installed, so not removed
Package 'openjdk-6-jre-headless' is not installed, so not removed
The 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).


4
Якщо мені дійсно потрібен JDK, я вважаю за краще використовувати JDK Oracle замість OpenJDK.
Фінн

Це не спрацювало для мене.
jgomo3

@ radu-rdeanu Щоб зробити це, мені довелося встановити gcj раніше. Коли я спробував ваше рішення, apt поскаржився, що gcj не встановлений. Я встановив gcj і видалив усі ті пакунки, про які ви сказали. Але після цього команда java все ще була. Тож у мене повинно бути дротове середовище.
jgomo3

@ jgomo3 Як видно з мого результату, для мене це не сталося. Про яку версію gcjви говорите?
Radu Rădeanu

66

Чудове запитання, я сам собі це цікавив.

Я виявив, що ви можете використовувати наступне для видалення 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!

Сподіваюсь, це допомагає. :)


2
@ jgomo3 Чи допомагає ця відповідь? Особливо sudo apt-get remove --purge openjdk*шматочок?
ландроні

1
@landroni я повинен перевірити це. Для того, щоб зробити рішення radu-rdeanu, мені довелося встановити gcj раніше. Таким чином я міг би його "зняти". Я спробую це рішення: спочатку видаліть Oracle Java, вдруге встановіть openjdk та інше, і останнє "авторемонтувати".
jgomo3

Дайте мені знати, як ви дістаєтесь, пам'ятайте, якщо вам autoremoveпотрібно вказати правильну версію openjdk, можливо, ви працюєте openjdk-6-jre. Крім того, варто відзначити, що якщо ви використовуєте кілька версій openjdk, purgeкоманда видалить усі їх сліди, тому будьте обережні, використовуючи це залежно від того, що ви хочете зробити.
Рауф Агроут

2
sudo apt-get purge openjdk*Працював для мене, але він також видалив мою установку Дженкінса (що залежить від пакета openjdk 7) :(
RobertG

1
перший варіант видалено 7, але встановлено 6, другий спрацював: sudo apt-get purge openjdk *
Pablo Pazos

4

Чому це відбувається

Це трапляється ймовірно, оскільки інший пакет у вашій системі залежить від 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"
    fi
done

Приклад виводу (скорочений):

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

3

Зауважую, ви сказали, що хочете використовувати JDK Oracle. Якщо ви хочете встановити JDK Oracle замість цього, ви можете завантажити його та витягнути його в обраному вами місці.

Тоді ви просто використовуєте альтернативи оновлення, щоб повідомити вашій системі, де встановлена ​​Java. Якщо ви не впевнені в синтаксисі альтернатив оновлення, ви можете використати для нього фронтальний контент, альтернативи.

Наприклад ... Я тут дуже широко використовую JDK Oracle.

Я добуваю його до / opt / java /.

Тоді, тому всі бінарні файли Oracle Java - це основні утиліти для пов’язаних з Java речей, я роблю наступні дії з альтернативами оновлення:

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

Це займає всі утиліти Java Oracle, які ви раніше видобули, і надає їм перший пріоритет, якщо у вас встановлені інші версії Java. (оскільки Ubuntu дозволяє встановити кілька версій однієї утиліти)


1

Поряд з рештою відповідей - чи перевірили ви .bashrcфайл, щоб переконатися, що середовища JAVA_HOME немає? Видалення цієї лінії повинно зробити трюк у звільненні вашого Ubuntu від openjdk. Приклад:

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

Якщо ви бачите щось подібне, видаліть ці два рядки та перезавантажте.


0

Щоб видалити 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*
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.