อะไรคือความแตกต่างระหว่างการสร้างจากแหล่งที่มาและการใช้แพ็คเกจการติดตั้ง?


46

ฉันสงสัยว่า: เมื่อติดตั้งบางอย่างมีวิธีที่ง่ายในการคลิกสองครั้งที่ไฟล์ปฏิบัติการติดตั้งและในทางกลับกันก็มีวิธีสร้างไฟล์จากแหล่งที่มา

อันหลังการดาวน์โหลดบันเดิลซอร์สนั้นยุ่งยากมาก

แต่อะไรคือความแตกต่างพื้นฐานระหว่างสองวิธีนี้?

คำตอบ:


44

ซอฟแวร์ทั้งหมดอยู่ในโปรแกรมซึ่งจะเรียกว่าแพคเกจที่มา ดังนั้นซอร์สแพ็กเกจทั้งหมดต้องถูกสร้างขึ้นก่อนเพื่อให้รันบนระบบของคุณ

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

แพคเกจไบนารีติดตั้งง่าย
แต่อาจไม่มีตัวเลือกทั้งหมดจากแพ็คเกจอัพสตรีม

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

ข้อดีของการติดตั้งจากแหล่งที่มา:

  • คุณสามารถติดตั้งเวอร์ชันล่าสุดและสามารถอัปเดตอยู่เสมอไม่ว่าจะเป็นแพตช์รักษาความปลอดภัยหรือคุณสมบัติใหม่
  • ช่วยให้คุณตัดทอนคุณลักษณะต่าง ๆ ในขณะที่ติดตั้งเพื่อให้เหมาะกับความต้องการของคุณ
  • ในทำนองเดียวกันคุณสามารถเพิ่มคุณสมบัติบางอย่างซึ่งอาจไม่มีในไบนารี
  • ติดตั้งในสถานที่ที่คุณต้องการ
  • ในกรณีของซอฟต์แวร์บางตัวคุณอาจให้ข้อมูลเฉพาะฮาร์ดแวร์ของคุณเพื่อการติดตั้งที่เหมาะสม

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

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

และเหนือสิ่งอื่นใดเกี่ยวกับความปลอดภัยของซอฟต์แวร์ฉันอยากจะเน้นหน้าเฮฮานี้ที่ห้องแล็บที่จัดทำโดยโจในความคิดเห็นด้านล่าง


4
แหล่งที่มายังสามารถรวบรวมในวิธีที่ดีที่สุดสำหรับระบบของคุณ (ซึ่ง .. อาจไม่เป็นความคิดที่ดีเพราะสิ่งที่รวบรวมเป็น "เฉพาะ" กับระบบและอาจไม่ทำงานในการสำรองข้อมูล ... แต่คุณมี แหล่งที่มาคุณสามารถคอมไพล์ (ถ้าคุณมีเวลาสำหรับที่))
โอลิเวีย Dulac

ขึ้นอยู่กับว่าคุณมี "ระบบสำรองข้อมูล" หรือไม่ หากคุณเพิ่งทำวิจัยบางอย่างคุณมักจะไม่ทำ
h22

1
สำหรับ hyperparanoid ข้อดีอย่างหนึ่งของการติดตั้งจากซอร์สคือความปลอดภัยและความสามารถในการตรวจสอบโค้ดหากคุณสามารถและหรือต้องการ: เมื่อคุณติดตั้งจากซอร์สคุณรู้ว่าคุณมีไบนารี่จากซอร์สโค้ดนั้นและไม่ใช่ ไบนารีที่มีการแก้ไขที่ไม่รู้จัก (สมมติว่าคุณเชื่อถือแหล่งที่มาตั้งแต่แรก)
LawrenceC

6
@ultrasawblade - เห็นได้ชัดว่าคุณไม่หวาดระแวงมากพอ! <G> - ดูcm.bell-labs.com/who/ken/trust.htmlสำหรับเงินทั้งหมด
โจ

32

ไฟล์ต้นฉบับมีรหัสต้นฉบับตามที่นักพัฒนาเขียนขึ้นในภาษาใดก็ตามที่พวกเขาเลือก (C, C ++, Python และอื่น ๆ ) และเป็นรหัสทั่วไป มันไม่ได้เฉพาะเจาะจงสำหรับ distro ใด ๆ และในหลายกรณีกับระบบปฏิบัติการใด ๆ

