ที่ไหนดีที่สุดในการค้นหาแหล่งที่มาของเครื่องมือบรรทัดคำสั่ง linux มาตรฐาน [ปิด]


10

เป็น: ฉันชอบการเรียนรู้โดยการอ่านแหล่งที่มา แต่มันก็น่าเบื่อที่จะค้นหาพวกเขาผ่านอินเทอร์เน็ตแยกออกมาในหลาย ๆ ไซต์ของโครงการ ฉันชอบที่จะเห็นrepo ส่วนกลางที่สามารถเรียกดูได้ซึ่งมีแหล่งที่มาของแอพมากมายในที่เดียว

  • man toolnameเมื่อมีคนต้องการที่จะหาเอกสารของลินุกซ์เครื่องมือบางสถานที่ที่ดีที่สุดคือ:
  • เมื่อฉันต้องการที่จะเรียกดูแหล่งที่มาของลินุกซ์ "ตามความต้องการ" ฉันมักจะสามารถข้ามไปยัง: ลินุกซ์อ้างอิงข้าม
  • เมื่อฉันต้องการที่จะหาพนักงานที่พบมากที่สุดที่ฉันสามารถหาแหล่งที่มาทั้งหมดใน coreutils
  • เมื่อฉันต้องการตรวจสอบวิธีการสร้างบางสิ่งฉันสามารถ (ตัวอย่าง) ข้ามไปที่http://www.archlinux.org/packages/ตรวจสอบว่าเป็น pkgbuild

มี repo ใดบ้างที่เก็บแหล่งเครื่องมือส่วนใหญ่ไว้ในที่เดียว? - เหมือนกับmanเก็บเอกสารหรือLinux Cross Reference kernel เคอร์เนล

ฉันหมายถึงบางสิ่งบางอย่างสำหรับ "รวดเร็ว" "ตามต้องการ" การตรวจสอบว่ามีการใช้งานอย่างไร (ใช่ฉันรู้ google -> แต่ฉันเบื่องานประจำ: 1. ค้นหาไซต์โครงการ 2. เรียกดู repo หรือแย่กว่านั้น -> ตรวจสอบว่าเป็น repo 3. ลบเมื่อเสร็จแล้ว)

สังเกต:

ฉันเครียดฉันต้องการตรวจสอบเครื่องมือ: รวดเร็วเร็วและตามต้องการ

มันหมายถึง: ฉันไม่ต้องการติดตั้งแอพทั้งหมดด้วยแหล่งที่มาเพียงเพื่อดูที่แหล่งที่มา (btw. ทรัพยากรเว็บเป็นที่นิยมดังนั้นฉันสามารถตรวจสอบแหล่งที่มาจากคอมพิวเตอร์หลายเครื่อง - ฉันไม่มีผู้ดูแลระบบในทุกคน)


3
ดิสทริบิวชันส่วนใหญ่อนุญาตให้คุณติดตั้งซอร์สสำหรับแพ็คเกจโดยใช้ตัวจัดการแพ็กเกจ
jippie

3
สำหรับเดเบียนคุณสามารถเรียกใช้apt-get source $PACKAGE-NAMEหลังจากที่คุณเพิ่มแหล่งเก็บข้อมูล
Ulrich Dangel

แพคเกจมักจะตอบกลับในไลบรารีอื่น ๆ เพื่อทำหน้าที่ให้เสร็จสมบูรณ์
daisy

ฉันไม่ต้องการติดตั้งแอพแต่ละตัวที่ฉันต้องการตรวจสอบ
Grzegorz Wierzowiecki

3
@GrzegorzWierzowiecki คุณไม่จำเป็นต้องติดตั้งแอปพลิเคชันเพื่อดูซอร์สโค้ดอย่างน้อยapt-get sourceคุณก็สามารถเรียกใช้คำสั่งนี้ในฐานะผู้ใช้ปกติได้
Ulrich Dangel

คำตอบ:


6

ให้ฉันตอบคำถามของคุณด้วยคำตอบอื่น ฉันเดาว่าคุณต้องการอ่านโค้ดสำหรับเครื่องมือบรรทัดคำสั่ง Unix แบบดั้งเดิมไม่ใช่เฉพาะรุ่น GNU ของเหล่านี้ อ่านรหัสของเครื่องมือที่คล้ายกันจากโครงการต่าง ๆ เป็นวิธีปฏิบัติที่ดีสำหรับการเรียนรู้แนวคิดและการใช้งานที่แตกต่างกัน

GNU มีเว็บอินเตอร์เฟสที่ดีสำหรับ repo ของ coreutils: http://git.savannah.gnu.org/cgit/coreutils.git

ตระกูล BSD มีเว็บอินเตอร์เฟสที่คล้ายคลึงกันสำหรับ repos:

รหัสฐาน BSD นั้นน่าสนใจเพราะโดยปกติจะใช้รหัสน้อยลงสำหรับเครื่องมือเดียวกันเช่น: รองรับตัวเลือกแบบดั้งเดิมเท่านั้นไม่มีตัวเลือกพิเศษ sh คือเชลล์จริงและไม่เพียงแค่ลิงก์ไปยังเชลล์ใหญ่อื่น ๆ (ทุบตี) เครื่องมืออื่น ๆ ที่คล้ายกับ coreutils อยู่ใน bin, sbin, usr.bin และ usr.sbin

