Установка nvidia-opencl-icd-367 ломает менеджер пакетов

14

Я использую графические драйверы ppa. Сегодня я получил диалог обновления, в котором говорилось, что я могу обновить драйвер nvidia до 367.18 (~ gpu16.04.6). Я запустил обновление, как и каждый раз, но это не удалось с

Failed to get unit file state for var-lib-snapd-lib-gl.mount

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

Как обычно, когда мой драйвер Nvidia выходит из строя, я просто удаляю его, sudo apt purge nvidia*чтобы потом заново его очистить.

Делая это в режиме восстановления, удалил все, кроме nvidia-opencl-icd-367пакета, который не удалось с ошибкой выше.

Попытка удалить этот пакет вручную заканчивается следующими ошибками:

введите описание изображения здесь введите описание изображения здесь


Обновление @ 20160605 - Решение:

Следующий ответ V ideonauth решает проблему. Пожалуйста, пройдите все шаги и обязательно перезагрузите компьютер после удаления всего NVIDIA через sudo apt purge nvidia*успешно, без проблем и после переустановки драйвера через sudo apt install nvidia-367.

Это заставит вашего водителя снова работать.

Если это не помогает, попробуйте вручную удалить все старые конфигурации xorg sudo rm /etc/X11/xorg.conf* && sudo rm /etc/X11/xorg.confи заново установить драйвер sudo apt install nvidia-367 --reinstall.

Если это по-прежнему не позволяет войти в систему (Типичная ошибка: Экран входа в систему -> пароль был введен, введите нажатым -> возвращается к экрану входа в систему) попробуйте полностью удалить драйвер Nvidia снова, переключившись в текстовую консоль из экран журнала с Ctrl+ Alt+ F1, войдите под своим именем учетной записи и паролем, загрузите соответствующий драйвер для вашей видеокарты отсюда в консоли, остановите lightdm:

sudo service lightdm

Установите двоичный драйвер Nvidia, используя sudo ./NVIDIA-VERSION...

и перезагрузите систему:

sudo reboot now

система:

Ubuntu 16.04 64bit

Linux 4.4.0-22

Flatron
источник
1
У меня была такая же проблема, как и у вас, но с nvidia-340. ! Я использовал метод Videonauth № 2, и в конце я столкнулся с дополнительной проблемой: не удалось установить nvidia-361 из-за ошибки libcuda1-340. libcuda1-340 не может быть удален. Я принудительно удалил libcuda1 так же, как и с nvidia-opencl-icd-340. После этого nvidia-361 установлена ​​нормально. Спасибо Видеонавту за радикальный подход!
ipse lute
Я могу подтвердить эту проблему. И пока вижу один способ: отключить ppa-repo для nvidia.
ipeacocks
Если ваша проблема была решена в ответе, пожалуйста, не повторяйте шаги в вашем вопросе. Вместо этого примите ответ и проголосуйте за него. Если вы хотите предложить изменения в ответе, нажмите ссылку « Изменить» под ним, чтобы предложить изменения.
Дэвид Фёрстер

Ответы:

17

Хорошо, чтобы исправить это (у меня были те же проблемы сегодня утром), у вас есть два способа:

1. Чистый способ, предложенный мне командой launchpad по электронной почте:

Чтобы обойти эту проблему, вы можете сначала переключиться в текстовую консоль, нажав Ctrl+ Alt+ F1, а затем остановите менеджер дисплея , используя sudo systemctl stop <displaymanager>, где lightdm, gdm, sddm, или в зависимости от того другого менеджера дисплеев вы используете.

Остановка X очищает сбой размонтирования, позволяя вам успешно обновиться до ~ gpu16.04.6, который больше не содержит дефектного патча, используя sudo apt upgrade. На этом этапе вы можете запустить систему sudo systemctl rebootдля перезагрузки системы, которая должна вернуть ее к нормальной работе.

Если вы все еще получаете сообщение об ошибке, указывающее

Unit var-lib-snapd-lib-gl.mount not loaded.

вы можете обойти эту проблему, запустив

sudo touch /lib/systemd/system/var-lib-snapd-lib-gl.mount && sudo systemctl daemon-reload

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

sudo touch /lib/systemd/system/var-lib-snapd-lib-gl.mount

2. То, как я подошел к нему сегодня утром путем грубой форсировки полного удаления:

Чтобы обойти эту проблему, вы можете сначала переключиться на текстовую консоль, нажав Ctrl+ Alt+ F1, а затем начать снова с

sudo apt-get remove --purge nvidia*

с последующим

sudo dpkg --remove --force-all nvidia-opencl-icd-367`

Затем sudo apt-get autoremoveследует a sudo apt-get cleanи снова a sudo apt-get remove --purge nvidia.

Теперь в нем должны быть упомянуты все пакеты, которые вы не можете удалить, затем переключитесь /var/lib/dpkg/infoи найдите вызываемые файлы <packagename>.prerm, <packagename>.postinstи <packagename>.postrmдля всех этих файлов сделайте следующее ( будьте осторожны, это не разумный способ удалить что-то ):

sudo su
> <packagename>.prerm
> <packagename>.postinst
> <packagename>.postrm
exit

Когда вы это сделаете, начните удаление как обычно с

sudo apt-get remove <packagename>

делайте это, пока все не будет очищено, затем

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

и затем переустановите драйвер nvidia снова, который должен быть исправлен

sudo apt-get install nvidia-367
Videonauth
источник
Спасибо, я смог полностью удалить драйвер Nvidia, следуя твоему второму предложению. Я все еще не на рабочем столе («типичный» вход в систему -> вернуться к проблеме с экраном входа), в настоящее время я пытаюсь установить двоичный драйвер NVIDIA (который генерирует новый x11.conf, который обычно работает)
Flatron
1
Рад, что смог помочь :) У меня было это утро и мне было очень тяжело, пока я не нашел способ исправить. Я отправил электронное письмо команде ppa об этом и предложенных решениях от них. Второе решение - то, что я сделал этим утром, чтобы это исправить.
Видеонавт
Прекрасно, только проблема с Linux - это всегда графический драйвер. В основном никаких проблем с edgers ppa, но иногда это может сделать ваше воскресное утро борьбой;)
Flatron
1
Я нахожусь на единстве, у меня была такая же проблема, и я использовал обычный ppa Graphics Driver Team, поэтому я удалил тег edgers из вашего вопроса, все это происходит из-за неисправного патча, который вышел, упакован и отправлен.
Видеонавт
Благодарю. Тач сделал свое дело. Довольно глупо, если это может закончиться неудачей таким роковым образом только потому, что отсутствует какой-то явно неважный файл?
бинанома