chrootで最新のbashを使用するには、LD_LIBRARY_PATHをハッキングしてください。

chrootで最新のbashを使用するには、LD_LIBRARY_PATHをハッキングしてください。

bashfromの最新バージョンを入手しようとしていますLinuxMint

私の箱に一つありますchrootDebian Sid

bash当初ラッパースクリプトでやろうとしていたことPATH

#!/bin/bash

LD_LIBRARY_PATH=/path/to/chroot/usr/lib/x86_64-linux-gnu:/path/to/chroot/lib:/path/to/chroot/lib64:/path/to/chroot/var/lib:/path/to/chroot/usr/lib:/path/to/chroot/usr/local/lib /path/to/chroot/bin/bash "$@"

しかし、私は次のようになります。

/home/mevatlave/bin/bash: line 3: 1492488 Segmentation fault      (core dumped) LD_LIBRARY_PATH=/path/to/chroot/usr/lib/x86_64-linux-gnu:/path/to/chroot/lib:/path/to/chroot/lib64:/path/to/chroot/var/lib:/path/to/chroot/usr/lib:/path/to/chroot/usr/local/lib /path/to/chroot/bin/bash "$@"

chrootで始めましょう:

% ldd /bin/bash
    linux-vdso.so.1 (0x00007fff237fc000)
    libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007f94de839000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f94de658000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f94de9af000)

可能ですか?

編集する:

そして

LD_LIBRARY_PATH=/path/to/chroot/lib:/path/to/chroot/lib64:/path/to/chroot/var/lib:/path/to/chroot/usr/lib:/path/to/chroot/usr/local/lib /path/to/chroot/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 /path/to/chroot/bin/bash "$@"

わかりました。

/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.36' not found 

そして

LD_LIBRARY_PATH=/path/to/chroot/usr/lib/x86_64-linux-gnu:/path/to/chroot/lib:/path/to/chroot/lib64:/path/to/chroot/var/lib:/path/to/chroot/usr/lib:/path/to/chroot/usr/local/lib /path/to/chroot/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 /path/to/chroot/bin/bash "$@"

私は得る:

Segmentation fault (core dumped) 
LD_LIBRARY_PATH=/path/to/chroot/usr/lib/x86_64-linux- gnu:/path/to/chroot/lib:/path/to/chroot/lib64:/path/to/chroot/var/lib:/path/to/chroot/usr/lib:/path/to/chroot/usr/local/lib: /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 /path/to/chroot/bin/bash "$@"

編集する2:

私はこれを実行できます:

#!/bin/bash

LANG=C
LD_LIBRARY_PATH=/path/to/chroot/usr/lib/x86_64-linux-gnu:/path/to/chroot/lib:/path/to/chroot/lib64:/path/to/chroot/var/lib:/path/to/chroot/usr/lib:/path/to/chroot/usr/local/lib /path/to/chroot/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 /path/to/chroot/bin/bash "$@"

しかし、実行すると、次のようなbash --version結果が得られます。

Segmentation fault (core dumped)
root@debian-sid_chroot:/# dpkg -l | grep libc6
ii  libc6:amd64                  2.36-8                    amd64        GNU C 
Library: Shared libraries
ii  libc6-dev:amd64              2.36-8                    amd64        GNU C 
Library: Development Libraries and Header Files

ベストアンサー1

メインの動的リンカーが古すぎてchrootを使用する必要があるようです:

LD_LIBRARY_PATH=/path/to/chroot/usr/lib/x86_64-linux-gnu:/path/to/chroot/lib:/path/to/chroot/lib64:/path/to/chroot/var/lib:/path/to/chroot/usr/lib:/path/to/chroot/usr/local/lib /path/to/chroot/lib64/ld-linux-x86-64.so.2 /path/to/chroot/bin/bash

バラより/lib64/ld-linux-x86-64.so.2 とは何ですか、なぜファイルの実行に使用できますか?

おすすめ記事