development

Ubuntu : OpenJDK 8-패키지를 찾을 수 없음

big-blog 2020. 10. 11. 10:53
반응형

Ubuntu : OpenJDK 8-패키지를 찾을 수 없음


그래서 방금 Ubuntu를 설치했고 Linux 환경에서 작업하는 것은 이번이 처음이므로 여기에서 멍청함을 참으십시오.

어쨌든 Oracle에서 직접 Java 8 JDK를 다운로드했지만 Java 8 용 OpenJDK도 있다는 것을 알고 있습니다. 두 가지 질문이 있습니다.

  1. Oracle 버전과 OpenJDK의 차이점은 무엇입니까? 장단점?

  2. OpenJDK 8을 얻으려고 할 때 할 수 없습니다. 터미널 명령과 여기에 표시되는 오류 메시지를 붙여넣고 조언을 구합니다. 다시 말하지만, Linux를 처음 접한 사람은이 시점에서 한 시간도 채 안되는 시간 동안 내 첫 번째 Linux 배포판을 사용했습니다.

    user@computer:~/Java$ sudo apt-get install openjdk-8-jdk
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    E: Unable to locate package openjdk-8-jdk
    

어떤 도움을 주시면 감사하겠습니다. 그동안 저는 Oracle 패키지를 사용하겠습니다. 감사.

편집하다:

그래서 이제 새로운 문제가 생겼습니다. 나는 OpenJDK 7을 설치했고 Maven과 함께 제공되었고 내가 2 대 1 거래를한다는 것을 깨닫기 전에 방금 설치했습니다. 이제 JDK 7과 Eclipse 및 Maven이 있으며 모두 작동하지만 8이 아닌 JDK 7에 갇혀 있습니다.

아래 링크가있는 것을 보았습니다. 아침에 확인하려고합니다. 오전 2시이고 지금은 피곤합니다. 이 새로운 문제에 대한 다른 조언을 주시면 감사하겠습니다. 그렇지 않으면 아침에 해당 링크를 먼저 확인하겠습니다.


업데이트 : 아래의 루트 권한없이 설치


문제를 해결할 수있는 (반 공식) 저장소가 이미있는 경우 우분투 시스템에 수동으로 패키지를 설치하지 않는 것이 좋습니다. 또한 (매우 산발적 인) 호환성 문제를 피하기 위해 개발에 Oracle JDK를 사용하십시오 (수년 전에 시도했지만 지금은 확실히 더 낫습니다).

시스템에 webupd8 저장소를 추가하십시오 .

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update

선호하는 jdk 버전을 설치합니다 (java-6에서 java-9 버전 사용 가능) :

sudo apt-get install oracle-java8-installer

여러 버전의 jdk를 설치하여 openjdk 및 oracle 버전을 혼합 할 수도 있습니다. 그런 다음 update-java-alternatives 명령을 사용하여 설치된 버전간에 전환 할 수 있습니다 .

# list available jdk
update-java-alternatives --list

# use jdk7
sudo update-java-alternatives --set java-7-oracle

# use jdk8
sudo update-java-alternatives --set java-8-oracle

요구 사항

당신이 얻을 경우 add-apt-repository: command not found반드시 가지고 software-properties-common설치 :

sudo apt-get install software-properties-common

이전 버전의 Ubuntu를 사용하는 경우 :

sudo apt-get install python-software-properties

루트 권한없이 JDK 설치

대상 컴퓨터에 대한 관리자 권한이없는 경우 가장 간단한 방법은 sdkmanzulu 인증 openjdk를 설치하는 데 사용 하는 것입니다.

curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install java

참고 : sdkman은 기본 옵션은 아니지만 공식 Oracle JDK도 설치할 수 있습니다. 사용 가능한 버전보기 :

sdk ls java

다음을 사용하여 선택한 버전을 설치하십시오.

sdk install java <version>

예를 들면 :

sdk install java 9.0.1-oracle

