如何使用 packages.ubuntu.com 像 apt-file 一样搜索不同的版本?

如何使用 packages.ubuntu.com 像 apt-file 一样搜索不同的版本?

我想利用http://packages.ubuntu.com/从命令行以类似的方式apt-file search -i找到提供包含特定模式的文件的包。

我无法使用,apt-file因为我不仅需要搜索我正在运行的版本(14.04),还需要搜索 14.10 和 15.04。

com.canonical.Unity例如,如果我从命令行运行 14.04,如何获取包含 14.10 的所有提供 glib-2.0 模式的软件包?

答案1

  1. 安装html2text

    sudo apt-get install html2text
    
  2. 将以下函数粘贴到您的.bashrc

    apt-file-remote()
    {
        pattern="$1"
        release="$2"
        if [ -z "$release" ]; then
            release="$(lsb_release -c -s)"
        fi
        wget "http://packages.ubuntu.com/search?searchon=contents&keywords=$pattern&mode=filename&suite=$release" -qO- |
        html2text -width 999 | grep --color=never '^/'
    }
    
  3. 重新启动 shell 或打开一个新终端

使用模式作为第一个参数来运行它,然后使用发布代码名称(可选,默认为当前版本):

$ apt-file-remote com.canonical.unity utopic
/etc/dbus-1/system.d/com.canonical.Unity.Greeter.Broadcast.conf                 unity-greeter-session-broadcast
[...]
/usr/share/glib-2.0/schemas/com.canonical.Unity.Thumbnailer.gschema.xml         thumbnailer-service
/usr/share/glib-2.0/schemas/com.canonical.Unity.gschema.xml                     unity-schemas
/usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xml             unity-greeter
/usr/share/glib-2.0/schemas/com.canonical.unity-gtk-module.gschema.xml          unity-gtk-module-common
/usr/share/glib-2.0/schemas/com.canonical.unity.clickscope.gschema.xml          unity-scope-click
/usr/share/glib-2.0/schemas/com.canonical.unity.webapps.gschema.xml             unity-webapps-service
/var/lib/polkit-1/localauthority/10-vendor.d/com.canonical.unity.webapps.pkla   unity-webapps-common

感谢这个功能我发现:

/usr/share/glib-2.0/schemas/com.canonical.Unity.Thumbnailer.gschema.xml 

从 Utopic 开始才安装。

笔记:

  • -width 999默认html2text使用 80 列呈现输出,这可能会将一些名称分成两行。
  • 它实际上比本地apt-file search -i

相关内容