Как разрешить & ldquo; Невозможно открыть файл общего объекта libudev.so.0 & rdquo; ошибка?

Попытка запустить Game Dev Tycoon на Ubuntu 64. Он запрашивает вышеуказанный объект.

Я запустил sudo apt-get install libudev1:i386, и он вернулся уже установлен.

У меня есть /lib/i386-linux-gnu/libudev.so.1, но нет libudev.so.0 нигде.

81
задан 10 January 2016 в 00:30

15 ответов

Выполнить эти команды в терминале:

cd /lib/x86_64-linux-gnu/
sudo cp libudev.so.0.13.0 libudev.so.1

Это помогло мне

0
ответ дан 10 January 2016 в 00:30

Для 64-битной Ubuntu она входит в 32-битный пакет libudev0.

Вы можете установить это с помощью следующей команды:

sudo apt-get install libudev0:i386

Этот пакет был удален из Ubuntu в 14.04. Вам нужно будет установить его с более старой версии.

0
ответ дан 10 January 2016 в 00:30

Если кто-нибудь наткнется на эту страницу, когда копает в Интернете исправления в libudev.so.0 & amp; Emotiv Epoc SDK Dev Edition на Ubuntu, надеюсь, поможет следующее:

// моя конфигурация 64-битная Ubuntu 13.04

для 64-битной системы:

sudo ln -sf /lib/x86_64-linux-gnu/libudev.so.1. /lib/x86_64-linux-gnu/libudev.so.1

sudo ln -sf /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so .0

что позволяет предотвратить «ошибку при загрузке общих библиотек: libudev.so.0: неправильный класс ELF: ELFCLASS32»

sudo ln -sf / lib / x86_64-linux-gnu /libudev.so.1 /usr/lib/libudev.so.0

Для 32-разрядной системы:

sudo ln -sf / lib / i386-linux-gnu / libudev. Таким образом, 1. /lib/i386-linux-gnu/libudev.so.1

sudo ln -sf /lib/i386-linux-gnu/libudev.so.1 /lib/i386-linux-gnu/libudev.so .0

что позволяет предотвратить «ошибку при загрузке общих библиотек: libudev.so.0: неправильный класс ELF: ELFCLASS64» (обратите внимание, это предположение, я нахожусь на 64-битной системе)

sudo ln -sf /lib/i386-linux-gnu/libudev.so.1 /usr/lib/libudev.so.0

