64 비트 설치된 Java, JRE 또는 OpenJDK를 검색하는 명령은 무엇입니까?


2

다음 명령에 대한 질문이 있습니다.

apt-cache search java | awk '{print($1)}' | grep -E -e '^(ia32-)?(sun|oracle)-java' -e '^openjdk-' -e '^icedtea' -e '^(default|gcj)-j(re|dk)' -e '^gcj-(.*)-j(re|dk)' -e 'java-common'

제한된 IT 지식으로 인해 위의 명령에서 (ia32-)가 32 비트 소프트웨어를 의미한다고 말할 수 있습니까? 그렇다면 위의 명령이 32 비트 설치된 OS 용이라고 가정합니다.

그러나 64 비트 OS를 설치했습니다.

64 비트 소프트웨어의 올바른 매개 변수는 무엇입니까? (amd64-) 또는 (ia-64) 또는 (x86_64-)입니까?

모든 전문가의 도움에 감사드립니다.


1
ia32-32 비트 software.It도로 시작하는 패키지 이름을 찾습니다 대표하지 않습니다 ia32-시작 국지적 인 패키지 만하는 ia32-것입니다ia32-libs
Avinash 라즈

1
^-시작, ?-옵션, |-또는
Avinash Raj

1
점을 유의 |수단 "OR"은 단지 상기 정규식 내에서 다양한 명령 사이에 인 파이프 .
terdon

답변:


6

우선, apt-cache search검색하지 않습니다 설치 패키지, 그것은을 찾습니다 가능한 것들, 모두 설치 설치하지. 또한, 당신이 볼 수있는 다양한 검색 패턴은 상호 배타적이지, 그래서 일치하는 선 모든 이들의 인쇄됩니다. 마지막으로, ?이후 ^(ia32-)수단 ia32-선택 사항이며, 표현은이 라인 일치 하지 않는 선. 따라서 명령은 실제로 64 및 32 비트 시스템에서 작동합니다.

설치된 패키지 만 찾는 해당 명령은 다음과 같습니다.

dpkg -l *java* | awk '{print($2)}' | 
    grep -E -e '^(ia32-)?(sun|oracle)-java' -e '^openjdk-' -e '^icedtea' \
      -e '^(default|gcj)-j(re|dk)' -e '^gcj-(.*)-j(re|dk)' -e 'java-common'

그러나 그것을 사용하지 마십시오. Ubuntu와 같은 데비안 파생 시스템에는이 옵션을 update-java-alternatives실행할 때 -l설치된 Java 환경을 나열 하는 특수 도구가 있습니다.

 update-java-alternatives -l

예를 들어 내 시스템에서 다음과 같이 인쇄됩니다.

java-1.6.0-openjdk-amd64 1061 /usr/lib/jvm/java-1.6.0-openjdk-amd64
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
jdk-7-oracle-x64 317 /usr/lib/jvm/jdk-7-oracle-x64

그러한 답변과 자세한 설명에 감사드립니다. 더 많은 포인트를받을 수있는 방법이 있습니까?
n00b

어떤 프로그래밍 언어로 명령이 작성 되었습니까? 씨? C ++? 기본? 씨#? 전체 명령은 ^ |
n00b

1
언어는 기본 쉘 스크립팅 및 정규식입니다. 는 ^뜻 정규식 트릭 match the beginning of a line(가), |다른 입력으로 한 명령의 출력을 전달 파이프이다. *와일드 카드 0 or more입니다.
terdon

답변 주셔서 감사합니다. 기본 쉘 스크립팅은 프로그래밍 언어를 기반으로합니다.
n00b

1
아니, 이다 간단한 프로그래밍 언어하지만 당신은 여기에서 보는 모든 이상한 물건 정규식, 쉘 부분 (사용하여 다른 한 명령의 입력을 전달할 것입니다 |). 정규 표현식에 대한 유용한 자습서는 여기를 참조 하십시오 .
terdon
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.