การสร้างไบนารีแบบคงที่


14

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

เครื่องมือเดียวที่เชื่อถือได้ที่ฉันพบErmineLightมาจาก ที่นี่แต่อันนี้คือเครื่องมือแบ่งปัน

มีซอฟต์แวร์โอเพนซอร์ซรุ่นเดียวกันหรือไม่

EDIT fdisk เป็นเพียงตัวอย่าง ฉันใช้เวลาส่วนใหญ่กับ LFS ดังนั้นถ้าฉันต้องใช้ยูทิลิตี้ใด ๆ ฉันต้องทำตามขั้นตอนดังนี้

  1. ดาวน์โหลดแหล่งที่มา
  2. กำหนดค่า
  3. แต่งหน้า
  4. ทำการทดสอบ
  5. ทำการติดตั้ง

ดังนั้นเพื่อประหยัดเวลาฉันกำลังมองหาวิธีแก้ปัญหาที่ฉันจะสร้างไบนารีแบบคงที่จาก debian หรือจาก fedora หรือจาก distrbution อื่น ๆ ลองบน LFS และถ้ามันทำงานได้ดีหรือตามความต้องการของฉันฉันจะ ไปกับซอร์สโค้ดสำหรับการรวบรวม


1
เป็นเป้าหมายเพียงแค่ความสะดวกในการถ่ายโอน (เช่นวางไว้ใน usb ดำเนินการได้ทุกที่ด้วยตัวประมวลผลที่โค้ง)?
Mike Pennington

คำตอบ:


15

หาก fdisk เป็นเพียงตัวอย่างและเป้าหมายของคุณเป็นจริงที่จะทำให้ executables คงที่จาก executables แบบไดนามิกลองElf statifier มีแม้กระทั่งการเปรียบเทียบกับแมวน้ำ (โดยผู้ขายแมวน้ำเพื่อข้อแม้ (ไม่ใช่) emptor) สังเกตได้ว่า

  • หากคุณมีไฟล์เรียกทำงานหลายไฟล์ขนาดรวมของไฟล์เหล่านั้นน่าจะมากกว่าขนาดที่รวมกันของไฟล์ประมวลผลที่ลิงก์แบบไดนามิกรวมกับไลบรารีแบบไดนามิกที่จำเป็น
  • มีคุณสมบัติของ GNU libc ที่อาจไม่ทำงานในไฟล์ที่เชื่อมโยงแบบสแตติกเช่นNSS (ฐานข้อมูลชื่อผู้ใช้ชื่อโฮสต์ ฯลฯ ) และคุณสมบัติที่เกี่ยวข้องกับโลแคล

หากเป้าหมายของคุณคือมีชุดเครื่องมือระบบขนาดเล็กแบบพกพาคุณกำลังมองหาBusyBoxชุดเครื่องมือหลักสำหรับระบบฝังตัว (รวมถึงfdisk) นอกจากนี้คุณยังอาจจะสนใจในห้องสมุดขนาดเล็กกว่ามาตรฐาน Glibc เช่นdietlibcหรือμClibc


1
ฉันลองใช้ตัวระบุเอลฟ์ แต่ฉันประหลาดใจ มันไม่ได้ผล. มันแยกกัน ฉันลองมาหลายครั้งด้วยการกระจายที่มีสาธารณูปโภคมากมาย
SHW

1
อาจเป็น segfaults สำหรับการสุ่มที่อยู่: มีการอธิบายไว้ที่นี่: linux-magazine.com/Issues/2009/105/Ermine-vs.-Statifier
Rmano

0

... นี่มันช่างเป็นความคิดที่แย่มาก แต่มันเป็นไปได้

ในฐานะที่เป็น fdisk เป็นโอเพนซอร์สเพียงแค่คว้าแหล่งที่มาและดูที่ Makefile คุณควรหาตัวเลือกที่จะผ่าน "- คงที่" เพื่อ gcc ที่รวบรวม

ฉันไม่ใช่กูรู C / C ++ แต่เท่าที่ฉันรู้การสร้างไบนารีที่เชื่อมโยงแบบคงที่จากไบนารีที่เชื่อมโยงแบบไดนามิกที่มีอยู่เป็นไปไม่ได้

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

มันสมเหตุสมผลกว่าสำหรับฉันเพราะคุณอาจต้องการปรับเปลี่ยนดิสก์ที่ใช้การติดตั้ง Linux / UNIX ของคุณ


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

@TechZilla: สร้างไบนารีคงเป็นไปได้ก็ไม่ต่อ tiktak สร้างหนึ่งจากไบนารีเชื่อมโยงแบบไดนามิกที่ยังหลงเหลืออยู่ อย่างไรก็ตามดูคำตอบที่ยอมรับสำหรับความสามารถที่เป็นไปได้ที่จะทำหลัง [หมายเหตุ: ความคิดเห็นมีไว้สำหรับผู้อ่านในอนาคตมากกว่าที่จะวิพากษ์วิจารณ์สิ่งที่เกิดขึ้นที่นี่]
lindes

-3

คุณสามารถใช้ELFex Linkerซึ่งเป็นโปรแกรมที่ยอดเยี่ยมมากที่ฉันเพิ่งค้นพบ gui ของมันและสามารถสร้าง executables แบบสแตติกได้จาก dynamic executable


ลิงก์ไม่ทำงาน
Jakuje

ลิงก์ใช้งานได้สำหรับฉันและดูเหมือนจะตอบคำถามโดยตรง ฉันขอแนะนำว่าไม่ใช่จดหมายขยะ
roaima

ลิงค์ใช้งานได้สำหรับฉัน หน้ามีจำนวนข้อผิดพลาด typos / ไวยากรณ์ / บรรณาธิการที่คุณอาจคาดหวังจากการทำงานของโปรแกรมเมอร์มืออาชีพ - มากกว่าที่คุณคาดหวังจากเว็บไซต์มืออาชีพน้อยกว่าที่คุณคาดหวังจากอีเมลฟิชชิ่ง เกี่ยวกับเช่นเดียวกับการโพสต์ดังกล่าวมาคิด ดูเหมือนว่าน่าสงสัยว่าผู้ใช้รายใหม่นี้จะเข้าร่วม Stack Exchange ทันเวลาเพื่อโพสต์ลิงก์ไปยังสิ่งที่ดูเหมือนจะเป็นเว็บไซต์ใหม่
G-Man กล่าวว่า 'Reinstate Monica'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.