在提问之前,我的问题文章可能有一些不正确的内容。我是一名 linux 新手和一名新手开发人员。
我有一个关于 Linux 的问题tcpdump源代码。据我所知,tcpdump 是使用libpcap。
tcpdump 是如何工作的?我的看法是,由于 tcpdump 二进制可执行文件设置在小路。正确的?
我的主要问题是 tcpdump c 源代码在哪里?我已经知道 tcpdump 库代码,可从 tcpdump 主页访问tcpdump
我想查看包含主要函数、变量头文件的 tcpdump 真实 c 代码。请告诉我位置。
我使用 Ubuntu 16.04 LTS。
答案1
tcpdump
可以在main
Ubuntu 的存储库中找到。
下载源代码tcpdump
:
确保已为
deb-src
类型包启用存储库,对于xenial
(16.04),将以下内容添加到/etc/apt/sources.list
:deb-src http://archive.ubuntu.com/ubuntu/ xenial main restricted
替换
xenial
为您的发布代号,您可以通过以下方式找到您的发布代号:lsb_release -sc
现在通过与存储库同步来更新本地包列表:
sudo apt-get update
安装源代码
tcpdump
:apt-get source tcpdump
sudo
它将被下载并自动提取到当前目录;除非您没有该目录的写权限,否则也不需要。
您需要的所有文件都在目录中tcdump-<version>
,例如对于版本,4.5.1
该目录为tcpdump-4.5.1
。
答案2
我不确定我是否理解了你的第一个问题,但是:
您可以找到GitHub 上的源代码。正如开发者网站上所示,你可以
tcpdump
使用以下命令克隆 GitHub 存储库:git clone https://github.com/the-tcpdump-group/tcpdump.git
编译代码时,您必须决定可执行文件的位置。只需确保它位于用户
PATH
变量指向的某个位置,或者只需修改您的代码PATH
以包含该位置即可。
您也可以直接从 Canonical repo 通过sudo dpkg -i DEB_PACKAGE
或sudo apt-get install DEB_PACKAGE
使用 GUI 安装它(如果您愿意的话)... 在这种情况下,您会在 找到您的二进制文件/usr/sbin/tcpdump
。此外
whereis tcpdump
将为您提供二进制文件(上述)、源代码和手册页文件的位置。