Как разрешить & ldquo; Не удается открыть файл общих объектов libudev.so.0 & rdquo; ошибка?

Существует несколько способов обновления вашего Ubuntu. Вот подробности.

Самый простой способ

Поскольку вы новичок в Ubuntu. Может быть, вам не очень удобно работать с командной строкой. В этом случае вам будет лучше. Самый простой способ - использовать диспетчер обновлений. Обычно, если менеджер обновлений получает какое-либо обновление, он автоматически уведомит вас об этом. В противном случае вы можете щелкнуть по значку GEAR в правом верхнем углу экрана, он покажет вам меню. Если в вашей системе есть обновление, тогда опция номер 4 покажет «Доступно обновление», иначе она покажет «Программное обеспечение до даты». Нажмите эту опцию, чтобы открыть диспетчер обновлений Ubuntu. Он покажет вам информацию о доступных обновлениях или нет. Установите эти обновления здесь, как пожелаете.

Расширенный способ

Нажмите ctrl + alt + T. Он откроет терминал. Затем введите

sudo apt-get update && sudo apt-get upgrade

Он запросит ваш пароль. Введите пароль и нажмите клавишу ввода. Пакеты будут обновляться автоматически.

1
задан 10 January 2016 в 01:30

14 ответов

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

sudo ln -sf /lib/$(arch)-linux-gnu/libudev.so.1 /lib/$(arch)-linux-gnu/libudev.so.0
187
ответ дан 24 May 2018 в 22:50
  • 1
    для 64 бит: sudo ln -sf /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0 – Pisu 18 August 2013 в 01:51
  • 2
    Пожалуйста, не делайте этого. Он только просит проблемы. – dobey 12 December 2013 в 02:41
  • 3
    Это перепутало Plex Home Theater для меня, чтобы удалить удаляемую ссылку libudev.so.0 и переустановить libudev0: i386 – Johan Bjäreholt 11 March 2014 в 21:36
  • 4
    На 32 бит это команда (в случае, если кто-то достиг сюда): sudo ln -sf /lib/i386-linux-gnu/libudev.so.1 /lib/i386-linux-gnu/libudev.so.0 – amit_saxena 2 October 2014 в 03:49
  • 5
    Слушайте добе, это грязная процедура. Ryan Crichton опубликовал правильный способ сделать это ЗДЕСЬ . – berbt 7 April 2015 в 23:00

Для ubuntu 14.04 и выше

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

dpkg -i libudev0_175-0ubuntu9_amd64.deb

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

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

sudo apt-get install libudev0:i386
48
ответ дан 24 May 2018 в 22:50
  • 1
    ЭТО ПРАВЫЙ ОТВЕТ . Если пакет отсутствует, вы устанавливаете пакет ... это просто. Создание ссылок, шестнадцатиричное редактирование имен, переконфигурирование Google Chrome, забивание процессора и фырканье порошка чили - не реальные решения. – berbt 7 April 2015 в 22:53
  • 2
    Но он работает только в том случае, если этот пакет доступен. – Tamsyn Michael 22 September 2015 в 05:39
  • 3
    @TamsynMichael пакет не должен быть доступен в репозиториях, вы можете скачать его по ссылке выше, а затем установить его вручную на версиях ubuntu, у которых нет пакета, доступного в их официальных хранилищах. – Ryan Crichton 23 September 2015 в 21:57
  • 4
    Это должен быть правильный ответ! это правильное исправление, бесполезные символические ссылки или что-то еще – lord-ralf-adolf 1 November 2015 в 15:09
  • 5
    Это самый простой метод, который я могу найти. Добавление более старой зависимости в репозиторий - это боль – denny 15 December 2015 в 03:16

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

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

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

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

29
ответ дан 24 May 2018 в 22:50
  • 1
    Это тоже исправлено для меня - работает Ubuntu 15.04 64 бит. Огромное спасибо. – Tamsyn Michael 22 September 2015 в 05:39

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

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

Как решить:

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

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

5
ответ дан 24 May 2018 в 22:50
  • 1
    cat nw | sed s/libudev.so.0/libudev.so.1/ > fixed_nw, chmod a+x fixed_nw, а затем вы можете запустить его, нет необходимости устанавливать что-либо – Catalyst 31 January 2015 в 09:50

Единственный ответ здесь, который работает на 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
4
ответ дан 24 May 2018 в 22:50

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

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

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

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

4
ответ дан 24 May 2018 в 22:50

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

sudo ln -s /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0
3
ответ дан 24 May 2018 в 22:50

, как отметил Фил Стронг

, установите 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
2
ответ дан 24 May 2018 в 22:50

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

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

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

1
ответ дан 24 May 2018 в 22:50

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

cd i386-linux-gnu
sudo ln -sf libudev.so.1 libudev.so.0
1
ответ дан 24 May 2018 в 22:50

UPDATE Я сделал сценарий 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 

UPDATE В Ubuntu 14.04 я получал сообщение об ошибке из редактора Dart при попытке использовать 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
ответ дан 24 May 2018 в 22:50

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

sudo dpkg-reconfigure google-chrome-stable

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

0
ответ дан 24 May 2018 в 22:50

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

// мой config - 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.so.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-битной системе) [ ! d10]

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

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

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

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

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

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

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

-1
ответ дан 24 May 2018 в 22:50

Запустите эти команды в терминале:

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

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

-4
ответ дан 24 May 2018 в 22:50

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

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