적성이 Oracle Java를 유효한 Java 종속성으로 인식하도록 만드는 방법

적성이 Oracle Java를 유효한 Java 종속성으로 인식하도록 만드는 방법

내 데비안에는 Oracle Java 7이 있습니다.

aptitude를 사용하여 Tomcat 서버를 설치하고 싶은데 계속 icedtea, 불필요한 Java 관련 패키지를 설치하려고 합니다. 내가 이미 Java를 가지고 있다는 것을 적성이 알 수 있습니까?

make-jpkgNB: 아카이브에서 Java를 설치하는 명령을 사용했습니다 .

답변1

편집: 더 쉬운 방법이 맨 위에 있지만 control전체 원본 답변의 파일에 대한 내용은 여전히 ​​관련성이 있으므로 수평 규칙 아래에 유지합니다.

make-jpkgOracle Java .deb 파일을 이미 만든 경우 다음을 수행할 수 있습니다.압축을 풀고 control아래와 같이 파일을 수정하여 provides지시어를 추가한 후 다시 압축하고 수정된 deb를 설치합니다..


원래 답변:

를 사용하면 equivs기본적으로 dpkg가 무언가가 설치되었다고 생각하게 만드는 더미 패키지를 만들 수 있습니다.

'equivs' 사용을 시작하는 방법에 대한 좋은 예가 작성되었습니다.여기.

공식적으로는 현재 디렉터리에 equivs-control <:pkgname>파일을 만드는 것부터 시작해야 합니다 . pkgname내부에는 다양한 필드가 있지만 8개만 필요하며 나머지는 간단히 삭제할 수 있습니다. 가상 패키지의 최종 결과는 대략 다음과 같습니다 pkgname.

Section: misc
Priority: optional
Standards-Version: 3.9.2

Package: pkgname
Version: 1:42
Maintainer: Your Name <[email protected]>
Architecture: all
Description: fake pkgname to block a dumb dependency

Oracle Java에 대해 이 작업을 수행하고 openjdk(내가 사용하는 in sid의 종속성인 것으로 나타남)의 대체 역할을 하도록 하려면 dpkg 구성에서 항목을 icedtea-netx설정해야 한다고 생각합니다 . provides:따라서 제어 파일은 다음과 같습니다.

Section: misc
Priority: optional
Standards-Version: 3.9.2

Package: oracle-java
Version: 7u181-2.6.14-1
Maintainer: Joe Bob <[email protected]>
Architecture: all
Description: dummy Java package to let the system know Oracle JDK is OK to use
Provides: openjdk-7-jdk, openjdk-7-jre, openjdk-7-jre-headless

마지막 줄의 추가에 유의하세요. 마크다운에서 텍스트 색상을 지정할 수 있다면 강조하기 위해 빨간색으로 표시하겠습니다.

그런 다음 위에 링크된 블로그 게시물에 따르면:

이 작업을 수행한 후 해야 할 일은 명령을 실행하고 equivs-build path-to-pkgname(바람직하게는 동일한 디렉터리에서) dpkg -i. 종속성에 작별 인사를 하세요.

지시문 에 대한 자세한 내용은 provides다음을 참조하세요. https://www.debian.org/doc/debian-policy/ch-relationships.html#virtual-packages-provides

어떤 버전의 데비안을 사용하고 있는지 확실하지 않으므로 OpenJDK 7, 8 또는 다른 것이 icedtea에 의존하는지 알 수 없습니다. Oracle의 JDK에는 웹 플러그인이 없다고 생각하기 때문에 최소한 IcedTea를 설치해야 합니다. 하지만 원하고 아무 것도 깨지지 않을 것이라고 확신한다면 '제공됨'으로 아이스티를 추가할 수도 있습니다. 패키지 이름은 (제 생각에는 데비안 릴리스에 따라 다릅니다) 입니다 icedtea-7-plugin.

관련 정보