Debian 中的“+b#”软件包版本意味着什么?

Debian 中的“+b#”软件包版本意味着什么?

今天我检查了我的升级,在 Debian 测试中看到了 63 个升级。美好的。我很好奇,因为大多数都被保留了,所以我经常-V看到这些版本。令我惊讶的是,其中大多数都升级到+b1+b2版本。就像一个好孩子一样,我这样做apt-get changelog libc6(是的,这一点很重要)只是为了看到变更日志没有+b1版本。那么,这些版本有什么用呢?

sudo apt-get -V upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages have been kept back:
   gdm3 (3.4.1-9 => 3.4.1-9+b1)
   libalgorithm-diff-xs-perl (0.04-2+b2 => 0.04-2+b3)
   libapt-pkg-perl (0.1.29 => 0.1.29+b1)
   libcairo-perl (1.103-2 => 1.103-2+b1)
   libclass-c3-xs-perl (0.13-1+b2 => 0.13-1+b3)
   libclone-perl (0.34-1 => 0.34-1+b1)
   libcrypt-blowfish-perl (2.14-1 => 2.14-1+b1)
   libcrypt-openssl-bignum-perl (0.04-4 => 0.04-4+b1)
   libcrypt-ssleay-perl (0.58-1 => 0.58-1+b1)
   libdbd-mysql-perl (4.023-1 => 4.023-1+b1)
   libdbi-perl (1.628-1 => 1.628-1+b1)
   libdigest-crc-perl (0.18-1+b1 => 0.18-1+b2)
   libdigest-md4-perl (1.9+dfsg-1 => 1.9+dfsg-1+b1)
   libfile-fcntllock-perl (0.14-2 => 0.14-2+b1)
   libfile-fnmatch-perl (0.02-1+b2 => 0.02-1+b3)
   libglib-perl (1.301-1 => 1.301-1+b1)
   libgtk2-perl (1.247-2 => 1.247-2+b1)
   libhtml-parser-perl (3.71-1 => 3.71-1+b1)
   libio-pty-perl (1.08-1+b2 => 1.08-1+b3)
   libjson-xs-perl (2.340-1 => 2.340-1+b1)
   liblist-moreutils-perl (0.33-1+b1 => 0.33-1+b2)
   liblocale-gettext-perl (1.05-7+b1 => 1.05-7+b2)
   libmath-bigint-gmp-perl (1.37-2 => 1.37-3)
   libnet-dbus-perl (1.0.0-2 => 1.0.0-2+b1)
   libnet-dns-perl (0.68-1.1 => 0.68-1.2)
   libnet-pcap-perl (0.17-1 => 0.17-1+b1)
   libnet-rawip-perl (0.25-1+b2 => 0.25-1+b3)
   libnet-ssleay-perl (1.55-1 => 1.55-1+b2)
   libpam-systemd (44-12 => 44-12+b1)
   libpango-perl (1.224-2 => 1.224-2+b1)
   libparams-util-perl (1.07-1 => 1.07-1+b1)
   libpurple0 (2.10.7-2 => 2.10.7-2+b1)
   libsocket-perl (2.011-1 => 2.011-1+b1)
   libsocket6-perl (0.23-1+b2 => 0.23-1+b3)
   libsub-name-perl (0.05-1+b2 => 0.05-1+b3)
   libsvn1 (1.6.17dfsg-4.1+b1 => 1.7.9-1+nmu4)
   libterm-readkey-perl (2.30-4+b2 => 2.30-4+b3)
   libterm-readline-gnu-perl (1.20-2+b1 => 1.20-2+b2)
   libtext-charwidth-perl (0.04-7+b1 => 0.04-7+b2)
   libtext-iconv-perl (1.7-5 => 1.7-5+b1)
   libuuid-perl (0.02-5 => 0.02-5+b1)
   libxml-libxml-perl (2.0010+dfsg-1 => 2.0010+dfsg-1+b1)
   libxml-parser-perl (2.41-1+b1 => 2.41-1+b2)
   libyaml-libyaml-perl (0.38-3 => 0.38-3+b1)
   perl (5.14.2-21 => 5.18.1-3)
   perl-base (5.14.2-21 => 5.18.1-3)
   perl-modules (5.14.2-21 => 5.18.1-3)
   perl-tk (804.031-1 => 804.031-1+b1)
   subversion (1.6.17dfsg-4.1+b1 => 1.7.9-1+nmu4)
   systemd (44-12 => 44-12+b1)
   vim (7.3.923-3 => 7.3.923-3+b1)
   vim-common (7.3.923-3 => 7.3.923-3+b1)
   vim-gtk (7.3.923-3 => 7.3.923-3+b1)
   xchat (2.8.8-7.1 => 2.8.8-7.1+b1)
   xserver-xorg-core (1.12.4-6.1 => 1.12.4-6.2+b1)
