Linux/Unix 시스템에서 컴파일된 프로그램의 정확한 소스 코드를 찾고 싶습니다.
예를 들어:
computer:/ username$ whereis ping
/sbin/ping
작업은 소스 코드를 찾는 것입니다/스빈/핑.
답변1
컴파일된 바이너리의 소스 코드는 시스템에서 사용하지 못할 수도 있습니다.
존재하다오픈BSD(Linux 아님) 전체 기본 시스템 소스 코드(예: 커널 및 유틸리티 포함 ping
)는 CVS를 통해 사용할 수 있습니다.
웹에서 탐색 가능한 OpenBSD 저장소에 대해서는 다음을 참조하세요.https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/
출처는 ping
다음 위치에 있습니다.src/sbin/ping
.
이것네트워크BSD프로젝트(리눅스 아님)에는 다음 위치에 탐색 가능한 CVS 저장소가 있습니다.http://cvsweb.netbsd.org/bsdweb.cgi/src/
출처 ping
는 에 있습니다src/sbin/ping
해당 트리에서는 OpenBSD용입니다.
이것FreeBSD프로젝트(Linux도 아님)에는 GitHub 저장소가 있습니다.https://github.com/freebsd/freebsd
소스코드는 ping
다음 위치에 있습니다.sbin/ping
그 나무에.
이러한 BSD 시스템에서 기본 유틸리티 및 커널의 소스 코드는 사용자가 해당 저장소를 체크아웃한 경우에만 시스템에서 사용할 수 있습니다.
(빌드 지침이 포함된 Makefile) 타사 툴킷/포트는 세 운영 체제 모두에 대해 별도의 저장소에 보관되며, 도구 자체를 컴파일하기로 결정한 경우 해당 도구의 주요 배포 사이트에서 소스 코드를 얻는 것이 일반적입니다. 대신 기성 바이너리 패키지/포트를 사용하는 대신.
패키지/포트 시스템 사용 방법을 알아보려면 관련 Unix에서 제공하는 설명서를 참조하세요.
Linux 유틸리티 소스 코드의 경우 먼저 유틸리티가 어떤 패키지에서 제공되는지 파악한 다음 (가능한 경우) 패키지 관리자 소프트웨어를 사용하여 해당 패키지의 소스 코드를 가져와야 합니다. 또는 패키지 관리자가 바이너리 패키지를 생성할 때 소스 코드를 어디서 얻었는지 알아보세요. 이는 사용하는 Linux 및 패키지 관리자 소프트웨어에 따라 다릅니다.