Я новичок в Linux, и я только что установил Ubuntu 18.04 вместе с Windows 10. Он был установлен не на 100% успешно, потому что каждый раз, когда я хочу установить новую программу (например, Adobe Flash Player), терминал показывает мне это:
The following packages have unmet dependencies:
fwupdate : Depends: libfwup1 (= 10-3) but 12-3bionic2 is to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
И когда я пытаюсь sudo apt --fix-broken install
, терминал возвращает:
Preparing to unpack .../fwupdate_12-7~ubuntu18.04.3_amd64.deb ...
rm: cannot remove '/boot/efi/EFI/ubuntu/fwupx64.efi': Input/output error
dpkg: error processing archive /var/cache/apt/archives/fwupdate_12-7~ubuntu18.04.3_amd64.deb (--unpack):
new fwupdate package pre-installation script subprocess returned error exit status 1
Errors were encountered while processing:
/var/cache/apt/archives/fwupdate_12-7~ubuntu18.04.3_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Это ноутбук Sony Vaio. Жесткий диск 1 ТБ - ЦП: i7 3537U - ОЗУ: 8 ГБ
Я думаю, что есть ответ на вашу проблему в этом посте: dpkg: новый предустановочный скрипт возвратил ошибку, выход из состояния 1
Сценарий .preinst пакета для некоторых не работает причина.
Чтобы выяснить, почему, изучите сценарий в /var/lib/dpkg/info/PACKAGENAME.preinst
Если вы хотите точно определить, на какой строке выполняется сценарий, отредактируйте файл .preinst. скрипт и добавьте set -x
сразу после строки #!
. Это включает трассировку выполнения в сценарии.
ПРИМЕЧАНИЕ: Это предполагает, что сценарий .preinst является сценарием оболочки (либо posix sh, либо bash). Почти все сценарии .preinst (и .postinst, .prerm и .postrm) являются сценариями оболочки, но они необязательно должны быть исполняемыми. например, на моем главном настольном компьютере с установленными пакетами 9104, 14 представляют собой сценарии perl, 1 представляет собой скомпилированный исполняемый файл (предустановка bash - он не может предполагать, что уже установлена работающая оболочка), а все остальные - сценарии оболочки ... 9041 - сценарии оболочки POSIX, 63 - сценарии bash. Если .preinst - это perl или python или что-то еще, вам нужно выяснить, как включить режим отладки или трассировки выполнения или аналогичный в этом языке.
Затем выполните dpkg --configure --pending
.
Это заставит dpkg попытаться настроить наполовину установленный пакет. НЕ переустанавливайте его с помощью dpkg -i
, который перезапишет ваш отредактированный скрипт .preinst версией из пакета .deb.
Это может дать вам достаточно информации для решения проблемы. Это может быть что-то простое, например неожиданный или необработанный код выхода из программы (чаще всего. сценарии preinst и т.д. имеют set -e
, чтобы заставить их завершиться при первой ошибке), или предполагают, что каталог уже существует (и это может быть связано с необъявленной зависимостью в файле debian / control пакета - т.е. это должно зависеть от foo, но не зависит. Просто установите foo в любом случае)
После исправления снова запустите dpkg --configure --pending
, и пакет должен быть правильно установлен.
Если Сценарий .preinst содержит ошибки, и вполне вероятно, что сценарии .postinst (и / или .prerm и .postrm) тоже будут. Возможно, вам также придется их исправить.
Не забудьте отправить отчет об ошибке любому, кто сделал пакет, чтобы он мог его исправить.
s файл debian / control - то есть он должен зависеть от foo, но не зависит. в любом случае просто установите foo) После исправления снова запустите dpkg --configure --pending
, и пакет должен быть правильно установлен.
Если скрипт .preinst содержит ошибки, есть разумный вероятность того, что сценарии .postinst (и / или .prerm и .postrm) тоже будут. Возможно, вам также придется их исправить.
Не забудьте отправить отчет об ошибке любому, кто сделал пакет, чтобы он мог его исправить.
s файл debian / control - то есть он должен зависеть от foo, но не зависит. в любом случае просто установите foo) После исправления снова запустите dpkg --configure --pending
, и пакет должен быть правильно установлен.
Если скрипт .preinst содержит ошибки, есть разумный вероятность того, что сценарии .postinst (и / или .prerm и .postrm) тоже будут. Возможно, вам также придется их исправить.
Не забудьте отправить отчет об ошибке любому, кто сделал пакет, чтобы он мог его исправить.