แพคเกจ (RPM หรือ DEB เป็นต้น) เป็นไบนารีที่ปฏิบัติการ (หรือสคริปต์ตีความ ฯลฯ ) เตรียมไว้ล่วงหน้าสำหรับ distro เฉพาะของคุณ งานของการเตรียมแหล่งที่มาสำหรับการรวบรวม (เพิ่มแพทช์ที่จำเป็นอื่น ๆ ) รวบรวมจริงการสร้างไฟล์กำหนด distro เฉพาะการสร้างก่อนและหลังการติดตั้งสคริปต์สคริปต์ ฯลฯ ทั้งหมดทำเพื่อคุณโดยผู้ดูแลแพคเกจ

กล่าวอีกนัยหนึ่งว่างานลาทั้งหมดนั้นทำเพื่อคุณในแพคเกจในขณะที่คุณจะต้องทำเองถ้าคุณเลือกที่จะติดตั้งจากแหล่งที่มา

มันง่ายกว่าที่จะใช้แพ็คเกจในเกือบทุกกรณีเช่น:

  • ติดตั้งง่ายกว่ามาก
  • พวกเขาถูกออกแบบมาโดยเฉพาะเพื่อทำงานกับ distro ของคุณ
  • บางครั้งพวกเขาจะแก้ไขโดยผู้ดูแลแพคเกจเพื่อแก้ไขข้อผิดพลาดเฉพาะ distro
  • ผู้จัดการแพ็คเกจจะถอนการติดตั้ง
  • ผู้จัดการแพคเกจจะจัดการการอ้างอิงทั้งหมดสำหรับคุณ
  • ผู้จัดการแพคเกจจะดูแลการปรับปรุง
  • คุณไม่จำเป็นต้องติดตั้งเครื่องมือสำหรับนักพัฒนาในระบบของคุณ (คอมไพเลอร์ทำ ฯลฯ )

อย่างไรก็ตามบางครั้งรุ่นที่บรรจุเป็นรุ่นเก่าหรือแย่กว่านั้นคือไม่มีรุ่นที่บรรจุอยู่ ในกรณีนี้ตัวเลือกเดียวของคุณคือรวบรวมตัวเอง หากคุณคุณต้องพิจารณาสิ่งต่อไปนี้:

  • คุณจะต้องติดตั้งเครื่องมือสำหรับนักพัฒนาทั้งหมดในระบบของคุณ
  • คุณจะต้องรับผิดชอบในการตรวจสอบการอัปเดตและการคอมไพล์ใหม่
  • คุณจะต้องตรวจสอบให้แน่ใจว่ามีการติดตั้งการพึ่งพาทั้งหมดรวมถึงdevแพ็คเกจ - อาจมีหลายอย่าง
  • คุณอาจต้องแก้ปัญหาหากไม่สามารถทำงานได้ตามที่คาดไว้ใน distro ของคุณ

หากคุณยินดีที่จะใช้ความพยายามพิเศษการรวบรวมจากแหล่งที่มาอาจทำให้คุณได้รับประโยชน์จาก:

  • เข้าถึงเวอร์ชันล่าสุดที่มีอยู่
  • ตัวเลือกในการปรับกระบวนการรวบรวมให้เหมาะสมเพื่อประสิทธิภาพ / เสถียรภาพ
  • เพลิดเพลิน!

โปรดทราบว่าแม้ว่าแพกเกจที่สร้างไว้ล่วงหน้าของ distros บางตัวจะมีไบนารีที่สามารถใช้งานได้ซึ่งพร้อมที่จะติดตั้งและรัน (ตัวอย่าง RPM และ DEB) distros อื่น ๆ จะจัดเตรียมแพ็กเกจที่ทำให้กระบวนการรวบรวมเป็นอัตโนมัติ

