当我需要在答案中链接到打包代码时,我一直认为 Launchpad 的源代码浏览器非常有用。URL 模式非常简单 ( https://code.launchpad.net/ubuntu/+source/<package>
),我通常只需在地址栏中输入最后一个单词即可替换code
。但最近,我发现查找实际的打包代码变得越来越不一致。
例如:
- 妊娠期糖尿病- 没有比 15.10 更新的版本。但很明显变更日志包装代码有从那时起就发生了变化。
- 猛击- 这很有趣。这里有一个链接Launchpad 上的 Git 存储库在该页面中,那里您可以看到新版本的包装。同样,易于、bash、git、grub2、....
请注意,没有列出用于 GDM 打包的 Git 存储库。其他类似 GDM 的存储库:集市本身,光子发射,嘚,铬,...
所有的包装代码都到哪里去了?
请注意,我不想下载打包代码,我已经下载了apt-get source
。我不想浏览软件源代码,我会在 LP 之外寻找(当然,除非该软件是在 LP 上开发的)。我想在线浏览 Ubuntu 的打包代码,并能够链接到它。对于 Debian,我通常可以在阿利奥斯。
答案1
简短回答:要获得全部内容,您必须单独下载源包;目前还没有针对 Ubuntu 的单一公共浏览服务可供普遍使用。但我们正在努力!
长答案:
所有 Ubuntu 的规范源代码都以源码包的形式提供。您可以访问https://launchpad.net/ubuntu/+source/hello例如,单击其中一个版本号,您可以从下载部分下载源代码。要查找 Ubuntu 发布的 hello 的每个版本的源代码,您可以单击链接查看其完整出版历史然后单击其中的任何版本号字符串。相同的 URL 模式适用于任何源包;您只需要知道源包的名称。
源包是规范的,因为它们是 Ubuntu 开发人员开发 Ubuntu 的基本单元。但它们有些笨重;解压源包需要一些工具。如果您为包提供 dsc 文件的 URL,则可以dget
在devscripts
一个命令中下载、验证和解压源包。
这当然不是很方便。
几年前,有人试图改善这种情况。Ubuntu 称之为“Ubuntu 分布式开发”,简称 UDD,并开发了一个名为 Bazaar 的分布式版本控制系统来尝试解决这个问题。作为这项工作的一部分,源代码包在发布时会自动导入到 Launchpad 上的 Bazaar VCS 托管平台中。当时,理论上你可以在 找到任何包的源代码。例如,你仍然可以在 看到 Precise 和 Trusty Ubuntu 版本的包的code.launchpad.net
Bazaar 导入源hello
https://code.launchpad.net/ubuntu/+source/hello。
Bazaar 专注于一组特定的用例,并且有一个经过深思熟虑的命令行界面。它的开发人员之一 Jelmer Vernooij 写道回顾 Bazaar 的发展历程,包括它如何与当时正在开发的其他分布式版本控制系统相适应。
随着时间的推移,git 占据了主导地位,而 Bazaar 则退居二线。与此同时,UDD 开始显露出漏洞。越来越多的软件包无法导入,需要手动干预才能修复。这意味着,即使 Ubuntu 继续开发源代码软件包,Bazaar 对这些软件包的视图也无法code.launchpad.net
更新。
最终,UDD 导入器已关闭因为没有人维护它并且人们认为它不值得继续运行。
与此同时,我在 2014 年出版了关于如何使用 git 进行 Ubuntu 开发的一些笔记;尽管当时 Ubuntu 软件包通常没有在 git 中维护。
我的团队(Ubuntu 服务器团队)采用了这种基于 git 的工作流程,我们继续致力于通过 git 提供 Ubuntu 源代码。我和一位同事已经开始编写博客系列(尚未完成)解释我们正在做的事情。
您找到的某些软件包的 git 存储库是我们导入器 ( ) 的结果~usd-import-team
。我们仍在积极努力,这就是为什么并非所有软件包都可以通过这种方式获得的原因。我们尚未进入“测试”阶段,预计在准备就绪之前会重新导入所有软件包(破坏所有以前的提交哈希值),并且尚未使所有导入的存储库与最新的 Ubuntu 开发工作保持同步。但是,如果我们导入了软件包的特定版本,它应该足够准确以供浏览。
我们希望在接下来的几个月内能够导入所有软件包并自动保持其更新。
我们的目标之一正是解决您所提出的问题:在 Launchpad 上有一个可以浏览所有 Ubuntu 源代码的官方位置。