ซอร์สโค้ดล่าสุดของคำสั่ง man สำหรับ linux อยู่ที่ไหน


20

ฉันกำลังมองหาซอร์สโค้ดคำสั่ง man ล่าสุดเวอร์ชันใน Linux ของฉันค่อนข้างเก่า (v1.6f) แต่ฉันล้มเหลวหลังจาก Google ไปสักครู่

ฉันหมายถึงซอร์สโค้ดล่าสุดของ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แพ็คเกจสำหรับ upstream url:

$ rpm -qi man-db | grep -i url
URL         : http://www.nongnu.org/man-db/

และมีคุณมีhttp://www.nongnu.org/man-db/

คุณสามารถดำเนินการตามลำดับขั้นตอนที่คล้ายกันกับระบบบรรจุภัณฑ์ที่ใช้กับการกระจายอื่น ๆ


ขอบคุณฉันมี man-db อยู่แล้วหลังจากที่ฉันโพสต์คำถามนี้ดูเหมือนว่าฉันไม่สามารถรวบรวม man จากซอร์สโค้ดได้เนื่องจากมีการพึ่งพาหลายอย่าง
CodyChan

นั่นเป็นความจริง. คุณจะต้องแก้ไขการอ้างอิงทั้งหมดก่อน แม้กระทั่งตอนนี้ไบนารีคนใหม่ของคุณอาจไม่เป็นประโยชน์กับคุณเนื่องจากการพึ่งพาไบนารีใหม่อื่น ๆ
fpmurphy

1
ถ้ามีเพียงการอ้างอิงเชิงเส้นนี่เป็นเรื่องง่าย ;-) มีระบบโปรแกรมบรรทัด GNOME ที่มีการขึ้นต่อกันแบบวงกลม ฉันหวังว่านักพัฒนา OSS บางคนเรียนรู้ที่จะสร้างแหล่งที่มีการอ้างอิงเชิงเส้นที่เป็นเอกสารเท่านั้น
schily

1
สำหรับการอ้างอิงในอนาคตบนการแจกแจงแบบ Debian คำสั่งที่เทียบเท่าคือdpkg -S /usr/bin/manและapt-cache show man-db | grep Homepage
Tim

2

ในการแจกแจงแบบ Debian เช่นเดียวกับ Ubuntu คุณสามารถค้นหาและดาวน์โหลดซอร์สโค้ดเหมือนด้านล่าง:

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

สิ่งนี้จะใส่ซอร์สโค้ดในไดเรกทอรีทำงานปัจจุบันของคุณ


ขอบคุณสิ่งนี้ช่วยฉัน จะดีถ้าคำตอบนี้อาจจะเป็นแนวทั่วไปมากกว่าอย่างใด
แอรอนฮอลล์

-2

Linux ไม่ใช่ระบบปฏิบัติการ แต่เป็นเพียงเคอร์เนล ในทางทฤษฎีแล้วทุก distro มีอิสระที่จะใช้สิ่งที่พวกเขาชอบ

แม้แต่ rpm ก็ไม่จำเป็นต้องใช้กับทุก ๆ ลินุกซ์ distro ดังนั้นขั้นตอนแรกคือการหาว่ามีการใช้งานแบบไหน โดยทั่วไปสามารถทำได้โดยใช้stringsบนไบนารีแล้วใช้สตริงที่สำคัญในเครื่องหมายคำพูดคู่เป็นสตริงการค้นหาบน Google


1
ถ้าrpm -qfหรือdpkg -Sเทียบเท่าระบบบรรจุภัณฑ์ของคุณสำหรับ `" $ (command -v man) "ส่งคืนชื่อของแพ็กเกจวิธีการนั้นจะเชื่อถือได้มากกว่า googling สำหรับสตริงที่พบในไบนารี โปรดทราบว่าการกระจายส่วนใหญ่จะแก้ไขซอฟต์แวร์จากต้นน้ำ ดังนั้นซอร์สโค้ดสำหรับการแจกจ่ายของคุณจึงเป็นที่เดียวที่จะไปสำหรับซอร์สโค้ดที่แน่นอนซึ่งรวบรวมสำหรับ / usr / bin / man ของคุณ
Stéphane Chazelas

มีมากกว่าหนึ่งโหลระบบบรรจุภัณฑ์ที่แตกต่างกันดังนั้นคุณจะต้องพูดถึงวิธีการมากมาย ..... แต่คุณถูกต้อง: โดยทั่วไปการกระจายจำนวนมากไม่ได้ทำงานร่วมกันและทั้งข้อผิดพลาดแก้ไขแพทช์ในซอฟต์แวร์หรือไม่รายงานแพทช์ที่มีประโยชน์ ต้นน้ำลำธาร
schily
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.