Làm cách nào để gỡ cài đặt OpenJDK?


38

Tôi không muốn OpenJDKcài đặt trên hệ thống Ubuntu 13.04 của mình, nhưng cố gắng gỡ cài đặt openjdk-7-jrethông báo sau:

$ 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]?

Tôi cần làm gì để không có gói mới nào, trong đó tôi không cần gói nào, sẽ được cài đặt khi gỡ bỏ openjdk-7?


Câu trả lời:


29

Bạn có thể sử dụng lệnh sau:

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

Theo cách này, không có gói mới nào sẽ được cài đặt. Đây là đầu ra của tôi cho lệnh trên:

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

Nhưng, tôi không đề nghị bạn làm điều này. Trong một ngày, bạn sẽ cần chắc chắn một OpenJDK (6 hoặc 7).


4
Nếu tôi thực sự cần một JDK, tôi muốn sử dụng JDK của Oracle thay vì OpenJDK.
Fynn

Điều này đã không làm việc cho tôi.
jgomo3

@ radu -rdeanu Để làm điều này, tôi đã phải cài đặt gcj trước đó. Khi tôi thử giải pháp của bạn, apt đã phàn nàn rằng gcj chưa được cài đặt. Tôi đã cài đặt gcj và xóa tất cả các gói bạn nói. Nhưng sau đó, lệnh java vẫn còn đó. Vì vậy, tôi phải có một môi trường có dây.
jgomo3

@ jgomo3 Như bạn có thể thấy từ đầu ra của tôi, điều này đã không xảy ra với tôi. Về phiên bản gcjnào bạn nói?
Radu Rădeanu

66

Câu hỏi tuyệt vời, tôi đã tự hỏi điều này bản thân mình.

Tôi thấy rằng bạn có thể sử dụng cách sau để xóa openjdk-7-jre trên Ubuntu 13.04:

sudo apt-get autoremove openjdk-7-jre

Nhấn 'y' và sau đó nhấn enter khi được nhắc để xác nhận thay đổi này. Điều này cũng sẽ dọn sạch tất cả các thư viện phụ thuộc bổ sung đã được cài đặt với nó.

Tôi cũng thấy bạn có thể sử dụng lệnh sau để thực hiện dọn dẹp bổ sung:

sudo apt-get purge openjdk*

Nếu bạn sử dụng lệnh sau:

java -version

Bạn sẽ không còn thấy openjdk-7-jre được cài đặt!

Hi vọng điêu nay co ich. :)


2
@ jgomo3 Câu trả lời này có giúp gì cho bạn không? Đặc biệt là sudo apt-get remove --purge openjdk*bit?
Landroni

1
@landroni tôi phải kiểm tra nó. Để thực hiện giải pháp radu -rdeanu, tôi đã phải cài đặt gcj trước đó. Bằng cách đó tôi có thể "loại bỏ" nó. Tôi sẽ thử giải pháp này trước tiên để gỡ cài đặt Oracle Java, lần thứ hai cài đặt openjdk và các công cụ và cuối cùng là "autoremoving".
jgomo3

Hãy cho tôi biết cách bạn tiếp tục, hãy nhớ nếu bạn đang sử dụng, autoremovebạn cần chỉ định phiên bản chính xác của openjdk, bạn có thể đang chạy openjdk-6-jre. Ngoài ra, đáng chú ý là nếu bạn đang chạy nhiều phiên bản openjdk, purgelệnh sẽ xóa tất cả dấu vết của chúng, vì vậy hãy cẩn thận khi sử dụng tùy thuộc vào việc bạn muốn làm gì.
Raouf Aghrout

2
sudo apt-get purge openjdk*Làm việc cho tôi, nhưng nó cũng gỡ cài đặt cài đặt Jenkins của tôi (phụ thuộc vào gói openjdk 7) :(
RobertG

1
tùy chọn đầu tiên đã xóa 7 nhưng cài đặt 6, tùy chọn thứ hai hoạt động: sudo apt-get purge openjdk *
Pablo Pazos

4

Tại sao điều này xảy ra

Điều này có thể xảy ra vì một gói khác trên hệ thống của bạn phụ thuộc vào Java. Trong khi gỡ bỏ openjdk-7-jre, apt-getthấy rằng nếu nó gỡ cài đặt OpenJDK, một số gói sẽ có các phụ thuộc chưa được đáp ứng. Để giải quyết điều này, nó cài đặt một gói khác cung cấp Java.

Để tìm hiểu điều gì gây ra điều này, hãy chạy các lệnh này trong một thiết bị đầu cuối:

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

Ví dụ đầu ra (rút ngắn):

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

Điều này chỉ ra rằng tất cả các gói LibreScript đều phụ thuộc vào openjdk-7-jre. Miễn là các gói này được cài đặt, OpenJDK không thể được gỡ cài đặt mà không tự động cài đặt Java thay thế.

Để loại bỏ openjdk-7-jre

Nếu bạn muốn xóa openjdk-7-jre(không cài đặt các gói khác), bạn sẽ cần gỡ cài đặt tất cả các gói phụ thuộc vào gói đó trước.

Từ đầu ra ví dụ, đó sẽ là:

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

3

Tôi nhận thấy bạn nói rằng bạn muốn sử dụng JDK của Oracle. Nếu bạn muốn cài đặt JDK của Oracle thay vào đó, bạn có thể tải xuống và trích xuất nó ở vị trí bạn chọn.

Sau đó, bạn chỉ cần sử dụng các lựa chọn thay thế cập nhật để báo cho hệ thống của bạn biết Java được cài đặt ở đâu. Nếu bạn không chắc chắn về cú pháp của các lựa chọn thay thế cập nhật, bạn có thể sử dụng giao diện người dùng cho nó, các mặt bên.

Ví dụ ... Tôi sử dụng JDK của Oracle khá rộng rãi ở đây.

Tôi giải nén nó thành / opt / java /.

Sau đó, vì vậy tất cả các nhị phân của Java Java là các tiện ích chính cho các công cụ liên quan đến Java, tôi thực hiện như sau với các lựa chọn thay thế cập nhật:

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

Điều này có tất cả các tiện ích Java Java mà bạn đã trích xuất trước đó và ưu tiên cho chúng trước, trong trường hợp bạn đã cài đặt các phiên bản Java khác. (vì Ubuntu cho phép bạn cài đặt nhiều phiên bản của cùng một tiện ích)


1

Cùng với phần còn lại của câu trả lời - bạn đã kiểm tra .bashrctệp của mình để đảm bảo rằng môi trường JAVA_HOME không có ở đó chưa? Xóa dòng đó sẽ thực hiện thủ thuật giải phóng Ubuntu của bạn khỏi openjdk. Giống như một ví dụ:

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

Nếu bạn thấy bất cứ điều gì như vậy, sau đó xóa hai dòng này và khởi động lại.


0

Để gỡ cài đặt OpenJDK, bạn cần chạy các lệnh này trong thiết bị đầu cuối của mình. Bạn có thể nhận thiết bị đầu cuối bằng cách sử dụng các phím này, ctrl+ shift+ enter.

Chỉ xóa Openjdk:

$ sudo apt-get remove openjdk*

Xóa Openjdk cùng với các phụ thuộc:

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

Xóa Openjdk và các tệp cấu hình của nó:

$ sudo apt-get purge openjdk*

Xóa Openjdk cùng với các tệp phụ thuộc và tệp cấu hình của nó:

$ sudo apt-get purge --auto-remove openjdk*
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.