Как мне устранить ошибку "Не удается открыть общий объектный файл libudev.so.0"?

Пытаюсь убежать Разработчик игр Магнат на Ubuntu 64. Он запрашивает вышеупомянутый объект.

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

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

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

sudo ln -sf /lib/$(arch)-linux-gnu/libudev.so.1 /lib/$(arch)-linux-gnu/libudev.so.0

Для ubuntu 14.04 и выше

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

dpkg -i libudev0_175-0ubuntu9_amd64.deb

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

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

sudo apt-get install libudev0:i386

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

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

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

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

Для 64-разрядной Ubuntu он находится в 32-разрядном пакете libudev0.

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

sudo apt-get install libudev0:i386

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

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

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

Как решить:

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

    • В терминале(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:
    • При использовании шестнадцатеричный код: Пресса 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.

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

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

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

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

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

#!/bin/shsudo 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 launchsudo rm /lib/i386-linux-gnu/libudev.so.0

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

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

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

устанавливать 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

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

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

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

Это произошло при попытке установить новую версию Popcorntime на Mint Petra 16