ฉันสงสัยว่า: เมื่อติดตั้งบางอย่างมีวิธีที่ง่ายในการคลิกสองครั้งที่ไฟล์ปฏิบัติการติดตั้งและในทางกลับกันก็มีวิธีสร้างไฟล์จากแหล่งที่มา
อันหลังการดาวน์โหลดบันเดิลซอร์สนั้นยุ่งยากมาก
แต่อะไรคือความแตกต่างพื้นฐานระหว่างสองวิธีนี้?
ฉันสงสัยว่า: เมื่อติดตั้งบางอย่างมีวิธีที่ง่ายในการคลิกสองครั้งที่ไฟล์ปฏิบัติการติดตั้งและในทางกลับกันก็มีวิธีสร้างไฟล์จากแหล่งที่มา
อันหลังการดาวน์โหลดบันเดิลซอร์สนั้นยุ่งยากมาก
แต่อะไรคือความแตกต่างพื้นฐานระหว่างสองวิธีนี้?
คำตอบ:
ซอฟแวร์ทั้งหมดอยู่ในโปรแกรมซึ่งจะเรียกว่าแพคเกจที่มา ดังนั้นซอร์สแพ็กเกจทั้งหมดต้องถูกสร้างขึ้นก่อนเพื่อให้รันบนระบบของคุณ
แพคเกจไบนารีเป็นหนึ่งที่มีอยู่แล้วสร้างจากแหล่งที่มาจากคนที่มีคุณสมบัติทั่วไปและพารามิเตอร์ที่ระบุไว้ในซอฟแวร์เพื่อให้เป็นจำนวนมากของผู้ใช้สามารถติดตั้งและใช้งานได้
แพคเกจไบนารีติดตั้งง่าย
แต่อาจไม่มีตัวเลือกทั้งหมดจากแพ็คเกจอัพสตรีม
ดังนั้นสำหรับการติดตั้งจากซอร์สคุณต้องสร้างซอร์สโค้ดเอง นั่นหมายความว่าคุณต้องดูแลการพึ่งพาตัวเอง นอกจากนี้คุณต้องระวังคุณสมบัติทั้งหมดของแพ็คเกจเพื่อให้สามารถสร้างได้ตามต้องการ
ข้อดีของการติดตั้งจากแหล่งที่มา:
ในระยะสั้นการติดตั้งจากแหล่งที่มาให้ตัวเลือกการปรับแต่งอย่างมากในขณะเดียวกันก็ต้องใช้ความพยายามอย่างมากในขณะที่การติดตั้งจากไบนารีนั้นง่ายกว่า แต่คุณอาจไม่สามารถปรับแต่งได้ตามที่คุณต้องการ
อัปเดต : การเพิ่มอาร์กิวเมนต์ที่เกี่ยวข้องกับความปลอดภัยในความคิดเห็นด้านล่าง ใช่มันเป็นความจริงที่ว่าขณะติดตั้งจากไบนารี่คุณไม่มีความสมบูรณ์ของซอร์สโค้ด แต่มันก็ขึ้นอยู่กับว่าคุณได้ไบนารี่มาจากไหน มีจำนวนมากจากแหล่งที่เชื่อถือได้ที่คุณสามารถรับไบนารีของโครงการใหม่ ๆ ที่มีในเชิงลบเพียงอย่างเดียวคือเวลา อาจใช้เวลาสักครู่ก่อนที่ไบนารีของการอัปเดตหรือแม้แต่โครงการใหม่จะปรากฏในที่เก็บข้อมูลที่เชื่อถือได้ของเรา
และเหนือสิ่งอื่นใดเกี่ยวกับความปลอดภัยของซอฟต์แวร์ฉันอยากจะเน้นหน้าเฮฮานี้ที่ห้องแล็บที่จัดทำโดยโจในความคิดเห็นด้านล่าง
ไฟล์ต้นฉบับมีรหัสต้นฉบับตามที่นักพัฒนาเขียนขึ้นในภาษาใดก็ตามที่พวกเขาเลือก (C, C ++, Python และอื่น ๆ ) และเป็นรหัสทั่วไป มันไม่ได้เฉพาะเจาะจงสำหรับ distro ใด ๆ และในหลายกรณีกับระบบปฏิบัติการใด ๆ
แพคเกจ (RPM หรือ DEB เป็นต้น) เป็นไบนารีที่ปฏิบัติการ (หรือสคริปต์ตีความ ฯลฯ ) เตรียมไว้ล่วงหน้าสำหรับ distro เฉพาะของคุณ งานของการเตรียมแหล่งที่มาสำหรับการรวบรวม (เพิ่มแพทช์ที่จำเป็นอื่น ๆ ) รวบรวมจริงการสร้างไฟล์กำหนด distro เฉพาะการสร้างก่อนและหลังการติดตั้งสคริปต์สคริปต์ ฯลฯ ทั้งหมดทำเพื่อคุณโดยผู้ดูแลแพคเกจ
กล่าวอีกนัยหนึ่งว่างานลาทั้งหมดนั้นทำเพื่อคุณในแพคเกจในขณะที่คุณจะต้องทำเองถ้าคุณเลือกที่จะติดตั้งจากแหล่งที่มา
มันง่ายกว่าที่จะใช้แพ็คเกจในเกือบทุกกรณีเช่น:
อย่างไรก็ตามบางครั้งรุ่นที่บรรจุเป็นรุ่นเก่าหรือแย่กว่านั้นคือไม่มีรุ่นที่บรรจุอยู่ ในกรณีนี้ตัวเลือกเดียวของคุณคือรวบรวมตัวเอง หากคุณคุณต้องพิจารณาสิ่งต่อไปนี้:
dev
แพ็คเกจ - อาจมีหลายอย่างหากคุณยินดีที่จะใช้ความพยายามพิเศษการรวบรวมจากแหล่งที่มาอาจทำให้คุณได้รับประโยชน์จาก:
โปรดทราบว่าแม้ว่าแพกเกจที่สร้างไว้ล่วงหน้าของ distros บางตัวจะมีไบนารีที่สามารถใช้งานได้ซึ่งพร้อมที่จะติดตั้งและรัน (ตัวอย่าง RPM และ DEB) distros อื่น ๆ จะจัดเตรียมแพ็กเกจที่ทำให้กระบวนการรวบรวมเป็นอัตโนมัติ
Gentoo's ebuilds
เป็นตัวอย่างของสิ่งนี้แพคเกจนั้นเป็นคำแนะนำโดยทั่วไปสำหรับผู้จัดการแพ็คเกจที่อธิบายวิธีรวบรวมและติดตั้งไฟล์ปฏิบัติการ สิ่งนี้มีข้อดีหลายอย่างของผู้จัดการแพ็คเกจแบบดั้งเดิม (การอัปเดตอัตโนมัติการถอนการติดตั้ง ฯลฯ ) ในขณะที่ยังให้ผู้ใช้สามารถปรับกระบวนการรวบรวมให้เหมาะสมกับรสนิยมของเขา / เธอ
Arch Linux มีระบบบรรจุภัณฑ์ที่แพ็คเกจหลักเป็นไบนารีในขณะที่แพคเกจพิเศษจำนวนมากจะถูกรวบรวมในระบบโดยใช้PKGBUILD
ไฟล์
นอกเหนือจากคำตอบอื่น ๆ ฉันต้องการเพิ่มบางสิ่ง:
หากคุณตัดสินใจที่จะรวบรวมโปรแกรมด้วยตัวเองคุณต้องคิดว่าการรวบรวมไม่ใช่สิ่งที่คุณทำเพียงครั้งเดียว คุณอาจจะต้องสมัครสมาชิกรายการจดหมายข่าวการพัฒนาของแอปพลิเคชันที่คุณตัดสินใจรวบรวมและอัพเดทอยู่เสมอด้วยเวอร์ชันใหม่และโดยเฉพาะอย่างยิ่งการอัปเดตความปลอดภัย
ทุกครั้งที่มีการอัปเดตแอปพลิเคชันคุณจะต้องคอมไพล์เวอร์ชันใหม่ดังนั้นโปรดจำไว้ว่าคุณจะต้องสละเวลาของคุณทุกสัปดาห์
หากคุณไม่สามารถจ่ายได้จะเป็นการดีกว่าถ้าให้ผู้ดูแลแพคเกจทำงานให้คุณ
การสร้างจากแหล่งที่มาอนุญาตให้ระบุสถาปัตยกรรมของเครื่องของคุณ ซีพียูใหม่มีคำแนะนำเพิ่มเติมที่คอมไพเลอร์ไม่เข้าใจบีบประสิทธิภาพออกมาเล็กน้อย แพ็คเกจที่สร้างล่วงหน้ามักจะนับรวม CPU ที่ล้าสมัยที่สุดที่ยังใช้งานอยู่
สิ่งนี้ส่วนใหญ่มีความสำคัญสำหรับแอปพลิเคชั่นที่สำคัญของโครงการที่ใช้ CPU อย่างหนักเช่นเครื่องมือของไปป์ไลน์ทางชีวสารสนเทศเช่นหรือเครื่องมือสร้างแบบจำลองธรณีฟิสิกส์ ซอฟต์แวร์ดังกล่าวทำงานในสภาพแวดล้อมที่มีการควบคุมอย่างดีไม่ได้มีการควบคุมการเข้าถึงด้วยตนเองดังนั้นจึงไม่ค่อยมีข้อบกพร่องด้านความปลอดภัยอย่างเร่งด่วนที่จะต้องทำการแก้ไขในวันหรือเวลา แทบไม่เคยต้องการที่จะทำงานบนเครื่องอื่นที่มีสถาปัตยกรรมที่ไม่รู้จักในตอนแรก
ใช่ฉันรู้แล้วคอมพิวเตอร์เร็วมากและความพยายามหรือการกระทำใด ๆ ที่คุณทำมีราคาแพงมาก แต่ในวันที่สามของการนั่งรอโปรแกรมของคุณให้เสร็จสมบูรณ์ (นี่คือสถานการณ์ที่ฉันกำลังพูดถึง) ความจริงเช่นนี้ เริ่มมองหาที่น่าสงสัย
แตกต่างกันแอปพลิเคชันเช่นเบราว์เซอร์และสิ่งที่คล้ายคลึงควรใช้งานได้ดีกว่าจากที่เก็บข้อมูลผู้ดูแล (และไม่ได้มาจากแพ็คเกจที่สร้างไว้ล่วงหน้าที่ดาวน์โหลดมา) เนื่องจากเป็นสิ่งสำคัญมาก
วิธีหนึ่งที่จะได้รับสิ่งที่ดีที่สุดทั้งสองโลก (ซอฟต์แวร์ที่ทันสมัยติดตั้ง / ถอนการติดตั้งง่ายรวมการปรับแต่งและการกระจายส่วนใหญ่สามารถปรับให้เหมาะสมกับความต้องการของท้องถิ่น) ในขณะที่ต้นทุน (ต้องติดตามตัวเองอยู่เสมอ และแพทช์ในนาทีสุดท้ายติดตามการพัฒนาคุณเป็นของคุณเองในส่วนที่เกี่ยวกับการแก้ไขข้อบกพร่องและความเข้ากันไม่ได้ระหว่างเวอร์ชัน) ไม่สามารถบรรเทาได้ (มาก) คือการสร้างแพ็คเกจของคุณเองโดยเริ่มจากแพ็คเกจต้นทางจากการกระจายของคุณ ใช่มันทำงานได้มากกว่าแค่การสร้างและติดตั้ง