답변:
일반적으로 배포본을 쿼리하여 소스의 출처를 확인할 수 있습니다. 예를 들어, 저는 Fedora를 사용하고 man
있으며 man-db
패키지 에서 명령이 제공되는 것을 볼 수 있습니다 .
$ rpm -qf /usr/bin/man
man-db-2.6.7.1-16.fc21.x86_64
그런 다음 man-db
업스트림 URL에 대한 패키지를 쿼리 할 수 있습니다 .
$ rpm -qi man-db | grep -i url
URL : http://www.nongnu.org/man-db/
그리고 당신이있다 http://www.nongnu.org/man-db/ .
다른 배포판에 사용 된 패키징 시스템을 사용하여 유사한 단계를 수행 할 수 있습니다.
dpkg -S /usr/bin/man
과 같습니다.apt-cache show man-db | grep Homepage
데비안 기반 배포판에서 우분투와 동일하게 아래와 같이 소스 코드를 찾아서 다운로드 할 수 있습니다.
$ which man
/usr/bin/man
$ dpkg --search /usr/bin/man
man-db: /usr/bin/man
$ apt-get source man-db
소스 코드를 현재 작업 디렉토리에 넣습니다.
Linux는 운영 체제가 아니라 커널입니다. 따라서 이론적으로 모든 배포판은 원하는 것을 자유롭게 사용할 수 있습니다.
모든 리눅스 배포판에서 rpm이 반드시 사용되는 것은 아니므로 첫 번째 단계는 어떤 구현이 사용되는지 알아내는 것입니다. 이것은 일반적으로 strings
바이너리 를 사용하여 수행 한 다음 큰 따옴표로 큰 문자열을 Google의 검색 문자열로 사용합니다.
rpm -qf
나 dpkg -S
또는` "$ (명령 -v 사람)"반환 패키지의 이름, 다음 방법은 문자열을 검색하는 것보다 훨씬 더 신뢰할 수있는 것이라는 것을위한 당신의 포장 시스템에 대한 해당하지만 바이너리에서 발견. 대부분의 배포판은 소프트웨어를 업스트림에서 패치합니다. 따라서 배포판의 소스 패키지는 / usr / bin / man 용으로 컴파일 된 정확한 소스 코드를 찾기위한 유일한 장소입니다.