Вся моя Кв. - добирается, операции перестали работать, потому что где-нибудь, кажется, существует файл, звоня ld.so с файлом, которые больше не существуют. Это означает, что я больше не могу использовать склонный - добираются, чтобы установить или обновить мои зависимости!
Я выполняю Lubuntu 16.04.
Я полагаю, что это начало происходить из-за автоматического обновления, которое произошло с Nvidia CUDA. Начиная на прошлой неделе, я начал видеть, что это выстраивает в линию шоу в моем терминале после выполнения команд, которые не имеют никакого отношения к CUDA.
ERROR: ld.so: object '/usr/lib/nvidia-375/libnvidia-ml.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
Я пошел для изучения этого и нашел, что файл/usr/lib/nvidia-375/libnvidia-ml.so не существовал в моей системе, что вместо этого был libnvidia-ml.so файл в папке, которая, казалось, была для обновления того же пакета,/usr/lib/nvidia-382.
Я думал, что с перезагрузкой и некоторыми обновлениями эта проблема уйдет, но сегодня я понимаю, что больше не могу делать самый склонный - получают команды. Например, когда я выполняю команду установки, я получаю огромный вывод журнала, который включает вышеупомянутую строку сотни времен, и установка в конечном счете перестала работать.
У меня есть копировать-и-вставлять из тех выводов в суть (это было слишком большим для вставления этого сообщения). Это было результатом вывода от попытки работать sudo apt-get install vlc
(но это перестало работать так же с любой установкой). https://gist.github.com/travellingprog/00a08cff1019f7a12d36b975dff62c92
Я даже не использую CUDA в эти дни, таким образом, это является особенно раздражающим. Одна из вещей, которые я попробовал, состояла в том, чтобы удалить nvidia-382. Само удаление, кажется, работало, и это, кажется, удалило CUDA 9 наряду с ним, но проблема все еще сохраняется.
Вещь, я понятия не имею, в чем пакет или файл продолжают просить этот несуществующий файл/usr/lib/nvidia-375.
Кто-то может помочь?
Обновление 01.11.2017
Я, кажется, получаю эту ошибку каждый раз, когда я выполняю a sudo
команда.
Я пытался работать ldd /usr/bin/sudo
и ldd /usr/bin/apt-get
и ни один из них не перечисляет этот файл Nvidia. Я посмотрел в папке,/etc/ld.so.conf.d, и нашел файл названным cuda-9-0.conf, несмотря на то, что CUDA должен быть удален. Таким образом, я переименовал его к cuda-9-0.backup и работал sudo ldconfig
.
Это не зафиксировало его, я все еще надеваю сообщение об ошибке каждый sudo
команда.
Я также решил проверить кэш, и я не уверен, указывает ли это на проблему:
# sudo ldconfig -p | grep nvidia
ERROR: ld.so: object '/usr/lib/nvidia-375/libnvidia-ml.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
libnvidia-gtk3.so.384.81 (libc6,x86-64) => /usr/lib/libnvidia-gtk3.so.384.81
libnvidia-gtk2.so.384.81 (libc6,x86-64) => /usr/lib/libnvidia-gtk2.so.384.81
Благодаря ответу @muru и комментарию @pbhj к тому ответу, я нашел, что проблема была то, что переменная среды LD_PRELOAD
устанавливался на "/usr/lib/nvidia-375/libnvidia-ml.so" в файле /etc/environment
.
Я, скорее всего, добавил строку в том файле сам давным-давно, когда я сначала настроил CUDA. Я предполагаю, что это было взломом к проблеме, которую я имел в то время, который потребовал установки LD_PRELOAD в sudo
уровень.
Как @muru продемонстрированный, довольно легко воспроизвести сообщение об ошибке путем установки переменной среды LD_PRELOAD на файл, который не существует. Однако, мои файлы инициализации оболочки не установили его, и env | grep LD_PRELOAD
возвращенный ничто.
Однако (благодаря комментарию @pbhj), я узнал это при выполнении sudo apt-get update
отобразил бы ошибку тонна времен в выводе, sudo env -u LD_PRELOAD apt-get update
только отображенный это однажды, в самом верху вывода. Затем я нашел это sudo env | grep LD_PRELOAD
показал, что это было действительно установлено на несуществующий файл, для sudo
команды.
Кроме /etc/environment
, любой имеющий эту проблему должен также посмотреть на файл /etc/sudoers
(с которым необходимо отредактировать sudo visudo
) и любые файлы в папке /etc/sudoers.d/
.
Вы пробовали с:
dpkg-reconfigure nvidia-***
Это может решить вашу проблему, перенастроить и переустановить при необходимости!
Вы, кажется, установили LD_PRELOAD
переменная среды где-нибудь:
$ /bin/true
$ export LD_PRELOAD=/usr/lib/nvidia-375/libnvidia-ml.so
$ /bin/true
ERROR: ld.so: object '/usr/lib/nvidia-375/libnvidia-ml.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
Я предложил бы, чтобы Вы проверили свои файлы инициализации оболочки (~/.{bashrc,profile}
, /etc/{bash.bashrc,profile,profile.d/*}
). Или выполненный эта команда:
PS4=' ${BASH_SOURCE}:${LINENO} ' bash -lixc exit |& grep LD_PRELOAD