แพคเกจไบนารีคืออะไร? สร้างได้อย่างไร?


12

ฉันต้องการรับรายละเอียดเกี่ยวกับแพคเกจไบนารีและเรียกใช้บน linux ฉันใช้งานฐาน Debian (Ubuntu / Linux เหรียญกษาปณ์) Linux os

  1. วิธีการสร้างแพ็คเกจไบนารีจากแหล่งที่มา? และฉันสามารถดาวน์โหลดแพ็คเกจไบนารีโดยตรงสำหรับแอปพลิเคชัน (เช่น firefox ฯลฯ ) และเกม (เช่น boswars เป็นต้น) ได้หรือไม่
  2. ฉันเรียกใช้แพ็คเกจโดยตรงซึ่งอยู่ในรูปแบบ "xyz.linux.run" แพ็คเกจเหล่านี้คืออะไร พวกเขาเป็นอิสระจากการพึ่งพา? หรือมันเป็นแพคเกจไบนารีที่สร้างไว้ล่วงหน้า?
  3. วิธีการสร้างพวกเขาซึ่งสามารถทำงานบนระบบปฏิบัติการ linux โดย "xyz.linux.run" โดยตรงบน linux
  4. ความแตกต่างระหว่างแพคเกจไบนารีและแพคเกจ deb คืออะไร?

คุณพบวิธีสร้างแพ็คเกจไบนารีจากซอร์สหรือไม่!
Dr.jacky

คำตอบ:


17

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

แพ็คเกจไบนารีคืออะไร

แพ็คเกจไบนารีในบริบท linux เป็นแอปพลิเคชันแพคเกจที่มีไฟล์ปฏิบัติการ (สร้างไว้ล่วงหน้า) ซึ่งตรงข้ามกับซอร์สโค้ด

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

โดยปกติจะได้รับการดูแลจากคุณโดยระบบการจัดการบรรจุภัณฑ์ (เช่น apt / dpkg) ซึ่งดาวน์โหลดแพคเกจและ unpacks และติดตั้งไบนารีภายในสำหรับคุณ

ความแตกต่างระหว่างแพคเกจไบนารีและแพคเกจ deb คืออะไร?

ไม่มี - .debแพ็คเกจเป็นแพ็คเกจไบนารีแม้ว่าจะมี.debs ซึ่งมีซอร์สอยู่ แต่แพ็คเกจเหล่านี้มักจะ-srcต่อท้ายชื่อ

ฉันเรียกใช้แพ็คเกจโดยตรงซึ่งอยู่ในรูปแบบ "xyz.linux.run" แพ็คเกจเหล่านี้คืออะไร

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


คำตอบที่ดีเลิศ! ฉันควรแยกออกจากคำถามนี้: วิธีการสร้างปฏิบัติการที่สร้างไว้ล่วงหน้า (แพคเกจไบนารี) จากแหล่งที่มา?
Pandya

ใช่ว่าจะเป็นคำถามที่ดีทั้งหมดด้วยตัวเองหากยังไม่ได้รับคำตอบในบางรูปแบบแล้ว
goldilocks

6

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

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

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

    #include <stdio.h>

    int main( ) {
        printf("Hello World!");
    }

และพิมพ์gcc helloWorld.cและgccจะสร้างไบนารีนั้นและส่งออกโปรแกรมที่เขียนว่า "Hello World!" ไปที่คอนโซลเมื่อเรียกใช้

ตกลงดังนั้นตอนนี้คุณได้สร้างโปรแกรมแล้ว แต่มันจะไม่น่าแปลกใจไหมที่จะต้องพิมพ์ไฟล์ต้นฉบับทุกไฟล์ที่คุณต้องการรวบรวมทุกครั้งที่คุณต้องการคอมไพล์บางสิ่ง? นั่นคือสิ่งที่makefilesมีไว้เพื่อ หากคุณทำงานในโปรแกรมที่มีพวงของไฟล์ที่มาก็มักจะมาพร้อมกับ Makefile หรือบางไฟล์สร้างระบบอัตโนมัติอื่น ๆ ( ant, Cmakeหรือautoconfหรือบางอย่าง)

ในการสร้างโปรแกรมประเภทนี้เพียงแค่เรียกใช้make <build target>ภายในไดเรกทอรี makefile สำหรับโปรแกรม Hello World ของฉันอาจรวมถึงเป้าหมายที่เรียกว่าhelloworldคอมไพล์ helloWorld.c ฉันจะเรียกใช้โดยmake helloworldและมันจะออกไบนารี

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

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