libEGL.so.1 не является символической ссылкой

53

После установки каких-либо программ я получаю следующую ошибку

Processing triggers for libc-bin (2.23-0ubuntu7) ...
/sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 is not a symbolic link

/sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 is not a symbolic link

Какова эта ошибка и как ее решить?

    
задан Dante 05.04.2017 в 01:15
источник

4 ответа

48

Это проблема, которая затронула многих пользователей и сообщается как ошибка на Launchpad .

Похоже, что существует конфликт между различными версиями libEGL.

Чтобы избавиться от этого предупреждения, создайте следующие символические ссылки (но сначала прочитайте предупреждение ниже):

sudo mv /usr/lib/nvidia-375/libEGL.so.1 /usr/lib/nvidia-375/libEGL.so.1.org
sudo mv /usr/lib32/nvidia-375/libEGL.so.1 /usr/lib32/nvidia-375/libEGL.so.1.org
sudo ln -s /usr/lib/nvidia-375/libEGL.so.375.39 /usr/lib/nvidia-375/libEGL.so.1
sudo ln -s /usr/lib32/nvidia-375/libEGL.so.375.39 /usr/lib32/nvidia-375/libEGL.so.1

Предупреждение : вам не нужно менять систему. Если после перезагрузки вы не можете запустить графический интерфейс, который вы можете решить, выполните следующие действия: 1. Войти в терминал,
2. Запустите sudo dpkg-reconfigure nvidia*

    
ответ дан Noisy_Botnet 06.04.2017 в 11:18
11

Ниже приведена простая в использовании версия решения Noisy_Botnet. Это облегчает повторение процесса для любого обновления.

#! /bin/sh
#
# find the file in /usr/lib
LIBEGL='find /usr/lib/nvidia* -name libEGL.so.\* | egrep "[0-9][0-9]*\.[0-9][0-9]*$"'
LIBEGL_LINK='echo $LIBEGL | sed 's/[0-9][0-9]*\.[0-9][0-9]*$/1/''
printf "\n\nThe following commands will be executed:\n+++++++++++++++++++++++++++++++++++++++\n"
printf "mv $LIBEGL_LINK ${LIBEGL_LINK}.orig\nln -s $LIBEGL $LIBEGL_LINK\n\n"
while true; do
    read -p "Do you wish to perform these commands?  " yn
    case $yn in
        [Yy]* ) mv $LIBEGL_LINK ${LIBEGL_LINK}.orig; ln -s $LIBEGL $LIBEGL_LINK ; break;;
        [Nn]* ) break;;
        * ) echo "Please answer yes or no.";;
    esac
done

# find the file in /usr/lib32
LIBEGL='find /usr/lib32/nvidia* -name libEGL.so.\* | egrep "[0-9][0-9]*\.[0-9][0-9]*$"'
LIBEGL_LINK='echo $LIBEGL | sed 's/[0-9][0-9]*\.[0-9][0-9]*$/1/''
printf "\n\nThe following commands will be executed:\n+++++++++++++++++++++++++++++++++++++++\n"
printf "mv $LIBEGL_LINK ${LIBEGL_LINK}.orig\nln -s $LIBEGL $LIBEGL_LINK\n\n"
while true; do
    read -p "Do you wish to perform these commands?  " yn
    case $yn in
        [Yy]* ) mv $LIBEGL_LINK ${LIBEGL_LINK}.orig; ln -s $LIBEGL $LIBEGL_LINK ; break;;
        [Nn]* ) break;;
        * ) echo "Please answer yes or no.";;
    esac
done
    
ответ дан Gerard Tromp 06.07.2017 в 08:36
1

Вы сначала обновили обновление? У меня было то же сообщение, я обновил, обновил и сообщение пропало

sudo apt-get update
sudo apt-get upgrade
    
ответ дан Yuval Harpaz 06.04.2017 в 09:43
0

У меня была одна и та же проблема, и я получил ее; он работал раньше. У меня есть Cuda 8.0 и Tensorflow 1.3 на Ubuntu 16.04.

Вот как я решил проблему. Во-первых,

sudo apt-get update

sudo apt-get upgrade

Затем

sudo ldconfig /usr/local/cuda/lib64

Теперь он работает. Порядок исполнения имеет значение.     

ответ дан Hahnsang 21.11.2017 в 20:25