EmotivControlPanel, EmoKey, EmoComposer, примеры Java & amp; После выполнения вышеприведенного примера небольшие настраиваемые примеры Qt должны запускаться (я уже попробовал все вышеописанные шаги + другие, найденные в Интернете (переполнение стека, ..), но ни один из них не работал для меня, так что это то, что я закончил делать после некоторые "try & amp; errors"

И последнее, но не менее важное: если кто-нибудь здесь знает, как запускать программы, скомпилированные на 32-битных библиотеках, в 64-битной системе, ОПРЕДЕЛЯЯ ИСПОЛЬЗОВАНИЕ ПРЕДОСТАВЛЯЕМОЙ 32-битной БИБЛИОТЕКИ 3-Й ПАРТИИ?

Точнее, для тех, кто знает, о чем я говорю, как я должен запускать примеры Qt "EmoCube" и "BlueAvatar" в моей 64-битной системе?

-> из того, что я пробовал до сих пор, самое большее, что я мог получить, было: «ошибка при загрузке разделяемых библиотек: libedk.so.1: неправильный класс ELF: ELFCLASS64»

Я предполагаю, что символическая ссылка на эта библиотека в каталоге i386 не сможет этого сделать (хотя я еще не пробовал), поэтому, если у кого-то есть ответ ... Я с нетерпением жду его прочтения.

Приветствую всех +

0
ответ дан 10 January 2016 в 00:30

Я получал ту же ошибку в моей 32-битной системе после обновления с Xubuntu Precise до Trusty. Это исправило это для меня:

sudo dpkg-reconfigure google-chrome-stable

Я нашел это здесь . С абсолютно без параметров, я не совсем уверен, как это исправить, но это было сделано. Что мне больше всего понравилось, так это то, что для этого не требовалось делать ничего, что могло бы вызвать у меня проблемы в будущем, и не требовалось, чтобы я выискивал какие-либо пакеты.

0
ответ дан 10 January 2016 в 00:30

ОБНОВЛЕНИЕ Я создал скрипт bash, чтобы обернуть вокруг программу, которую вы хотите выполнить. Вы можете добавить его в локальную папку bin и просто запустить программу без копирования & amp; вставка или запуск сценариев оболочки.

#!/bin/bash

ProgramToExecute="/PATH/TO/PROGRAM" #Example: $HOME/dart/./DartEditor

system=$(uname -m) #Returns x86_64 on 64 bit systems
libdir="/lib/$system-linux-gnu"
libudev1="$libdir/libudev.so.1"

if [ ! -f $libudev1 ]
then
        #check if an i386 folder exist because ' uname -m' returns i686 instead of i386.
        libdir="/lib/i386-linux-gnu"
        libudev1="$libdir/libudev.so.1"
        #if none of the lookups return a file, this script exits,
        BreakUpNotice="This $libudev1 isn't working out. It's not you
        it's me. Or maybe you forgot to install libudev1 library.
        sudo apt-get install libudev1 "

        [ ! -f $libudev1 ] && echo $BreakUpNotice  && exit 0
fi

libudev0="$libdir/libudev.so.0"

echo "$libudev1 found."
sudo ln -sf $libudev1 $libudev0
sudo -k #revoke sudo 
$($ProgramToExecute)

NoticeAfterExec="Enter sudo to del libudev link (recommended) or press CTRL+C to cancel."
RmSuccess="And $libudev0 link is gone."
RmFailed="Whaat? $libudev0 still exists."

echo $NoticeAfterExec
sudo rm $libudev0
sudo -k
[ ! -f "$libudev0" ]  && echo $RmSuccess || echo $RmFailed
exit 

СТАРЫЙ ОТВЕТ В Ubuntu 14.04 я получал сообщение об ошибке из Dart Editor при попытке использовать Live Preview (Chromium). Ошибка была устранена путем установки libudev1 и создания символической ссылки .

    sudo apt-get install libudev1

Я также использовал скрипт, упомянутый выше TenLeftFingers для запуска DartEditor.

    #!/bin/sh
    sudo ln -sf /lib/i386-linux-gnu/libudev.so.1 /lib/i386-linux-gnu/libudev.so.0
    ./DartEditor
    sudo rm /lib/i386-linux-gnu/libudev.so.0

Если редактор Dart не запускается, убедитесь, что JAVA установлен, и это не проблема с правами доступа.

    sudo apt-get install python-software-properties
    sudo add-apt-repository ppa:webupd8team/java
    sudo apt-get update
    sudo apt-get install oracle-java7-installer

и сделайте IDE исполняемым:

    sudo chmod a+x ./DartEditor

Это сработало для меня.

0
ответ дан 10 January 2016 в 00:30

Это то, что я использовал для решения той же проблемы на 32-битной Ubuntu 15.04.

cd i386-linux-gnu
sudo ln -sf libudev.so.1 libudev.so.0
0
ответ дан 10 January 2016 в 00:30

Я только что нашел способ сделать эту работу, хотя это довольно глупо.

В моей системе установлен Google Chrome, и в Chrome встроен этот общий объект. Поэтому мне просто нужно было создать символическую ссылку на библиотеку в каталоге установки Chrome.

ln -sf /opt/google/chrome/libudev.so.0 /lib/x86_64-linux-gnu/libudev.so.0

Это работает довольно хорошо для меня.

0
ответ дан 10 January 2016 в 00:30

Единственный ответ, который работает в Ubuntu 14.04, - это принятый ответ, и поскольку многие комментарии указывают, что это может вызвать проблемы с системой в будущем (хотя я сам не знаю об этом), я придумал компромисс. Этот скрипт запросит (в терминале) ваш пароль root. Он создаст символическую ссылку и запустит приложение (в моем случае, время попкорна). Когда вы выходите из приложения, оно использует существующий сеанс sudo для удаления символической ссылки:

#!/bin/sh
sudo ln -sf /lib/i386-linux-gnu/libudev.so.1 /lib/i386-linux-gnu/libudev.so.0
./Popcorn-Time #replace this line with the path to the executable you want to launch
sudo rm /lib/i386-linux-gnu/libudev.so.0
0
ответ дан 10 January 2016 в 00:30

Эта ошибка может возникать при попытке использовать исполняемый файл nw из Node Webkit . Например:

./nw: error while loading shared libraries: libudev.so.0: cannot open shared object file: No such file or directory

Как решить:

  1. Получить шестнадцатеричный редактор, который позволяет вам изменять строку двоичного кода ASCII, например. hexedit :

    • В терминале ( Ctrl + Alt + T ) выполните: sudo apt-get install hexedit. [тысяча сто сорок семь]
    • Следуйте инструкциям на терминале (при необходимости введите пароль, подтвердите установку).
  2. Перейдите в каталог с узлом webkit :
    • В моем случае: cd ~/Dokumenty/node-webkit-*.
  3. Открыть двоичный файл nw с помощью команды шестнадцатеричного редактора, которому предшествуют sudo:
    • Выполнить: sudo hexedit nw.
  4. Поиск libudev.so.0 в виде строки ASCII:
    • При использовании hexedit : Нажмите Tab .
    • Нажмите Ctrl + S .
    • Тип: libudev.so.0.
  5. Измените 0 в строке libudev.so.0 на 1, чтобы оно стало: libudev.so.1:
    • Используйте клавиши со стрелками, чтобы выбрать 0 в строке libudev.so.0 .
    • Нажмите 1 на клавиатуре.
  6. Выйти и сохранить изменения.
    • Нажмите Ctrl + X .
    • Нажмите Y , чтобы сохранить изменения.

Вы закончили. Это также исправляет проблему с бинарным Atraci, когда следует тем же инструкциям, за исключением шестнадцатеричного редактирования файла Atraci вместо nw.

0
ответ дан 10 January 2016 в 00:30

У меня была такая же проблема для другой программы, но принятый ответ Шона мне не помог. В моей обновленной установке 64-разрядной версии 13.04 libudev0 недоступен ни в 64-разрядной, ни в форме i386. И ia32-libs уже установлен. Так что без кубиков.

То, что я должен был сделать, было слегка модифицированным вариантом более технического решения Senshikaze. Я вручную сделал ссылку на libudev.so.0 на libudev.so.1 в каталоге lib x86_64, таким образом:

cd /lib/x86_64-linux-gnu/
sudo ln -sf libudev.so.1 libudev.so.0

Это исправило это для меня.

0
ответ дан 10 January 2016 в 00:30

Чтобы исправить, я связал libudev.so.1 с libudev.so.0:

sudo ln -sf /lib/$(arch)-linux-gnu/libudev.so.1 /lib/$(arch)-linux-gnu/libudev.so.0
0
ответ дан 10 January 2016 в 00:30

Это было самое простое решение, которое я нашел

sudo ln -s /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0
0
ответ дан 10 January 2016 в 00:30

Я сделал это 14.04, но должно быть похоже. просто удалите пакет и переустановите. правильные библиотеки установлены соответствующим образом.

apt-get purge google-chrome-stable
apt-get install google-chrome-stable

Я уверен, что другие ответы работают, но у меня есть базовый подход к изменению объектов файловой системы, которыми управляют пакеты управления конфигурацией.

0
ответ дан 10 January 2016 в 00:30

как Фил Стронг указал

установить libudev.so.1

sudo apt-get install libudev1:i386

, а затем связать его как libudev.so.0

sudo ln -sf /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0
0
ответ дан 10 January 2016 в 00:30

Для Ubuntu 14.04 и выше

Самый простой метод, который я нашел, это просто загрузить прямую ссылку .deb ( на 64-битную загрузку и на . ] 32-разрядная загрузка ) и дважды щелкните ее, чтобы установить ее, или используйте dpkg для ее установки:

dpkg -i libudev0_175-0ubuntu9_amd64.deb

Для предыдущих версий

В предыдущей версии Ubuntu этот пакет был доступен. в официальных репозиториях. Вы можете установить со следующим:

sudo apt-get install libudev0:i386
0
ответ дан 10 January 2016 в 00:30

Другие вопросы по тегам:

Похожие вопросы: