설치된 tar 패키지를 적절하게 인식하는 방법은 무엇입니까?

설치된 tar 패키지를 적절하게 인식하는 방법은 무엇입니까?

오라클 자바를 설치했습니다. OpenJDK를 제거하고 싶지만 그렇게 하려고 할 때 apt다른 버전의 Java를 설치하고 싶습니다 .

apt이러한 OpenJDK 패키지를 제거할 수 있도록 타사 Java가 설치되어 있음을 알도록 구성하려면 어떻게 해야 합니까 ?

답변1

더미 패키지 만들기사용동등한. 간단히 말해서:

  1. 가상 패키지에 대한 제어 파일을 만듭니다. 프로그램이 equiv-controls템플릿을 생성합니다. 파일 이름을 지정하십시오.

    equivs-control oracle-jre.control
    
  2. 제어 파일을 편집합니다. 최소한 이 행을 (사용하지 않는 Sun/Oracle Java 패키지의 이름) Package:로 설정하십시오 . 또한 의미 있는 설정 섹션을 sun-java6-jre작성해야 합니다 . 패키지 및 기타 버전을 선언합니다(다른 프로그램이 의존하는 가상 패키지로 제공되는 내용과 해당 프로그램에서 요구하는 내용을 확인하여 찾을 수 있습니다). 파일은 다음과 같습니다.Description:javaProvides: java-6-runtimeopenjdk-6-jre

    Section: java
    Priority: optional
    Standards-version: 3.9.2
    Package: sun-6-jre
    Provides: java6-runtime, java-runtime
    Description: dummy package when Oracle Java is installed
    
  3. 생성한 제어 파일을 사용하여 Debian 패키지를 생성합니다. 이 패키지는 종속성 전용이며 파일을 설치하지 않습니다.

    equivs-build oracle-jre.control
    
  4. 생성된 deb 패키지를 설치합니다.

    sudo dpkg -i sun-6-jre_1.0_all.deb
    

답변2

나는 이것을 할 수 있는 방법이 없다고 믿습니다. 대신 .debJava 패키지를 제공하는 PPA 저장소를 사용할 수 있습니다.이 스크립트한번 시도해 보시면 여러분의 Java 설치를 위한 .deb 패키지가 만들어질 것입니다.

이 스크립트는OAB-Java, 구체적으로 oab-java.sh.

스크립트 다운로드:

cd ~/
wget https://github.com/flexiondotorg/oab-java6/raw/0.2.8/oab-java.sh -O oab-java.sh
chmod +x oab-java.sh
sudo ./oab-java.sh

스크립트는 다음 스위치를 사용합니다.

  • -7:sun-java6 대신 oracle-java7 패키지를 빌드합니다.
  • -c: 기존 패키지 /var/local/oab/deb와 소스를 제거합니다 /var/local/oab/src.
  • -k: 키를 생성하는 대신 지정된 기존 키를 사용합니다.
  • -s: 패키지가 이미 존재하는 경우 빌드를 건너뜁니다.
  • -t: 업스트림 Debian 패키징 스크립트에서 사용할 Java 버전 태그를 지정합니다.
  • -h: 도움이 됩니다

Oracle 6 파일을 준비하고 설치하려면 다음을 수행하십시오 .deb.

$ sudo ./oab-java.sh
$ sudo apt-get install sun-java6-jre

Oracle 7 파일을 준비하고 설치하려면 다음을 수행하십시오 .deb.

$ sudo ./oab-java.sh -7
$ sudo apt-get install oracle-java7-jre

답변3

@Gilles가 제공한 위의 답변은 한동안 나에게 매우 효과적이었습니다. 그러나 Java 8 및 최신 버전의 Ubuntu에서는 작동하지 않습니다. 아래는 oracle-jre.control현재 제가 사용하고 있는 파일들 입니다 .

Section: java
Priority: optional
Standards-version: 3.9.2
Package: sun-8-jre
Provides: default-jre, openjdk-8-jre, openjfx
Description: Dummy package when Oracle Java is installed

답변4

apt-mark를 사용하여 패키지를 보존할 수 있습니다.

잡다:

sudo apt-mark hold package_name

보류를 취소하려면:

sudo apt-mark unhold package_name

이렇게 하면 적절하게 만지는 것을 방지할 수 있습니다.

관련 정보