Debian에 Oracle Java 7이 있습니다.
aptitude를 사용하여 Tomcat 서버를 설치하고 싶은데 icedtea 및 불필요한 Java 관련 패키지를 계속 설치하려고 합니다. 적성은 내가 이미 Java를 가지고 있다는 것을 알 수 있습니까?
참고: make-jpkg
명령을 사용하여 아카이브에서 Java를 설치했습니다.
답변1
편집: 더 간단한 접근 방식이 맨 위에 있지만 control
파일에 대한 전체 원래 답변이 여전히 관련이 있으므로 수평 규칙 아래로 유지하겠습니다.
make-jpkg
Oracle Java .deb 파일을 이미 만든 경우 다음을 수행할 수 있습니다.압축을 풀고 파일을 수정하고 아래와 같이 지시문을 control
추가한 후 다시 패키지하고 수정된 deb를 설치합니다.provides
.
원래 답변:
를 사용하면 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(내가 사용 중인 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
마지막 줄의 추가에 유의하세요. Markdown에서 컬러 텍스트를 만들 수 있다면 강조하기 위해 빨간색으로 컬러를 지정하겠습니다.
그런 다음 위에 링크된 블로그 게시물에 따르면:
이 작업을 완료한 후 해야 할 일은 명령을 실행하는 것뿐입니다
equivs-build path-to-pkgname
(가능한 한 동일한 디렉터리에서). 그러면 사용할 수 있는 가짜 deb가 준비됩니다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
.