리눅스의 최신 man 명령 소스 코드는 어디에 있습니까?


20

최신 man 명령 소스 코드를 찾고 있는데 Linux 버전은 꽤 오래되었지만 (v1.6f) 인터넷 검색 후 잠시 실패했습니다.

나는의 최신 소스 코드를 의미 man하지, man-pages하지만에서 이진 파일 /usr/bin/man컴파일하고 설치할 수 있습니다 자체를.

답변:


19

일반적으로 배포본을 쿼리하여 소스의 출처를 확인할 수 있습니다. 예를 들어, 저는 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/ .

다른 배포판에 사용 된 패키징 시스템을 사용하여 유사한 단계를 수행 할 수 있습니다.


고마워,이 질문을 게시 한 후에 이미 man-db를 얻었습니다. 많은 종속성 때문에 소스 코드에서 사람을 컴파일 할 수없는 것 같습니다.
CodyChan

사실입니다. 모든 종속성을 먼저 해결해야합니다. 그럼에도 불구하고 새로운 바이너리는 다른 새로운 바이너리에 의존하기 때문에 유용하지 않을 수 있습니다.
fpmurphy

1
선형 의존성 만있는 경우, 이것은 쉽다;;) 순환 의존성을 갖는 프로그램 시스템 라인 그놈이있다. 일부 OSS 개발자는 문서화 된 선형 종속성 만있는 소스를 만드는 법을 배우기를 바랍니다.
schily

1
나중에 참조 할 수 있도록 데비안 기반 배포판에서 동등한 명령은 다음 dpkg -S /usr/bin/man과 같습니다.apt-cache show man-db | grep Homepage
Tim

2

데비안 기반 배포판에서 우분투와 동일하게 아래와 같이 소스 코드를 찾아서 다운로드 할 수 있습니다.

$ which man
/usr/bin/man
$ dpkg --search /usr/bin/man
man-db: /usr/bin/man
$ apt-get source man-db

소스 코드를 현재 작업 디렉토리에 넣습니다.


고마워, 이것은 나를 도왔다. 이 답변이 어떻게 든 더 일반화 될 수 있다면 좋을 것입니다.
Aaron Hall

-2

Linux는 운영 체제가 아니라 커널입니다. 따라서 이론적으로 모든 배포판은 원하는 것을 자유롭게 사용할 수 있습니다.

모든 리눅스 배포판에서 rpm이 반드시 사용되는 것은 아니므로 첫 번째 단계는 어떤 구현이 사용되는지 알아내는 것입니다. 이것은 일반적으로 strings바이너리 를 사용하여 수행 한 다음 큰 따옴표로 큰 문자열을 Google의 검색 문자열로 사용합니다.


1
경우 rpm -qfdpkg -S또는` "$ (명령 -v 사람)"반환 패키지의 이름, 다음 방법은 문자열을 검색하는 것보다 훨씬 더 신뢰할 수있는 것이라는 것을위한 당신의 포장 시스템에 대한 해당하지만 바이너리에서 발견. 대부분의 배포판은 소프트웨어를 업스트림에서 패치합니다. 따라서 배포판의 소스 패키지는 / usr / bin / man 용으로 컴파일 된 정확한 소스 코드를 찾기위한 유일한 장소입니다.
Stéphane Chazelas

12 가지가 넘는 패키징 시스템이 있으므로 많은 방법을 언급해야합니다. 그러나 ... 옳습니다 : 일반적으로 많은 배포판은 비 협업 적이며 소프트웨어에 버그를 패치하거나 유용한 패치를보고하지 않습니다 상류.
schily
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.