AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 766165
Accepted
StoneThrow
StoneThrow
Asked: 2024-01-05 09:16:51 +0800 CST2024-01-05 09:16:51 +0800 CST 2024-01-05 09:16:51 +0800 CST

是否可以在不编辑sources.list的情况下查询非我当前版本的APT软件包版本?

  • 772

我最近一直在学习Linux包管理(https://superuser.com/questions/393681/how-to-find-out-which-versions-of-a-package-can-i-install-on-apt,https://askubuntu.com/questions/340530/how-can-i-check-the-available-version-of-a-package-in-the-repositories,为什么不同的 Linux 发行版有不同的包格式(以及包管理器)?,https://itsfoss.com/ubuntu-repository-mechanism/,https : //itsfoss.com/sources-list-ubuntu/)

如果我理解正确的话,/etc/apt/sources.list(和.list/.sources文件/etc/apt/sources.list.d/)控制apt-get从哪里(和相关实用程序)获取包/源代码。

由于我当前的版本是 jammy,因此我的条目sources.list如下:

deb http://archive.ubuntu.com/ubuntu/ jammy main restricted
deb-src http://archive.ubuntu.com/ubuntu/ jammy main restricted

...我认为这意味着(之后running apt-file update)将在http://archive.ubuntu.com/ubuntu/dists/jammy/main/apt-cache policy libuv1上查找所有可用版本libuv1

$ apt-cache policy libuv1
libuv1:
  Installed: 1.43.0-1
  Candidate: 1.43.0-1
  Version table:
 *** 1.43.0-1 500
        500 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages
        100 /var/lib/dpkg/status
$
$ apt-cache madison libuv1
    libuv1 |   1.43.0-1 | http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages
    libuv1 |   1.43.0-1 | http://archive.ubuntu.com/ubuntu jammy/main Sources
$

我的问题是:有没有办法在libuv1不进行编辑的情况下查询除 jammy 以外的版本的包的可用版本sources.list?

从上面的apt-cache输出来看,1.43.0-1 似乎是唯一可用的版本 - 无论是作为包还是作为源。但我知道libuv 作者有更新的版本。我想了解是否可以查询非 Jammy 软件包存储库以获取较新的libuv1软件包或源代码的可用性。出于过度的谨慎,我对添加诸如deb-src http://archive.ubuntu.com/ubuntu/ mantic main restrictedto 之类的条目感到紧张sources.list,因为我担心我可能会忘记,然后不小心运行apt-get upgrade- 那不是会冒创建FrankenDebian的风险吗?

我只想知道 - 如果只是出于好奇 - 较新版本的源代码/包是否libuv1存在于我当前版本之外的版本中,而没有编辑带来的风险sources.list- 有没有办法?换句话说:是否需要sources.list同时进行编辑以查询可用性和安装软件包,或者是否可以在不编辑文件的情况下查询软件包可用性?

apt
  • 2 2 个回答
  • 35 Views

2 个回答

  • Voted
  1. Best Answer
    Stephen Kitt
    2024-01-05T18:27:03+08:002024-01-05T18:27:03+08:00

    Constantine AB 的回答暗示了这一点,但没有详细说明;rmadison是您正在寻找的工具。

    安装devscripts包:

    $ sudo apt install --no-install-recommends devscripts wget
    

    (devscripts有很多可选依赖项,因此显式--no-install-recommends; rmadisonneed wget,这是这些可选依赖项之一),然后运行rmadison以查询在线数据库:

    $ rmadison libuv1
     libuv1 | 1.8.0-1           | xenial/universe | source, amd64, arm64, armhf, i386, powerpc, ppc64el, s390x
     libuv1 | 1.18.0-3          | bionic          | source, amd64, arm64, armhf, i386, ppc64el, s390x
     libuv1 | 1.34.2-1ubuntu1   | focal           | source, amd64, arm64, armhf, i386, ppc64el, riscv64, s390x
     libuv1 | 1.34.2-1ubuntu1.3 | focal-security  | source, amd64, arm64, armhf, i386, ppc64el, riscv64, s390x
     libuv1 | 1.34.2-1ubuntu1.3 | focal-updates   | source, amd64, arm64, armhf, i386, ppc64el, riscv64, s390x
     libuv1 | 1.43.0-1          | jammy           | source, amd64, arm64, armhf, i386, ppc64el, riscv64, s390x
     libuv1 | 1.44.2-1          | lunar           | source, amd64, arm64, armhf, i386, ppc64el, riscv64, s390x
     libuv1 | 1.44.2-1          | mantic          | source, amd64, arm64, armhf, i386, ppc64el, riscv64, s390x
     libuv1 | 1.46.0-2ubuntu1   | noble           | source, amd64, arm64, armhf, i386, ppc64el, riscv64, s390x
     libuv1 | 1.46.0-3          | noble-proposed  | source, amd64, arm64, i386, ppc64el, riscv64, s390x
    

    语法非常简单,rmadison后面是您感兴趣的二进制文件和/或源代码包的名称。

    由于libuv1是直接从 Debian 导入的,大多数时候没有更改,您可能也想检查一下:

    $ rmadison -u debian libuv1
    libuv1     | 1.24.1-1+deb10u1 | oldoldstable       | source, amd64, arm64, armel, armhf, i386, mips, mips64el, mipsel, ppc64el, s390x
    libuv1     | 1.24.1-1+deb10u1 | oldoldstable-debug | source
    libuv1     | 1.40.0-2         | oldstable          | source, amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x
    libuv1     | 1.44.2-1         | stable             | source, amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x
    libuv1     | 1.46.0-2         | testing            | source, amd64, arm64, armel, armhf, i386, mips64el, ppc64el, s390x
    libuv1     | 1.46.0-3         | unstable           | source, amd64, arm64, armel, armhf, i386, mips64el, ppc64el, riscv64, s390x
    libuv1     | 1.46.0-3         | unstable-debug     | source
    

    所以libuv1.47.0还没有被打包,无论是Debian还是Ubuntu。

    (对于使用 Debian 的读者,默认设置是相反的:rmadison不带-u选项查询 Debian,rmadison -u ubuntu查询 Ubuntu。)

    • 2
  2. Constantine A. B.
    2024-01-05T10:47:34+08:002024-01-05T10:47:34+08:00

    那天我使用了rmadisondevscripts 包中的 。

    这些天,我太懒了,做了一些过度的事情:

    podman run -it --rm debian:$version sh -c "apt-get update > /dev/null; apt-get info $package"
    

    (很容易设置$version,$package相应地从三行 shell 脚本中的 $1、$2 开始)。

    当然,这会启动(如果尚未存在,则下载)一个完整的 Linux 容器来回答一个简单的问题。但这样我就不必记住另一个工具的语法,并且可以使用相同的技巧来回答更复杂的问题,例如“在带有 xfce 的 Debian 13 上,安装 clementine 需要多少下载量?”...

    • 1

相关问题

  • 在发行版的不同版本中混合软件时要寻找什么?

  • 了解 apt 列表输出

  • 尝试安装 debian 软件包 npm,使 apt-get 删除 libssl-dev

  • 如何下载软件包而不是使用 apt-get 命令安装它?

  • /etc/apt/sources.list.d 比 /etc/apt/sources.list 有什么好处

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve