มีวิธีง่าย ๆ สำหรับการติดตั้งไบนารีสร้าง glibc หรือไม่?


13

ครั้งแล้วครั้งเล่าฉันเห็นคำถามเช่นนี้

และนี่คือประเภทของโซลูชั่นที่เรามักจะผลักดัน:

นี่เป็นสิ่งที่ดีที่สุดที่เราสามารถทำได้หรือไม่? ไม่มีการสร้างไบนารีของ GLIBC ที่เราสามารถคลายซิปลงในไดเรกทอรีเช่น/opt/myglibcและตั้งค่า$LD_LIBRARY_PATHหรืออะไรก็ตามและเรียกใช้แอปพลิเคชันที่เราต้องการโดยไม่มีปัญหาหรือไม่

แอปพลิเคชันเช่นรุ่นใหม่ของ Chrome (28+) ที่ดูเหมือนจะต้องใช้ GLIBC 2.14 หรือไม่

หมายเหตุ:กระทู้นี้มีชื่อว่า: Google Chrome 29 เปิดตัว - ติดตั้งบน RHEL / CentOS 6 และ Fedora 19/15บน tecmint.com คือสิ่งที่ทำให้ฉันคิดถึงเรื่องนี้ในท้ายที่สุด

อ้างอิง

คำตอบ:


1

ถ้ามันเป็นห้องสมุดอื่น ๆ แต่ glibc ... ฉันคิดว่าคงไม่มีวิธีที่รวดเร็วเพราะ glibc นั้นเป็นสถานที่ที่สิ่งต่าง ๆ นั้น "รหัสยาก" เหมาะกับ glibc กับรุ่นเคอร์เนลของคุณและรถตักดินที่เป็นตัวอย่างที่ไม่จริงสิ่งที่ถูกต้อง (TM) LD_LIBRARY_PATHด้วย

บางทีวิธีที่ถูกต้องคือ:

LD_LIBRARY_PATH="/opt/myglibc/;..." /opt/myglibc/ld-linux.so.2 the_program`

ไม่แน่ใจว่าใช้งานได้หรือไม่

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

เว็บไซต์เพิ่งให้หัวข้อที่เกี่ยวข้องอื่น ๆ นี้แก่ฉัน:

ที่นั่นคำตอบที่ยอมรับนั้นมีลิงค์ไปยังโปรแกรมที่เรียกว่าrtldiซึ่งดูเหมือนว่าจะแก้ปัญหา glibc มันมาจากปี 2004 ดังนั้นมันจึงอาจไม่ได้ผลจาก linker อีกต่อไป แต่อาจคุ้มค่าที่จะดู แหล่งที่มาของมันคือ GPLv2

Jehova, Jehova

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

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

จำนวนของ "แอปพลิเคชันทันที" ค่อนข้างเล็กแน่นอนต่อผู้ใช้และค่อนข้างเมื่อเทียบกับสิ่งที่ "พื้นฐาน" ระบบปฏิบัติการและ DEs วางไข่วันนี้ หากแอปพลิเคชันทันทีเช่น Chrome, Firefox ถูกรวบรวมแบบสแตติกความต้องการหน่วยความจำเพิ่มเติมสำหรับระบบเฉลี่ยจะอยู่ที่ 100MB เพียงไม่กี่ ข้อโต้แย้งที่ไม่ได้ดำเนินการมากเกินไปในระบบ GB จำนวนมากในปัจจุบันดังนั้นการเชื่อมโยงเชิงสถิติสำหรับแอปพลิเคชันทันทีอาจเป็นตัวเลือก

นอกจากนี้ยังมีแนวคิดของพื้นที่สว็อปและ SSD ที่อนุญาตให้สลับสว็อป / ออกอย่างรวดเร็วแบบ Rediculously ซึ่งช่วยจัดการความต้องการหน่วยความจำที่เพิ่มขึ้น

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


2
"เรากำลังพูดถึงประมาณ 100MB ที่นี่"เอ่อไม่ แม้ว่าส่วนใหญ่ของห้องสมุดเองอาจไม่มาก (แต่อาจเป็นลำดับความสำคัญหรือสองมากกว่า 100 MB - ลองdu -h /lib) โปรดทราบว่าหากมีการรวบรวมในแบบคงที่จำนวน RAM จะต้องสำหรับแต่ละ และทุกแอปพลิเคชันที่คอมไพล์ด้วย ดังนั้นถ้าเช่น คุณมีสองแอพโดยใช้ไลบราไลบรารีเดียวกันตอนนี้คุณต้องมีหน่วยความจำมากเป็นสองเท่า สามแอพ มากเป็นสามเท่า ไม่พูดถึงมันส่วนใหญ่จะลบล้างประโยชน์ของแคช ...
Goldilocks

2
... เนื่องจากแน่นอนคุณไม่สามารถแคช glibc ได้ - คุณต้องทำสำเนาแคชของทุกแอปพลิเคชันที่ทำงาน (== ไร้สาระ) ในระยะสั้นระบบปฏิบัติการที่ทันสมัยจะธรรมดาและเรียบง่ายเป็นไปไม่ได้โดยสิ้นเชิงกับฮาร์ดแวร์ที่ทันสมัยถ้ามันไม่ได้สำหรับเทคนิคที่ทันสมัยเช่นวัตถุที่ใช้ร่วมกัน คุณไม่ต้องการหน่วยความจำเพิ่มอีกนิด - คุณต้องการหน่วยความจำมากถึง 10 หรือ 100 เท่า
goldilocks

Debian ของฉันมี 235MB ใน/libซึ่ง 202MB เป็นโมดูลเคอร์เนล ใช่/usr/libคือ 4GB แต่นั่นไม่สามารถสรุปได้ว่าโปรแกรมแต่ละโปรแกรมต้องใช้จำนวนเท่าใด แคชของโปรเซสเซอร์มีเพียงไม่กี่ MB ด้วยการใช้หน่วยความจำของบางสิ่งเช่นเว็บเบราว์เซอร์เมื่อเร็ว ๆ นี้ผลกระทบของไบนารีที่เชื่อมโยงแบบคงที่ในการแคชก็ไม่ได้ใหญ่และลดลงตามจำนวนที่ใช้งานโปรแกรมพร้อมกัน ด้วยเหตุผลของแคชที่ค่อนข้างเล็ก การประมาณการของฉันดูเหมือนแม่นยำกว่าของคุณ เอ่อใช่
Bananguin

ไม่ต้องพูดถึงปัญหาใหญ่อื่น ๆ ที่มีการเชื่อมโยงแบบคงที่ - การปรับปรุงเป็น PITA หากมีปัญหาด้านความปลอดภัยใน glibc ไม่ใช่เรื่องใหญ่: อัพเกรด glibc ให้รีสตาร์ทโปรแกรมของคุณ OTOH โปรแกรมของคุณถูกเชื่อมโยงแบบคงที่คุณจะต้องดาวน์โหลดเวอร์ชันใหม่ของทุกโปรแกรม และ distro ของคุณจะต้องคอมไพล์ใหม่ (หรืออย่างน้อยก็ลิงค์ใหม่ถ้าพวกเขาเก็บไฟล์. o ทั้งหมดไม่น่าจะเป็นเพราะขนาดใหญ่) distro ทั้งหมด
Derobert

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