タグ付けされた質問 「patchelf」

1
ld-linux.soハックで代替libcを使用します。クリーナーメソッド?
私は非常に古いglibcを備えたレガシーシステムを持っています。これは、膨大なテスト/検証作業を行わなければアップグレードできません。 そのシステム上で新しいプログラム(Java 1.7など)を数回実行する必要がありました。私は、必要なすべてのライブラリをパッケージ化し、chrootでサービスを実行するchrootソリューションを選択しました。 ただし、chrootは非常に制限されているため、LD_LIBRARY_PATHの問題を解決したいと考えています。残念なことに、私はそれlibc.so.6: cannot handle TLS dataを試みるときにエラーを受け取ります。 /lib/ld-linux.so.2chrootからも必要であることがわかりました。これは動作します: 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バイナリを16進エディタで開き、文字列/lib/ld-linux.so.2を/home/chroot/ld.so(にシンボリックリンクしましたld-linux.so.2)に置き換えました。 しかし、すべての新しいバイナリのパスをネストされたシステムの絶対パスに書き換えるのは非常に面倒だと誰もが同意すると思います。 カスタムld-linux.so を含むカスタムライブラリパスを使用するよりクリーンな方法を知っている人はいますか?

2
NixOSでバイナリを実行できません-そのようなファイルまたはディレクトリはありません
NixOSを実行しているVMに現在のOracle jreをインストールしようとしました。 次のことが起こります: [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 vars */]) = -1 ENOENT (No such …

2
バイナリファイルの実行:ファイルが見つかりません
似たような質問があることは知っていますが、解決策も正確なケースも見つかりません。バイナリは、GCC 4.7を使用してArch Linuxで構築されました。パッケージはビルドシステムで正常に動作します。以下のコマンドが実行されました: Linux vbox-ubuntu 3.2.0-29-generic#46-Ubuntu SMP Fri Jul 27 17:03:23 UTC 2012 x86_64 x86_64 x86_64 GNU / Linux 問題のファイルはここにあります。これは、Linux 64ビットからWindows 64ビットへのクロスコンパイラーです。解凍すると~/、~/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 executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x0b8e50955e7919b76967bac042f49c5876804248, …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.