The following packages will be upgraded:
   libc-dev-bin (2.17-92 => 2.17-92+b1)
   libc6 (2.17-92 => 2.17-92+b1)
   libc6-dbg (2.17-92 => 2.17-92+b1)
   libc6-dev (2.17-92 => 2.17-92+b1)
   libc6-i686 (2.17-92 => 2.17-92+b1)
apt-cache policy libc6
libc6:
  Installed: 2.17-92
  Candidate: 2.17-92+b1
  Version table:
     2.17-92+b1 0
        500 http://ftp.us.debian.org/debian/ testing/main i386 Packages
        500 http://http.debian.net/debian/ jessie/main i386 Packages
 *** 2.17-92 0
        100 /var/lib/dpkg/status
apt-get changelog libc6
eglibc (2.17-92) unstable; urgency=low

  * kfreebsd/local-sysdeps.diff: update to revision 4839 (from glibc-bsd).

 -- Petr Salinger <[email protected]>  Wed, 31 Jul 2013 22:38:47 +0100

eglibc (2.17-91) unstable; urgency=low

  [ Petr Salinger ]
  * switch libpthread implementation on kfreebsd-* to fbtl.
    Closes: #703545. Closes: #665287. Closes: #683825. Closes: #489066.
  * split some parts of kfreebsd/local-linuxthreads29.diff
    into  kfreebsd/local-nscd-no-sockcloexec.diff and
          kfreebsd/local-linuxthreads-tlsdesc.diff
  * add kfreebsd/local-fbtl.diff and kfreebsd/local-fbtl-depends.diff
  * kfreebsd/local-sysdeps.diff: update to revision 4809 (from glibc-bsd).
    Closes: #718181. Addresses: #717032 in new binutils.
  * update testsuite-checking/expected-results-*-kfreebsd-gnu-*
    by fbtl tests that are known to fail.
(snip)

答案1

+bX表示二进制非维护者上传。如果您实际检查下载的软件包中的 Debian 变更日志(或),它应该会显示在那里,并解释为什么需要它。/usr/share/doc/package/changelog.Debian.gz…/changelog.Debian.arch.gz

开发人员参考文档中记录了这一点重新编译或仅二进制 NMU

为了保存您的下载:

eglibc (2.17-92+b1) sid; urgency=low, binary-only=yes

  * Binary-only non-maintainer upload for amd64; no source changes.
  * Rebuild against libaudit1

 -- amd64 Build Daemon (binet) <[email protected]>  Wed, 31 Jul 2013 22:38:47 +0100

答案2

@derobert 上面发布的所有内容都是正确的。以下是执行此步骤的命令:

  • 下载包例如

    apt download <package>            # e.g. $ apt download bash
    
  • 提炼

    dpkg -X <package> <extraction-dir>   # e.g $ dpkg -X bash /tmp/bash
    

    或者使用ar命令

    mkdir /tmp/<dir>     
    ar xv <package> --output /tmp/<dir>   # e.g. $ ar xv bash.deb --output /tmp/bash
    

    并解压数据存档:

    tar xvf /tmp/<dir>/data.tar.xz
    
  • 查看变更日志

    可以查看解压后的日志文件/usr/share/doc/<包>/目录。例如使用zless命令:

    zless /tmp/<dir>/usr/share/doc/<package>/changelog.Debian.amd64.gz
    

    这是通常情况下的变更日志+b提到了构建(针对 amd64 架构)。

    作为替代方案,您也可以使用以下命令

    dpkg-parsechangelog -l /tmp/<dir>/usr/share/doc/<package>/changelog.Debian.amd64.gz
    

相关内容