Emacs lisp 源代码
.elc
文件?例如
cal-mayan.elc
目录中的文件
/bin
?例如
cat
、split
、 和echo
答案1
这在一定程度上取决于您使用的发行版。在 Debian 风格的系统上你可以这样做:
$ dpkg -S `which cat`
coreutils: /bin/cat
$ apt-get source coreutils
最后一个命令将获取源存档以及用于构建包含 cat 命令的二进制包的所有补丁。
或者你也可以直接用谷歌搜索它。或者甚至使用谷歌代码搜索。
答案2
然而,对于 Emacs,Ubuntu 下有一个名为 emacs23-el 的特殊包,其中包含 Emacs 的所有 el 文件,并将它们与 elc 文件一起安装。这样做的好处是,您可以直接从 Emacs 查看函数和变量定义。假设您想查看函数 string-insert-rectangle 是如何定义的。您点击 Ch f string-insert-rectangle 就会出现一个带有文档的帮助缓冲区,告诉您它是在 rect.el 中定义的。如果单击 rect.el,Emacs 会自动显示函数定义。
答案3
对于基于 RPM 的发行版,您可以询问“rpm -qi <somepackage>”,如果您不知道原始软件包,甚至可以询问“rpm -qi <somefile>”。它会告诉您源 RPM 是什么,以及源的主页。在 Fedora(以及其他使用 yum 的发行版)上,您可以使用 yumdownloader 获取源包,例如“yumdownloader --source <package>”将为您获取它。然后,rpm(1) 命令将允许您解压源代码(源 RPM 包包含上游源代码、各种补丁、配置文件以及指导结果构建和安装的规范文件)。
如果您需要安装经过某种本地修改的软件包(也许只是为了检查下一个上游版本),这会很方便。