Gentoo's ebuildsเป็นตัวอย่างของสิ่งนี้แพคเกจนั้นเป็นคำแนะนำโดยทั่วไปสำหรับผู้จัดการแพ็คเกจที่อธิบายวิธีรวบรวมและติดตั้งไฟล์ปฏิบัติการ สิ่งนี้มีข้อดีหลายอย่างของผู้จัดการแพ็คเกจแบบดั้งเดิม (การอัปเดตอัตโนมัติการถอนการติดตั้ง ฯลฯ ) ในขณะที่ยังให้ผู้ใช้สามารถปรับกระบวนการรวบรวมให้เหมาะสมกับรสนิยมของเขา / เธอ

Arch Linux มีระบบบรรจุภัณฑ์ที่แพ็คเกจหลักเป็นไบนารีในขณะที่แพคเกจพิเศษจำนวนมากจะถูกรวบรวมในระบบโดยใช้PKGBUILDไฟล์


19

นอกเหนือจากคำตอบอื่น ๆ ฉันต้องการเพิ่มบางสิ่ง:

หากคุณตัดสินใจที่จะรวบรวมโปรแกรมด้วยตัวเองคุณต้องคิดว่าการรวบรวมไม่ใช่สิ่งที่คุณทำเพียงครั้งเดียว คุณอาจจะต้องสมัครสมาชิกรายการจดหมายข่าวการพัฒนาของแอปพลิเคชันที่คุณตัดสินใจรวบรวมและอัพเดทอยู่เสมอด้วยเวอร์ชันใหม่และโดยเฉพาะอย่างยิ่งการอัปเดตความปลอดภัย

ทุกครั้งที่มีการอัปเดตแอปพลิเคชันคุณจะต้องคอมไพล์เวอร์ชันใหม่ดังนั้นโปรดจำไว้ว่าคุณจะต้องสละเวลาของคุณทุกสัปดาห์

หากคุณไม่สามารถจ่ายได้จะเป็นการดีกว่าถ้าให้ผู้ดูแลแพคเกจทำงานให้คุณ


6

การสร้างจากแหล่งที่มาอนุญาตให้ระบุสถาปัตยกรรมของเครื่องของคุณ ซีพียูใหม่มีคำแนะนำเพิ่มเติมที่คอมไพเลอร์ไม่เข้าใจบีบประสิทธิภาพออกมาเล็กน้อย แพ็คเกจที่สร้างล่วงหน้ามักจะนับรวม CPU ที่ล้าสมัยที่สุดที่ยังใช้งานอยู่

สิ่งนี้ส่วนใหญ่มีความสำคัญสำหรับแอปพลิเคชั่นที่สำคัญของโครงการที่ใช้ CPU อย่างหนักเช่นเครื่องมือของไปป์ไลน์ทางชีวสารสนเทศเช่นหรือเครื่องมือสร้างแบบจำลองธรณีฟิสิกส์ ซอฟต์แวร์ดังกล่าวทำงานในสภาพแวดล้อมที่มีการควบคุมอย่างดีไม่ได้มีการควบคุมการเข้าถึงด้วยตนเองดังนั้นจึงไม่ค่อยมีข้อบกพร่องด้านความปลอดภัยอย่างเร่งด่วนที่จะต้องทำการแก้ไขในวันหรือเวลา แทบไม่เคยต้องการที่จะทำงานบนเครื่องอื่นที่มีสถาปัตยกรรมที่ไม่รู้จักในตอนแรก

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

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


ในกรณีที่ tweaks ดังกล่าวเพื่อใช้ประโยชน์จาก CPU ของคุณอย่างเต็มที่จะสร้างความแตกต่าง (มีความเกี่ยวข้องเฉพาะในรหัสพิเศษบางอย่างเท่านั้นการพูดคือ 95% ของเวลาใช้กับรหัส 5% ดังนั้นการเพิ่มประสิทธิภาพ 95% อื่น ๆ ทำให้ไม่มีความแตกต่างที่เห็นได้ชัดและโปรแกรมส่วนใหญ่ในปัจจุบันคือ 99% ของเวลาที่รอให้ผู้ใช้ตัดสินใจได้) โปรแกรมเสนอรหัสที่แตกต่างกันเพื่อเปิดขึ้นอยู่กับ CPU เมื่อเริ่มต้น
vonbrand

0

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


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