我想在Ubuntu中创建一个网络管理器开放连接包的更新版本。显然,我需要获得最新的包源:
bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head然后呢?这个包似乎有一种使用git更新最新上游代码的方法。但我怎么能让它这么做呢?
发布于 2011-03-14 16:23:54
从bzr分支构建更新的包往往会有相当大的差异,这取决于谁维护分支或者包一般是如何工作的。但是,这里有一些指南,用于快速和肮脏地更新几乎所有包,并将其推送到PPA中:
获得支部:
bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head然后切换到它,并更新changelog:
dch -idch -i将简单地在debian/changelog中打开一个新条目,将版本修订增加一个。如果您想要添加一个修补程序,这是完美的,但如果您想更新到更新版本的上游软件,您将需要更新前的破折号(-)版本号。比如说,1.2-0ubuntu 1中的一个版本,如果启动dch -i,它将更改为1.2-0ubuntu 2,这对修补很好,但是如果您需要一个新版本,您可能希望将其更改为1.3-0ubuntu 1。
如果您需要进行修补,现在是添加更改的时候了。在只有debian/目录的分支中,可以使用bzr (需要bzr-builddeb包)切换到工作树,在那里您可以进行更改、使用棉被或任何修补程序系统,然后“退出0”将更改复制回来。
如果您想要一个新的上游版本,一旦changelog被更改,您可能会运行一个类似于这个版本的命令:
debian/rules get-orig-source这通常会从上游出版商下载正确的tarball,让您开始工作。如果需要进行进一步的更改,请按照上面的方式进行“修补”或更改debian/目录中的其他文件,否则几乎就完成了:
bzr bd -Sbzr bd将负责建筑。在没有参数的情况下调用它将在您的系统上开始构建,而使用-S调用它将告诉它准备一个源包,该包将包括要上载到您的PPA的..._source.changes文件(使用dput ppa:/ ])。
对于NetworkManager包来说,这有点不同。让我们特别看看openconnect:
bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head network-manager-openconnect确保您还拥有所有的构建依赖项: sudo get- build
在检索到分支后,它将读取debian/control文件,并尝试下载构建网络管理器开放连接所需的所有内容。不过,你可能也需要吉特。完成之后,运行get-orig-source,只从git获取最新快照的tarball:
debian/rules get-orig-source您将看到文本飞过,一个长版本号的tarball出现。这是你能得到的最新的代码。
然后,您需要使用tarball中的版本号更新changelog,只需保持-0 ubuntu1后缀不变。
或者,用所需的特定版本号更改debian/changelog,然后运行:debian/规则获取当前源。
由于插件变化不大,所以您应该能够从那里构建包,使用上面的bzr。如果没有,应用上述任何必要的更改。
不要忘记在您做了更改之后提交bzr。
我首先忘记添加,不要犹豫使用合并提案系统(建议合并链接您的分支页面在LP上),当您正在进行的更改可能对其他人有益。通常,您可以建议与分支合并,您的合并是基于(例如,本例中的lp:~network-manager/network-manager/openconnect-ubuntu.head )。
https://askubuntu.com/questions/29826
复制相似问题