我对以下命令有疑问:
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'
Run Code Online (Sandbox Code Playgroud)
由于我的 IT 知识有限,我可以说上面命令中的 (ia32-) 是指 32 位软件吗?如果是,那么我假设上述命令适用于 32 位安装的操作系统。
但是我安装了 64 位操作系统。
64 位软件的正确参数是什么?是 (amd64-) 还是 (ia-64) 或 (x86_64-)?
非常感谢任何专家的帮助。
首先,apt-cache search不搜索已安装的软件包,而是查找可用的软件包,包括已安装的和未安装的。此外,您看到的各种搜索模式并不相互排斥,因此将打印与其中任何一个匹配的行。最后,?after^(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'
Run Code Online (Sandbox Code Playgroud)
但是不要用那个。在 Debian 衍生系统(如 Ubuntu)中,有一个特殊的工具update-java-alternatives,当使用该-l选项运行时,将列出已安装的 Java 环境:
update-java-alternatives -l
Run Code Online (Sandbox Code Playgroud)
例如,在我的系统上,这会打印:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
457 次 |
| 最近记录: |