OpenJDK를 제거하는 방법?


38

OpenJDKUbuntu 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가 필요한 경우 OpenJDK 대신 Oracle의 JDK를 사용하는 것이 좋습니다.
Fynn

이것은 나를 위해 작동하지 않았습니다.
jgomo3

@ radu-rdeanu 이렇게하려면 gcj를 설치해야했습니다. 귀하의 솔루션을 시도했을 때, apt는 gcj가 설치되지 않았다고 불평했습니다. gcj를 설치하고 말한 모든 패키지를 제거했습니다. 그러나 그 후에도 자바 명령은 여전히 ​​존재했습니다. 그래서 유선 환경이 있어야합니다.
jgomo3

@ jgomo3 내 출력에서 ​​볼 수 있듯이이 일은 일어나지 않았습니다. 어떤 버전 gcj을 사용하십니까?
Radu Rădeanu

66

좋은 질문입니다, 나는 이것을 스스로 궁금해하고있었습니다.

우분투 13.04에서 openjdk-7-jre를 제거하기 위해 다음을 사용할 수 있음을 발견했습니다.

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*비트?
landroni

1
@landroni 나는 그것을 테스트해야합니다. radu-rdeanu 솔루션을 수행하려면 먼저 gcj를 설치해야했습니다. 그렇게하면 "제거"할 수 있습니다. 먼저이 솔루션을 사용하여 Oracle Java를 제거하고 두 번째로 openjdk 및 항목을 설치 한 후 마지막으로 "자동 제거"를 시도합니다.
jgomo3

사용 방법을 알려주십시오 autoremove. openjdk의 올바른 버전을 지정 해야하는 경우 openjdk-6-jre를 실행 중일 수 있습니다. 또한 여러 버전의 openjdk를 실행하는 경우 purge명령 에서 해당 버전의 모든 추적을 제거하므로 수행하려는 작업에 따라 신중하게 사용하십시오.
Raouf Aghrout

2
sudo apt-get purge openjdk*나를 위해 일했지만 내 젠킨스 설치를 제거했습니다 (openjdk 7 패키지에 따라 다름) :(
RobertG

1
첫 번째 옵션 7을 제거하지만, 6 설치, 두 번째 일 : apt-get을 퍼지 오픈 JDK * sudo는
파블로 Pazos

4

왜 이런 일이

시스템의 다른 패키지가 Java에 의존하기 때문에 발생합니다. 제거하는 동안 openjdk-7-jre, apt-get그것은 오픈 JDK를 제거하는 경우, 일부 패키지가 충족되지 않은 종속성이있을 것으로보고있다. 이를 해결하기 위해 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. 이러한 패키지가 설치되어 있으면 대체 Java를 자동으로 설치하지 않으면 OpenJDK를 제거 할 수 없습니다.

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

Oracle JDK를 사용하고 싶다고 말한 것을 알았습니다. Oracle의 JDK를 대신 설치하려는 경우이를 다운로드하여 원하는 위치에 추출 할 수 있습니다.

그런 다음 업데이트 대안을 사용하여 Java가 설치된 위치를 시스템에 알려줍니다. 업데이트 대안의 구문에 대해 잘 모르는 경우이를 대체 할 프론트 엔드를 사용할 수 있습니다.

예를 들어 ... 나는 여기서 Oracle JDK를 매우 광범위하게 사용합니다.

/ 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

여기에는 이전에 추출한 모든 Oracle Java 유틸리티가 사용되며 다른 버전의 Java가 설치되어있는 경우 우선 순위를 갖습니다. (Ubuntu를 사용하면 동일한 유틸리티의 여러 버전을 설치할 수 있으므로)


1

나머지 답변과 함께 .bashrc-JAVA_HOME 환경이 없는지 파일을 확인 했습니까? 그 줄을 제거하면 우분투를 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*
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.