Compiling

已編譯程序的儲存源在哪裡?

  • February 18, 2018

我想在 Linux/Unix 系統中找到編譯程序的確切原始碼。

舉例說明:

computer:/ username$ whereis ping
/sbin/ping

任務是找到**/sbin/ping**的原始碼。

已編譯二進製文件的原始碼可能在您的系統上不可用。


OpenBSD(不是 Linux)上,原始碼用於完整的基礎系統(包括核心和實用程序,如ping),可通過 CVS 獲得。

有關可在 Web 上瀏覽的 OpenBSD 儲存庫,請參閱https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/

ping位於.src/sbin/ping


NetBSD項目(同樣,不是 Linux)在http://cvsweb.netbsd.org/bsdweb.cgi/src/有一個可瀏覽的 CVS 儲存庫

與 OpenBSD 一樣,原始碼ping位於src/sbin/ping該樹中。


FreeBSD項目(也不是 Linux)在https://github.com/freebsd/freebsd有一個 GitHub 儲存庫

的原始碼ping位於sbin/ping該樹中。


在這些 BSD 系統上,基本實用程序和核心的原始碼只有在使用者檢查了相應的儲存庫後才能在系統上使用。

(帶有建構說明的 Makefiles)第三方工具包/埠保存在所有這三個作業系統的單獨儲存庫中,如果有人決定,通常從相關工具的主要分發站點獲取原始碼自己編譯工具,而不是使用現成的二進制包/埠。

有關如何使用其包/埠系統的資訊,請參閱相關 Unix 提供的文件。


對於 Linux 實用程序原始碼,您必須首先弄清楚該實用程序來自哪個包,然後(如果可能)使用包管理器軟體來獲取包的原始碼。或者,查找包維護者在創建二進制包時從何處獲取原始碼。根據您使用的 Linux 和包管理器軟體,這會有所不同。

引用自:https://unix.stackexchange.com/questions/424937