GNU/Linux >> Belajar Linux >  >> Linux

CentOS 64 bit penerjemah ELF buruk

Secara umum, ketika Anda mendapatkan kesalahan seperti ini, lakukan saja

yum provides ld-linux.so.2

maka Anda akan melihat sesuatu seperti:

glibc-2.20-5.fc21.i686 : The GNU libc libraries
Repo        : fedora
Matched from:
Provides    : ld-linux.so.2

dan kemudian Anda hanya menjalankan yang berikut seperti yang ditulis BRPocock (jika Anda bertanya-tanya apa logikanya...):

yum install glibc.i686

Coba

$ yum provides ld-linux.so.2
$ yum update
$ yum install glibc.i686 libfreetype.so.6 libfontconfig.so.1 libstdc++.so.6

Semoga ini beres.


Anda menggunakan sistem 64-bit, dan belum menginstal dukungan library 32-bit.

Untuk menginstal dukungan (baseline) untuk executable 32-bit

(jika Anda tidak menggunakan sudo dalam pengaturan, baca catatan di bawah)

Sebagian besar sistem Linux desktop dalam keluarga Fedora/Red Hat:

 pkcon install glibc.i686

Mungkin beberapa sistem desktop Debian/Ubuntu?:

pkcon install ia32-libs

Fedora atau Red Hat yang lebih baru, CentOS:

 sudo dnf install glibc.i686

RHEL lama, CentOS:

   sudo yum install glibc.i686

RHEL yang lebih tua, CentOS:

  sudo yum install glibc.i386

Debian atau Ubuntu:

   sudo apt-get install ia32-libs

harus mengambil perpustakaan (pertama, utama) yang Anda butuhkan.

Setelah memilikinya, Anda mungkin memerlukan lib dukungan

Siapa pun yang perlu menginstal glibc.i686 atau glibc.i386 mungkin akan mengalami dependensi perpustakaan lain juga. Untuk mengidentifikasi paket yang menyediakan pustaka arbitrer, Anda dapat menggunakan

 ldd /usr/bin/YOURAPPHERE

jika Anda tidak yakin ada di /usr/bin Anda juga dapat menggunakan kembali

 ldd $(which YOURAPPNAME)

Outputnya akan terlihat seperti ini:

    linux-gate.so.1 =>  (0xf7760000)
    libpthread.so.0 => /lib/libpthread.so.0 (0xf773e000)
    libSM.so.6 => not found

Periksa perpustakaan yang hilang (mis. libSM.so.6 dalam output di atas), dan untuk masing-masing Anda perlu menemukan paket yang menyediakannya.

Perintah untuk menemukan paket per kelompok distribusi

Fedora/Red Hat Enterprise/CentOS:

 dnf provides /usr/lib/libSM.so.6

atau, pada RHEL/CentOS yang lebih lama:

 yum provides /usr/lib/libSM.so.6

atau, di Debian/Ubuntu:

pertama, instal dan unduh database untuk apt-file

 sudo apt-get install apt-file && apt-file update

lalu cari dengan

 apt-file find libSM.so.6

Perhatikan jalur awalan /usr/lib dalam kasus (biasa); jarang, beberapa perpustakaan masih hidup di bawah /lib karena alasan historis … Pada sistem 64-bit biasa, pustaka 32-bit berada di /usr/lib dan pustaka 64-bit berada di /usr/lib64 .

(Debian/Ubuntu mengatur pustaka multi-arsitektur secara berbeda.)

Menginstal paket untuk pustaka yang hilang

Di atas seharusnya memberi Anda nama paket, misalnya:

libSM-1.2.0-2.fc15.i686 : X.Org X11 SM runtime library
Repo        : fedora
Matched from:
Filename    : /usr/lib/libSM.so.6

Dalam contoh ini nama paketnya adalah libSM dan nama paket versi 32bit adalah libSM.i686 .

Anda kemudian dapat menginstal paket untuk mengambil perpustakaan yang diperlukan menggunakan pkcon dalam GUI, atau sudo dnf/yum/apt-get sewajarnya…. Misalnya pkcon install libSM.i686 . Jika perlu, Anda dapat menentukan versi sepenuhnya. Misalnya sudo dnf install ibSM-1.2.0-2.fc15.i686 .

Beberapa perpustakaan akan memiliki penunjuk "zaman" sebelum namanya; ini bisa dihilangkan (yang penasaran bisa baca catatan di bawah).

Catatan

Peringatan

Kebetulan, masalah yang Anda hadapi menyiratkan bahwa basis data RPM (resp. DPkg/DSelect) Anda rusak, atau aplikasi yang Anda coba jalankan tidak diinstal melalui pengelola paket. Jika Anda baru mengenal Linux, Anda mungkin ingin menghindari penggunaan perangkat lunak dari sumber selain pengelola paket, jika memungkinkan...

Jika Anda tidak menggunakan "sudo" dalam penyiapan Anda

Ketik

su -c

setiap kali Anda melihat sudo , misalnya,

su -c dnf install glibc.i686

Tentang penanda zaman dalam nama perpustakaan

Penunjuk "Epoch" sebelum nama adalah artefak dari cara pustaka RPM yang mendasarinya menangani nomor versi; misalnya

2:libpng-1.2.46-1.fc16.i686 : A library of functions for manipulating PNG image format files
Repo        : fedora
Matched from:
Filename    : /usr/lib/libpng.so.3

Di sini, 2: dapat dihilangkan; cukup pkcon install libpng.i686 atau sudo dnf install libpng-1.2.46-1.fc16.i686 . (Ini samar-samar menyiratkan sesuatu seperti:di beberapa titik, nomor versi dari libpng paket digulung mundur, dan "zaman" harus ditambah untuk memastikan versi yang lebih baru akan dianggap "lebih baru" selama pembaruan. Atau hal serupa terjadi. Dua kali.)

Diperbarui untuk mengklarifikasi dan mencakup berbagai opsi pengelola paket secara lebih lengkap (Maret, 2016)


Baru saja menemukan masalah yang sama pada mesin CentOS 6.4 64-bit yang baru diinstal. Satu perintah yum akan memperbaiki ini plus 99% masalah serupa:

yum groupinstall "Perpustakaan kompatibilitas"

Awali ini dengan 'sudo' atau jalankan sebagai root, mana yang paling cocok untuk Anda.


Linux
  1. Instal Apache di CentOS 8

  2. Instal Auter di CentOS 6

  3. Instal GitLab di CentOS 7

  1. Cara menginstal ASSP v.2 pada CentOS 7 64 bit

  2. Bagaimana Cara Menginstal Tomcat 7 di Centos?

  3. Instal Nginx di CentOS 6

  1. Instal Odoo 14 di CentOS 8

  2. Instal PHP 7 di CentOS 7

  3. Instal MariaDB di CentOS 7