GNU/Linux >> Linux の 問題 >  >> Linux

ファイルがそこにあり、PATH にあるにもかかわらず、Linux 実行可能ファイルが File not found で失敗する

これ:

$ file /usr/bin/wine
/usr/bin/wine: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), 
dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.32, 
BuildID[sha1]=eaf6de433d8196e746c95d352e0258fe2b65ae24, stripped

これと組み合わせる:

$ ldd /usr/bin/wine
/usr/bin/ldd: line 117: /usr/bin/wine: No such file or directory

システムに /lib/ld-linux.so.2 がないことを強く示唆しています ELF インタープリター。つまり、この 64 ビット システムには 32 ビット互換ライブラリがインストールされていません。したがって、@ user1334609 の回答は基本的に正しいです。


OK、私はこの 8 時間、CPU の過熱によるシャットダウンの後、システムを再起動するために忙しくしていました。再起動すると、initrd のフォールバック コンソールでさえ私のキーボードを認識しなくなったことが明らかになりました。あなたからの数え切れないほどの提案を実行しようとしていたときに、システムがどのようにしてこれほど長い間稼働し続けたのかは、私にとって謎です (どうもありがとう!!)

再起動の問題:

Warning: /lib/modules/4.11.3-1-ARCH/modules.devname not found - ignoring
ERROR: device 'UUID=...' not found. Skipping fsck.
ERROR: Unable to find root device 'UUID=...'.
You are being dropped to a recovery shell
Type 'exit' to try and continue booting
sh: can't access tty: job control turned off

その後、キーボードが機能しません:-)

問題は次のとおりです。更新により、シンボリックリンク /lib -> /usr/lib が置き換えられました ディレクトリ付き。つまり、/lib にあると予想されるすべてのライブラリとカーネル モジュールを意味します。 行方不明だった:-)

そのため、シンボリック リンクを再作成し、ライブ CD からベース システムを再インストールしました。

インターネットが復活したので、このスレッドも見つけました

また、ブリックされたオンディスク インストールのパッケージ マネージャー (pacman と呼ばれる) も使用しました。 ) ライブ CD からベース グループのすべてのパッケージを再インストールします (おそらくカーネルだけなので、パッケージ linux で十分だったでしょう、わかりません)

これを実現するには、ブリック インストールのメイン パーティションを /mnt にマウントします。 ライブ CD システムのディレクトリと chroot を使用 pacman にする /mnt だと思います / です (ブリック システムのメイン パーティションを sdXXX に挿入します )

mount /dev/sdXXX /mnt
# Recreate the /lib -> usr/lib symlink
ln -s usr/lib /lib  
# Mount essential system folders also to the respective subfolders of /mnt
mount -t proc proc /mnt/proc
mount -t sysfs sys /mnt/sys
mount -o bind /dev /mnt/dev
# Fake /mnt to be /, so that pacman installs the packages to the correct  places
chroot /mnt
# Reinstall the Arch Linux base system
pacman -Sy base

記録のために:相対シンボリック リンクを作成するため、ln -s usr/lib /mnt/lib ln -s /usr/lib /mnt/lib ではありません 、初期のシステム ブート (initrd ステージ) 中に、メイン パーティションが最初に /new_root にマウントされるためです。 .シンボリック リンクが絶対リンクである場合、初期ブート中に上記のエラーが発生します。


32 ビット アプリケーションを 64 ビット オペレーティング システムで実行しようとしているため、これが機能する前に 32 ビット互換ライブラリ (特に glibc) をインストールする必要があります。


Linux
  1. findコマンドを使用してLinux上のファイルとディレクトリを検索します

  2. Linuxターミナルでリダイレクトを使用して、どこからでもデータを読み書きできます

  3. noatimeでLinuxシステムのパフォーマンスを向上させる

  1. OSとLinuxのバージョンを確認する方法

  2. Linuxスクリプトコマンドを使用してターミナルセッションをキャプチャして出力する方法

  3. mkfs.hfsplus:コマンドが見つかりません

  1. カーネルのビルド後に vmlinuz と initrd が見つかりませんか?

  2. $PATH の SH スクリプトが Linux Alpine 3.11 で見つからない

  3. /bin/ls は存在しますが、見つかりません!