Em primeiro lugar, apt-cache search
não pesquisa pacotes instalados , procura os disponíveis , ambos instalados e não instalados. Além disso, os vários padrões de pesquisa que você vê não são mutuamente exclusivos, então as linhas correspondentes a qualquer delas serão impressas. Finalmente, o ?
após ^(ia32-)
significa que ia32-
é opcional, a expressão corresponderá às linhas com e linhas que não o são. Então, seu comando funcionará de fato para sistemas de 64 e 32 bits.
O comando equivalente para procurar pacotes instalados seria:
dpkg -l *java* | awk '{print()}' |
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'
Mas não use isso. Em sistemas derivados do Debian, como o Ubuntu, existe uma ferramenta especial para isso, update-java-alternatives
, que, quando executada com a opção -l
listará os ambientes Java instalados:
update-java-alternatives -l
No meu sistema, por exemplo, isso imprime:
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