在哪里可以找到标准linux命令行工具的最佳来源?[关闭]


10

进入:我喜欢通过阅读资料来学习。但是,在许多不同项目站点上分散的Internet上搜索它们很累。我很想看到集中浏览的仓库,其中包含许多应用程序的来源。

  • 当某人想要查找某些Linux工具的文档时,最佳位置是:man toolname
  • 当我想按需浏览Linux资源时,可以随时跳转至:Linux Cross Reference
  • 当我想找到最普通的员工时,可以在Coreutils中找到所有资源 。
  • 当我想检查如何构建东西时,我可以(例如)跳到http://www.archlinux.org/packages/,检查它的pkgbuild。

是否有任何回购协议可以将大多数工具的来源集中在一处?-就像man保存文档或Linux Cross Reference内核源代码一样。

我的意思是“快速”“按需”检查事物是如何实现的。(是的,我知道Google->但我对例行工作感到厌倦:1.搜索项目站点2.浏览仓库甚至更糟->检查它是仓库3.完成后删除)

备注:

我已经强调过,我想检查一下工具:快速,快速,按需。

这意味着:我不想随其源一起安装整个应用程序,而只是查看其源。(顺便说一句,Web资源是更可取的,因此我可以检查来自多台计算机的资源-我没有对所有计算机进行管理)


3
大多数发行版允许您使用软件包管理器安装软件包的源。
jippie 2012年

3
对于debian,您可以apt-get source $PACKAGE-NAME在添加源存储库后立即运行
Ulrich Dangel,2012年

程序包通常会在其他库上答复以完成其功能
雏菊

我不想安装要检查的每个应用程序。
Grzegorz Wierzowiecki 2012年

3
@GrzegorzWierzowiecki您不必安装应用程序即可查看源代码,至少apt-get source可以使用普通用户身份运行此命令。
Ulrich Dangel 2012年

Answers:


6

让我用替代答案回答您的问题。我想您想阅读传统Unix命令行工具的代码,而不仅仅是这些的GNU版本。从不同的项目中读取类似工具的代码是学习不同想法和实现的一种好习惯。

GNU对于coreutils的回购有一个不错的Web界面:http : //git.savannah.gnu.org/cgit/coreutils.git

BSD系列具有与仓库类似的Web界面:

BSD代码库很有趣,因为通常在相同的工具上使用较少的代码,即:仅支持传统选项,没有额外的选项,sh是真正的shell,而不仅仅是指向其他大型shell(bash)的链接,等等。类似coreutils的工具在bin,sbin,usr.bin和usr.sbin中。

如果您想阅读用于构建第三方软件的代码(类似于arch的pkgbuild),也可以浏览相同的Web界面。NetBSD和DragonFly使用NetBSD存储库中的pkgsrc。OpenBSD和FreeBSD在各自的存储库中都有这些框架。

您感兴趣的其他存储库有:


好答案。感谢您鼓励进行比较-比较不同的方法是有益的。您可以通过一些Linux存储库来扩展答案吗?BSD代码库很有趣,但是恐怕syscall等东西可能会有重要的区别,因此Linux存储库将是您列表中很好的补充。
Grzegorz Wierzowiecki 2012年

* BSD的优点之一是所有代码都在一个存储库内。Linux的问题在于每个软件包都有不同的来源。coreutils存储库(以及内置功能git.savannah.gnu.org/cgit/bash.git/tree的bash 存储库)涵盖了几乎所有传统工具。“ Linux发行版”存储库仅包含用于构建第三方软件包和某些补丁的框架,该存储库不包含实际代码(仅包含发行版工具的代码)。
Rufo El Magufo 2012年

尊重差异BSD与Linux。这些API相似且习惯上与POSIX和其他标准兼容。不同之处在于每个API的内部实现。实际上,GNU的工具可在* BSD上运行,而* BSD的工具可在Linux上运行。例如:Debian(package.debian.org)有一些* BSD工具,而* BSD有可用的coreutils和其他GNU项目。
Rufo El Magufo 2012年

2

由于没有开放源代码开发的中心位置,因此没有包含大多数开放源代码软件的中心存储库。其中一些使用GitHub,BitBucket,私有服务器,Sourceforge,Launchpad等。因此,这是一个真正的分布式环境,仅使用一个存储库复制源并没有立即的好处。

另一方面,二进制分发版(用装运二进制文件代替源代码)通常为大多数软件包提供源,并将其提供给所有用户。因此,您最好的机会是使用发行版提供的基础结构。请注意,它们不一定包含最新的更改和修复,并且可能已过时。

示例如何从您的发行版下载源包:

yumdownloader --source packagename
apt-get source packagename

对于Arch,请查看关于stackoverflow 类似问题的答案

如果您只想下载源代码,则可以使用packages.debian.org,例如coreutils的链接。这将提供原始包(orig.*或某些包的清理源dsfg.*)的下载链接。您可以对Arch Linux软件包列表执行相同的操作,例如:arch coreutils page。在Download from Mirror将下载的软件包。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.