คุณยังสามารถเรียกดูเว็บอินเตอร์เฟสเดียวกันได้หากคุณต้องการอ่านรหัสเพื่อสร้างซอฟต์แวร์บุคคลที่สาม (คล้ายกับ pkgbuild ของ arch) NetBSD และ DragonFly ใช้ pkgsrc จาก NetBSD repo OpenBSD และ FreeBSD มีเฟรมเวิร์กเหล่านี้ภายใน repos ที่เกี่ยวข้อง

repos อื่น ๆ ที่น่าสนใจสำหรับวัตถุประสงค์ของคุณคือ:


คำตอบที่ดี ขอบคุณที่ให้การสนับสนุนเพื่อการเปรียบเทียบ - การเปรียบเทียบวิธีการที่แตกต่างกันคือความรู้ คุณช่วยขยายคำตอบของคุณด้วย repo Linux ได้ไหม? รหัสฐาน BSD นั้นน่าสนใจ แต่ฉันเกรงว่าอาจมีความแตกต่างที่สำคัญในสิ่งอื่น ๆ ของ syscall ดังนั้น repos Linux จะยิ่งเพิ่มเข้าไปในรายการของคุณ
Grzegorz Wierzowiecki

ข้อดีอย่างหนึ่งของ * BSD คือรหัสทั้งหมดอยู่ใน repo เดียว ปัญหาเกี่ยวกับลีนุกซ์คือแต่ละแพ็คเกจมีต้นกำเนิดที่แตกต่างกัน coreutils repo (และ bash repo สำหรับฟังก์ชันการทำงานในตัวgit.savannah.gnu.org/cgit/bash.git/tree ) ครอบคลุมเครื่องมือแบบดั้งเดิมเกือบทั้งหมด repos "linux distro" มีเฉพาะเฟรมเวิร์กสำหรับสร้างแพ็คเกจบุคคลที่สามและแพทช์บางอัน repos ไม่มีรหัสจริง (มีรหัสสำหรับเครื่องมือ distro เท่านั้น)
Rufo El Magufo

เคารพความแตกต่าง BSD vs Linux API นั้นคล้ายคลึงกันและเข้ากันได้เป็นปกติกับ POSIX และมาตรฐานอื่น ๆ ความแตกต่างคือการใช้งานภายในของแต่ละ API อันที่จริงเครื่องมือจาก GNU ทำงานบน * BSD และเครื่องมือจาก * BSD ทำงานบน Linux ตัวอย่าง: Debian ( packages.debian.org ) มีเครื่องมือ * BSD บางส่วนและ * BSDs มี coreutils และโครงการ GNU อื่น ๆ
Rufo El Magufo

2

เนื่องจากไม่มีศูนย์กลางสำหรับการพัฒนาโอเพ่นซอร์สจึงไม่มีที่เก็บส่วนกลางที่มีซอฟต์แวร์โอเพ่นซอร์สส่วนใหญ่ บางคนใช้ GitHub, BitBucket, เซิร์ฟเวอร์ส่วนตัว, Sourceforge, Launchpad เป็นต้นดังนั้นนี่คือสภาพแวดล้อมแบบกระจายอย่างแท้จริงและไม่มีประโยชน์ทันทีที่มีพื้นที่เก็บข้อมูลเพียงแห่งเดียวเพียงแค่คัดลอกแหล่งที่มา

ในอีกทางหนึ่งการแจกแจงแบบไบนารี (ไบนารีการจัดส่งแทนที่จะเป็นซอร์สโค้ด) มักจะให้แหล่งข้อมูลสำหรับแพ็คเกจส่วนใหญ่และมอบให้กับผู้ใช้ทั้งหมด ดังนั้นโอกาสที่ดีที่สุดของคุณคือการใช้โครงสร้างพื้นฐานที่จัดทำโดยการกระจาย โปรดทราบว่าพวกเขาไม่จำเป็นต้องมีการเปลี่ยนแปลงและแก้ไขล่าสุดและอาจล้าสมัย

ตัวอย่างวิธีดาวน์โหลดแพ็กเกจซอร์สจากการแจกจ่ายของคุณ:

yumdownloader --source packagename
apt-get source packagename

สำหรับ Arch ดูที่คำตอบของคำตอบสำหรับคำถามที่คล้ายกันใน stackoverflow

ถ้าคุณเพียงต้องการทำดาวน์โหลดรหัสที่มาคุณสามารถใช้ packages.debian.org เช่นการเชื่อมโยงสำหรับ coreutils นี่จะเป็นลิงค์ดาวน์โหลดไปยังแพ็คเกจดั้งเดิม ( orig.*หรือแหล่งข้อมูลที่ล้างข้อมูลสำหรับบางแพ็คเกจdsfg.*) คุณสามารถทำเช่นเดียวกันกับรายการ Arch ลินุกซ์แพคเกจเช่น: coreutils ซุ้มประตูหน้า Download from Mirrorจะดาวน์โหลดแพคเกจ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.