wine実行可能ファイル(バージョン2.12)を起動したいのですが、次のエラーが発生します($ =シェルプロンプト):

$ wine bash: /usr/bin/wine: No such file or directory $ /usr/bin/wine bash: /usr/bin/wine: No such file or directory $ cd /usr/bin $ ./wine bash: ./wine: No such file or directory 

ただし、ファイルはそこにあります:

$ which wine /usr/bin/wine 

実行可能ファイルは間違いなく存在し、デッドシンボリックリンクはありません:

$ stat /usr/bin/wine File: /usr/bin/wine Size: 9712 Blocks: 24 IO Block: 4096 regular file Device: 802h/2050d Inode: 415789 Links: 1 Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2017-07-13 13:53:00.000000000 +0200 Modify: 2017-07-08 03:42:45.000000000 +0200 Change: 2017-07-13 13:53:00.817346043 +0200 Birth: - 

32ビットELFです:

$ 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 

実行可能ファイルの動的セクションを取得できます:

$ readelf -d /usr/bin/wine Dynamic section at offset 0x1efc contains 27 entries: Tag Type Name/Value 0x00000001 (NEEDED) Shared library: [libwine.so.1] 0x00000001 (NEEDED) Shared library: [libpthread.so.0] 0x00000001 (NEEDED) Shared library: [libc.so.6] 0x0000001d (RUNPATH) Library runpath: [$ORIGIN/../lib32] 0x0000000c (INIT) 0x7c000854 0x0000000d (FINI) 0x7c000e54 [more addresses without file names] 

ただし、:

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

straceの表示:

execve("/usr/bin/wine", ["wine"], 0x7fff20dc8730 /* 66 vars */) = -1 ENOENT (No such file or directory) fstat(2, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 4), ...}) = 0 write(2, "strace: exec: No such file or di"..., 40strace: exec: No such file or directory ) = 40 getpid() = 23783 exit_group(1) = ? +++ exited with 1 +++ 

@jww による提案を追加するために編集:動的にリンクされる前に問題が発生したようですライブラリldデバッグメッセージが生成されないため、要求されます:

$ LD_DEBUG=all wine bash: /usr/bin/wine: No such file or directory 

<の可能な値のみを出力する場合でもdiv id = "5e246a2a50">

、代わりにエラーが発生します

$ LD_DEBUG=help wine bash: /usr/bin/wine: No such file or directory 

編集して追加@Raman Sailopalの提案: /usr/bin/wineの内容を別の作成済みファイルにコピーすると、実行可能ファイル内に問題があるようです。同じエラー

root:bin # cp cat testcmd root:bin # testcmd --help Usage: testcmd [OPTION]... [FILE]... Concatenate FILE(s) to standard output. [rest of cat help page] root:bin # dd if=wine of=testcmd 18+1 records in 18+1 records out 9712 bytes (9.7 kB, 9.5 KiB) copied, 0.000404061 s, 24.0 MB/s root:bin # testcmd bash: /usr/bin/testcmd: No such file or directory 

どのファイルまたはディレクトリが欠落しているかを見つけるために、何が問題であるか、または何ができますか?


uname -a

Linux laptop 4.11.3-1-ARCH #1 SMP PREEMPT Sun May 28 10:40:17 CEST 2017 x86_64 GNU/Linux 

コメント

  • します./wine in / usr / bin work?
  • Archはmultilib対応です。 Multilibリポジトリは/etc/pacman.confで有効になっています。 wineパッケージのすべての依存関係がインストールされます。ただし、念のために再インストールしてください…
  • /lib/ld-linux.so.2がシステムに存在しますか?すべての症状は、チェックするだけで、それが欠落していることを示しています。
  • @ n.m。はい、あなたは正しかった。実際、実行可能ファイルを実行してiv id = “07136c8de4″を取得しようとすると、ディレクトリ全体/libが見つかりませんでした:-)
  • Experience;) >

ファイルが見つかりません"ファイルは明らかにここにありますが、'インタプリタがありません。 fileコマンドは、この実行可能ファイルに設定されているインタープリターを表示します。

回答

これ:

$ 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、CPUの過熱シャットダウン後、システムを再稼働させるために過去8時間忙しかった。再起動すると、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。

インターネットが再び利用できるようになったので、このスレッド

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

これを実現するには、ブリックインストールのメインパーティションをにマウントします。ライブCDシステムの/mntディレクトリで、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/libln -s usr/lib /mnt/lib >、初期のシステムブート(初期段階)中にメインパーティションが最初にマウントされるため/new_rootへ。シンボリックリンクが絶対的なものであるとすると、アーリーブート中に上記のエラーが発生します。

コメント

  • 小さなヒント:systemrescuecdを使用するとき、私はしばしばproc / sys / devを反復処理します(proc sysdevのパスの場合;マウントします) -chrootを実行する前に/ $ path / mnt / $ path; done)を実行します。ただし、'でarchinstall isoを使用している場合は、提供されているarch-chroot実行可能ファイルを実行するだけで、すべてが実行されます。誰かがいじくり回したい場合は、arch-install-scriptsパッケージに含まれています。 🙂

回答

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

コメント

  • ソリューションがケースをどのように解決するかを明確にしてください質問に答えます
  • ロメオが言ったこと;パックマンの代わりにarch-linuxシステムでapt-getを実行しますか?そして、圧縮ライブラリとncursesはどのように役立ちますか?

回答

参考までに、同じ問題が発生しました。高山ベースのDockerイメージで。実行可能ファイルは64ビットELFであり、アルパインイメージは64ビットであり、実行可能ファイルは別のコンテナーで機能しました。したがって、おそらく、トリミングされた高山ライブラリは私の実行可能ファイルと互換性がありませんでした。 node.js Dockerハブページの注記:

主な注意事項 [アルパインベースのコンテナで実行するには] は、 musl libc を使用するということです。 > glibcとその仲間であるため、libc要件の深さによっては、特定のソフトウェアで問題が発生する可能性があります。ただし、ほとんどのソフトウェアにはこれに関する問題がないため、通常、このバリアントは非常に安全な選択です。詳細については、このHackerNewsコメントスレッドを参照してください。発生する可能性のある問題と、Alpineベースのイメージを使用する際の賛否両論の比較。

私の解決策は、別の(Debian Jessieベースなど)を使用することでした。コンテナイメージ。

コメント

  • この元々のsysadmin問題を"新しい

コンテナの世界!