如何判断某个包是否存在于 apt 存储库中?

sme*_*eeb 10 package-management apt java openjdk

我在确定的OpenJDK的32位版本是否特别感兴趣8在存在apt/ Ubuntu的回购。

根据此答案,您可以通过以下方式安装 32 位版本的 Open JDK 7 软件包:

sudo apt-get install openjdk-7-jre:i386
Run Code Online (Sandbox Code Playgroud)

我该如何做相当于ls -al查看 OpenJDK 8 存在哪些包,特别是 32 位包?

hee*_*ayl 10

首先,软件包(和不同版本)的可用性在很大程度上取决于您拥有的版本。

一个可以做

apt-cache search --names-only '^openjdk-8-.*'
Run Code Online (Sandbox Code Playgroud)

查找以openjdk-8. 你应该先跑sudo apt-get update

例如在我的 14.04 中:

$ apt-cache search --names-only '^openjdk-8-.*'
openjdk-8-dbg - Java runtime based on OpenJDK (debugging symbols)
openjdk-8-demo - Java runtime based on OpenJDK (demos and examples)
openjdk-8-doc - OpenJDK Development Kit (JDK) documentation
openjdk-8-jdk - OpenJDK Development Kit (JDK)
openjdk-8-jre - OpenJDK Java runtime, using Hotspot JIT
openjdk-8-jre-headless - OpenJDK Java runtime, using Hotspot JIT (headless)
openjdk-8-jre-jamvm - Alternative JVM for OpenJDK, using JamVM
openjdk-8-jre-zero - Alternative JVM for OpenJDK, using Zero/Shark
openjdk-8-source - OpenJDK Development Kit (JDK) source files
Run Code Online (Sandbox Code Playgroud)

现在对于 32 位软件包,您需要先启用multiarch支持,然后您可以使用apt-cache policy单个软件包来检查它们的可用性:

$ apt-cache policy openjdk-8-jre:i386
openjdk-8-jre:i386:
  Installed: (none)
  Candidate: 8u45-b14-1
  Version table:
     8u45-b14-1 0
        500 http://archive.ubuntu.com/ubuntu/ vivid/universe i386 Packages
Run Code Online (Sandbox Code Playgroud)