如何查看 PPA 中软件包的更新日志?

如何查看 PPA 中软件包的更新日志?

我理解,由于从apt-get changelog <package>获得其更改日志changelog.ubuntu.com,因此运行此命令无法获取 PPA 中软件包的更改日志,而我发现的唯一真正方法是apt-get source <package>然后查看debian/changelog。有没有更有效的方法在终端中查看 PPA 中软件包的更改日志?

答案1

PPA 软件包的最新更改可以在以下位置查看:

https://launchpad.net/~<ppa_user_name>/+archive/ubuntu/<PPA_name>/+files/<package_name>_<package_version>_source.changes

您可以编写一个简单的脚本来提取这些数据。

脚本可以是这样的

#!/bin/sh

wget -q -O - https://launchpad.net/~$1/+archive/ubuntu/$2/+files/$3_$4_source.changes | \
awk '/Changes:/{f=1;next}/Checksums/{f=0}flag'

按如下方式运行:

./changelog.sh <ppa_user_name> <ppa_name> <package_name> <package_version>

例如

./changelog.sh hanipouspilot rtlwifi rtlwifi-new-dkms 0.5

如果您需要完整的更新日志,而不仅仅是最后一条,那么您必须下载并提取源代码。这也可以通过脚本完成。

另一个检查已安装软件包更新日志的脚本

#!/bin/bash

data=`apt-cache policy $1 | awk '/\*\*\*/ {print $2} f{print $2;f=0} /\*\*\*/{f=1}'`
version=`echo $data | awk '{print $1}'`
version=`echo $version | sed -r s/^[0-9]+://`
URL=`echo $data | awk '{print $2}'`
if [ -z `echo $URL | grep ppa` ]; then
    echo "The package is not installed from PPA"
    exit
else
    user=`echo $URL | cut -d / -f 4`
    name=`echo $URL | cut -d / -f 5`
    wget  -q -O - https://launchpad.net/~$user/+archive/ubuntu/$name/+files/$1_${version}_source.changes | \
    awk '/Changes:/{f=1;next}/Checksums/{f=0}f' 
fi

它可以运行

./changelog.sh <package_name>

相关内容