명령 용어

  • sudo <command> [command_arguments] : 수퍼 유저 권한으로 명령을 실행합니다.

  • add-apt-repository <PPA_id> : Ubuntu (모든 Debian 파생 제품 및 일반적으로 모든 Linux 배포판과 마찬가지로)에는 패키지 종속성 및 업데이트와 같은 작업을 처리하는 패키지의 기본 저장소가 있습니다. Ubuntu에서는 일반적으로 시스템에서 사용할 수없는 패키지 (oracle jdk와 동일) 또는 사용 가능한 버전의 업데이트 된 버전 (예 : LTS의 LibreOffice 5는이를 통해서만 사용할 수 있음)을 포함하는 PPA (개인 패키지 아카이브)를 사용하여 주 저장소를 확장 할 수 있습니다. PPA ).

  • apt-get [install|update|upgrade|purge|...] : 시스템에있는 모든 저장소 상태 를 조작하는 데 사용되는 ""명령 줄 패키지 핸들러입니다 (설치 / 업데이트 / 업그레이드는 저장소 현재 상태의 변경으로 볼 수 있음).

우리의 경우 : 명령 sudo add-apt-repository ppa:webupd8team/java을 사용하여 다음 저장소 업데이트가 webupd8 저장소에서도 패키지 정보를 검색해야 함을 시스템에 알립니다.

으로 sudo apt-get update우리가 실제로 시스템 저장소 업데이트 (이 운영하는 수퍼 유저 권한이 필요합니다 우리 앞에 추가 그래서 sudo는 명령으로).

sudo apt-get install oracle-java8-installer

  • update-java-alternatives (a specific java version of update-alternatives): in Ubuntu several packages provides the same functionality (browse the internet, compile mails, edit a text file or provides java/javac executables...). To allows the system to choose the user favourites tool given a specific task a mechanism using symlinks under /etc/alternatives/ is used. Try to update the jdk as indicated above (switch between java 7 and java 8) and view how change the output of this command:

    ls -l /etc/alternatives/java*

In our case: sudo update-java-alternatives --set java-8-oracle update symlinks under /etc/alternatives to point to java-8-oracle executables.

Extras:

  • man <command>: start using man to read a really well written and detailed help on (almost) every shell command and its options (every command i mention in this little answer has a man page, try man update-java-alternatives).

  • apt-cache search <search_key>: query the APT cache to search for a package related with the search_key provided (can be the package name or some word in package description).

  • apt-cache show <package>: provides APT information for a specific package (package version, installed or not, description).


As you can see I only have java 1.7 installed (on a Ubuntu 14.04 machine).

update-java-alternatives -l
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64

To install Java 8, I did,

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk

Afterwards, now I have java 7 and 8,

update-java-alternatives -l
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64

BONUS ADDED (how to switch between different versions)

  • run the follwing command from the terminal:

sudo update-alternatives --config java

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      auto mode
  1            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      manual mode
* 2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1069      manual mode

Press enter to keep the current choice[*], or type selection number:

As you can see I'm running open jdk 8. To switch to to jdk 7, press 1 and hit the Enter key. Do the same for javac as well with, sudo update-alternatives --config javac.

Check versions to confirm the change: java -version and javac -version.


I'm getting OpenJDK 8 from the official Debian repositories, rather than some random PPA or non-free Oracle binary. Here's how I did it:

sudo apt-get install debian-keyring debian-archive-keyring

Make /etc/apt/sources.list.d/debian-jessie-backports.list:

deb http://httpredir.debian.org/debian/ jessie-backports main

Make /etc/apt/preferences.d/debian-jessie-backports:

Package: *
Pin: release o=Debian,a=jessie-backports
Pin-Priority: -200

Then finally do the install:

sudo apt-get update
sudo apt-get -t jessie-backports install openjdk-8-jdk

sudo apt-get update
sudo apt-get  install openjdk-8-jdk

this should work

참고URL : https://stackoverflow.com/questions/32942023/ubuntu-openjdk-8-unable-to-locate-package

반응형