คำถามติดแท็ก patchelf

1
การใช้ libc สำรองกับ ld-linux.so hacks; วิธีทำความสะอาด?
ฉันมีระบบดั้งเดิมที่มี glibc ที่เก่ามากซึ่งเราไม่สามารถอัพเกรดได้โดยไม่ต้องมีการทดสอบ / ตรวจสอบความถูกต้อง ฉันจำเป็นต้องเรียกใช้โปรแกรมใหม่ (เช่น Java 1.7) บนระบบนั้นหลายครั้งแล้ว ฉันเลือกโซลูชัน chroot ที่ฉันจัดเก็บ libs ที่จำเป็นทั้งหมดและเรียกใช้บริการใน chroot แม้ว่า chroot จะมีข้อ จำกัด มากและฉันอยากจะลองแก้ปัญหาด้วย LD_LIBRARY_PATH น่าเสียดายที่ฉันได้รับข้อผิดพลาดlibc.so.6: cannot handle TLS dataเมื่อฉันลองทำ ปรากฎว่าฉันต้องการ/lib/ld-linux.so.2จาก chroot เช่นกัน งานนี้: LD_LIBRARY_PATH=/home/chroot/lib /home/chroot/lib/ld-linux.so.2 /home/chroot/bin/program อย่างไรก็ตามjavaเกียดเคล็ดลับของฉันโดยการตรวจสอบ/proc/self/cmdlineเพื่อกำหนดที่จะโหลดห้องสมุดจากซึ่งล้มเหลวหากไบนารีไม่ได้ชื่อว่า 'bin / java' นอกจากนี้ java เรียกใช้ตัวเองในระหว่างการเริ่มต้นปัญหาที่ซับซ้อนมากขึ้น ในความพยายามครั้งสุดท้ายที่จะทำให้งานนี้ฉันเปิดไบนารี Java ด้วยโปรแกรมแก้ไขฐานสิบหกและแทนที่สตริง/lib/ld-linux.so.2ด้วย/home/chroot/ld.so(และทำให้ symlink เป็นld-linux.so.2) และทำงานได้! แต่ฉันคิดว่าทุกคนจะเห็นด้วยว่ามันเป็นกระบองขนาดใหญ่ที่จะเขียนเส้นทางของไบนารีใหม่ทุกตัวไปยังเส้นทางที่แน่นอนของระบบซ้อน ไม่มีใครรู้วิธีที่สะอาดกว่าการใช้เส้นทางไลบรารีที่กำหนดเองรวมถึง ld-linux.so …

2
ไม่สามารถดำเนินการไบนารีใน NixOS - ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
ฉันพยายามติดตั้ง oracle jre ปัจจุบันบน VM ที่ใช้ NixOS ต่อไปนี้เกิดขึ้น: [michas@cc:~]$ tar xvzf jre-7u40-linux-x64.tar.gz |grep bin/java jre1.7.0_40/bin/javaws jre1.7.0_40/bin/java_vm jre1.7.0_40/bin/java [michas@cc:~]$ ls -l ./jre1.7.0_40/bin/java -rwxr-xr-x 1 michas nogroup 7750 Aug 27 09:17 ./jre1.7.0_40/bin/java [michas@cc:~]$ ./jre1.7.0_40/bin/java bash: ./jre1.7.0_40/bin/java: No such file or directory WTF? ไฟล์ที่ระบุชื่อนั้นชัดเจน เกิดอะไรขึ้น? พยายามวิเคราะห์เพิ่มเติม: [michas@cc:~]$ strace ./jre1.7.0_40/bin/java execve("./jre1.7.0_40/bin/java", ["./jre1.7.0_40/bin/java"], [/* 53 …

2
กำลังเรียกใช้ไฟล์ไบนารี: ไม่พบไฟล์
ฉันรู้ว่ามีคำถามที่คล้ายกัน แต่ฉันไม่พบวิธีแก้ปัญหาหรือกรณีนี้ ไบนารีถูกสร้างบน Arch Linux โดยใช้ GCC 4.7 แพคเกจทำงานได้ดีในระบบการสร้าง คำสั่งด้านล่างนี้ถูกดำเนินการเมื่อ: Linux vbox-ubuntu 3.2.0-29-generic # 46-Ubuntu SMP ศุกร์ 27 ก.ค. 17:03:23 UTC 2012 x86_64 x86_64 x86_64 GNU / Linux แฟ้มในคำถามตั้งอยู่ที่นี่ มันเป็น Linux-64-bit to Windows 64-bit cross-compiler ไม่ทำการดึงข้อมูลเพื่อ~/ให้มี~/mingw64ไดเรกทอรีเดียวซึ่งมีทุกอย่างที่จำเป็น เมื่อฉันพยายามเรียกใช้~/mingw64/x86_64-w64-mingw32/bin/asสิ่งนี้คือสิ่งที่ฉันได้รับ: bash: /home/ruben/mingw64/x86_64-w64-mingw32/bin/as: No such file or directory วิ่งfile ~/mingw64/x86_64-w64-mingw32/bin/asให้ฉัน: /home/ruben/mingw64/x86_64-w64-mingw32/bin/as: ELF 64-bit LSB …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.