Я пытался зафиксировать поврежденный пакет (libnl-route-3-200) в Ubuntu 16.04. По ошибке я сделал:
sudo apt-get remove libnl-3-200
И не понял важности Сетевой библиотеки.
Теперь, моя система Ubuntu не может соединиться с сетью.
Я получаю сообщение:
Сервисы сети системы не совместимы с этой версией Ubuntu.
Как я могу зафиксировать систему?
Кажется, что Вы все еще можете получить доступ к Интернету от некоторого другого устройства.
Мой совет в таком случае состоял бы в том, чтобы перейти к https://packages.ubuntu.com и искать желаемый пакет для желаемой версии человечности. В Вашем случае (принимающий amd64) это приводит к этой ссылке на загрузку.
Загрузите файл, (дополнительно, но рекомендуемый: проверьте цифровой отпечаток), и скопируйте его в свой компьютер некоторыми средствами (например, флеш-накопитель), Наконец для установки выполненного пакета
sudo dpkg -i libnl-3-200_3.2.27-1ubuntu0.16.04.1_amd64.deb
Пакет теперь вручную установлен, но я принимаю, как только обновление доступно, это будет заменено более новой версией из репозиториев.
Если apt
удаленный, что пакет, это также удалило бы все пакеты, которые зависят от него, который является большей проблемой.
Во-первых, я проверил бы /var/log/apt/history.log
что на самом деле было удалено. Должен быть раздел около конца того файла с датой и временем, когда Вы назвали склонным, ее командная строка и какие пакеты были удалены:
$ cat /var/log/apt/history.log
Этот формат является немного раздражающим для работы с, так использование:
$ sed -e 's/ ([^)]*)//g' -e 's/, / /g' /var/log/apt/history.log
Это удаляет номера версий и запятые от файла журнала для более легкого copy&paste.
Для каждого из пакетов, перечисленных в том блоке под Remove:
или Purge:
, добавьте их к командной строке ①
# apt --print-uris install libnl-3-200
Это даст Вам список URL для загрузки. Обработайте этот список путем добавления
| sed -ne "/http/s/'\([^']*\)'.*/\1/p"
удалить кавычки вокруг URL и имени файла и контрольной суммы, и перенаправить это в файл. Полная командная строка должна выглядеть подобной
# apt --print-uris install libnl-3-200 | sed -ne "/http/s/'\([^']*\)'.*/\1/p" >urls.txt
но с набором больше пакетов.
Скопируйте тот файл на карту с интерфейсом USB, перейдите к другой машине и загрузите эти файлы, например, использование wget
:
$ wget -i urls.txt
Заберите карту с интерфейсом USB к исходной машине, скопируйте .deb
файлы к /var/cache/apt/archives/
:
# cp *.deb /var/cache/apt/archives/
Затем установите путем выполнения склонный как прежде под ①, но без --print-uris
опция. Это должно поднять файлы из каталога кэша и установить их.