假设我对某个特定Linux实用程序的源代码感兴趣,例如factor
。我在哪里可以找到该实用程序的源代码?
答案 0 :(得分:14)
您还可以找到包含源代码的下载包含二进制文件的包。
在Debian(和Ubuntu以及其他任何基于Debian的东西)上你这样做:
$ dpkg -S /usr/bin/factor coreutils: /usr/bin/factor $ apt-get source coreutils
第一个命令将检查哪个包中包含您要搜索的文件(使用“which factor
”查找当您输入“factor
”时执行的二进制文件。
第二个命令会将源(包括用于构建程序包的补丁)下载并解压缩到当前目录,因此应该在专用目录或临时目录中执行。
我很确定基于rpm
的发行版具有类似的机制,但我不知道他们的命令。
答案 1 :(得分:9)
我所做的是输入
man factor
然后到底部找到'GNU coreutils 6.10'。所以我用谷歌搜索了'coreutils'并且......发现了joschi刚刚链接到的网站。
答案 2 :(得分:5)
要查找二进制文件包,在基于rpm的系统中,您可以键入:
$ rpm -qf /usr/bin/factor
将打印包名称。相反,使用:
$ rpm -qif /usr/bin/factor
您将获得有关包裹的信息,包括许多情况下的主页。
源rpms也存在,但是如何获取它们取决于在RPM之上使用的高级包管理器(yum,urpmi,apt-get4 for rpm,...)。
在大多数系统上,/ usr / share / doc /还包含有关该程序的一些文档,并且网站链接经常出现在那里,可能在README中。
答案 3 :(得分:4)
如果它是开源的,通常你会在程序的网站上找到源代码。在这种情况下here,因为 factor 是coreutils的一部分。
答案 4 :(得分:3)
在Gentoo上,只需查看编译包的ebuild:D。
如果你不确定?
# which factor /usr/bin/factor # grep '/usr/bin/factor' /var/db/pkg/*/*/CONTENTS /var/db/pkg/sys-apps/coreutils-6.12-r2/CONTENTS:obj /usr/bin/factor 5aaf903daa4345efb11618b3cb47e9a5 1224224574 /var/db/pkg/sys-apps/coreutils-6.12-r2/CONTENTS:obj /usr/lib64/debug/usr/bin/factor.debug 517d965636850633e9b15926dde8c222 1224224575 # cat /var/db/pkg/sys-apps/coreutils-6.12-r2/SRC_URI ftp://alpha.gnu.org/gnu/coreutils/coreutils-6.12.tar.lzma mirror://gnu/coreutils/coreutils-6.12.tar.lzma mirror://gentoo/coreutils-6.12.tar.lzma mirror://gentoo/coreutils-6.12-patches-1.0.tar.lzma http://dev.gentoo.org/~vapier/dist/coreutils-6.12-patches-1.0.tar.lzma # cat /var/db/pkg/sys-apps/coreutils-6.12-r2/HOMEPAGE http://www.gnu.org/software/coreutils/
但当然,源代码可能仍在/usr/portage/distfiles
中提供。
答案 5 :(得分:3)
另一种非常好的方法是使用Google Code Search。例如,搜索factor coreutils(请参阅手册页或factor --help
以查看它来自coreutils)会将包作为第二个结果。两次点击即可在线浏览factor.c。
Google Code Search搜索大多数公共源代码。您可以使用regexp和许多高级搜索选项,包括按语言和许可限制。
答案 6 :(得分:2)
我通常会在freshmeat上搜索来找到源,主页和其他有用信息的链接。
答案 7 :(得分:-1)
您可以查看SourceForge.net。