Я не могу обновить 17.10 до 18.04, потому что установка qdbus-qt5
не удалась. Это на самом деле kubuntu, но я задал вопрос на форумах kubuntu и ubuntu, а также на панели запуска, и не смог решить проблему. Апгрейд проходит нормально, пока не достигнет qdbus-qt5
, после чего он падает и не может идти дальше. Я попытался очистить qbdus-qt5
(и большую часть kde вместе с ним), и обновление прошло, но все еще не могу установить qbdus-qt5
и, следовательно, kde.
Пытаясь вручную установить qdbus-qt5
с dpkg
, я получаю следующую ошибку:
root@Crynfyd:/# dpkg -i /var/cache/apt/archives/qdbus-qt5_5.9.5-0ubuntu1_amd64.deb
(Reading database ... 839516 files and directories currently installed.)
Preparing to unpack .../qdbus-qt5_5.9.5-0ubuntu1_amd64.deb ...
Unpacking qdbus-qt5 (5.9.5-0ubuntu1) ...
dpkg: error processing archive /var/cache/apt/archives/qdbus-qt5_5.9.5-0ubuntu1_amd64.deb (--install):
unable to open '/usr/lib/qt5/bin/qdbus.dpkg-new': No such file or directory
Errors were encountered while processing:
/var/cache/apt/archives/qdbus-qt5_5.9.5-0ubuntu1_amd64.deb
В основном предполагается создание файла / usr / lib / qt5 / bin / qdbus.dpkg-new , но он удаляет его. Если я касаюсь файла, он удаляет его и выходит. Какая-то странная загадка, которую я не могу обойти.
Подробнее в панели запуска здесь:
https://answers.launchpad.net/ubuntu/+source/qttools-opensource-src/+question/668259
Любая помощь или идеи высоко ценится. Пожалуйста, не «новая установка», это нецелесообразно и не является решением. Я действительно не знаю, где проблема, является ли проблема с qdbus-qt5
, dpkg
, или чем-то еще, что я не могу вообразить, поскольку у других, кажется, нет этой проблемы, и это не происходит с другими пакетами (ну, это происходит с другими qtcreator
пакетами, но я удалил их перед обновлением). Это настоящий беспорядок, и он блокирует весь процесс обновления.
Проблема решена.
Симптом:
Сбой при обновлении с 17.10 -> 18.04 при попытке установить qdbus-qt5. Попытка установить пакет вручную приводит к этой ошибке:
root@Crynfyd:/# dpkg -i /var/cache/apt/archives/qdbus- qt5_5.9.5-0ubuntu1_amd64.deb
(Reading database ... 839516 files and directories currently installed.)
Preparing to unpack .../qdbus-qt5_5.9.5-0ubuntu1_amd64.deb ...
Unpacking qdbus-qt5 (5.9.5-0ubuntu1) ...
dpkg: error processing archive /var/cache/apt/archives/qdbus-qt5_5.9.5-0ubuntu1_amd64.deb (--install):
unable to open '/usr/lib/qt5/bin/qdbus.dpkg-new': No such file or directory
Errors were encountered while processing:
/var/cache/apt/archives/qdbus-qt5_5.9.5-0ubuntu1_amd64.deb
Вот проблема:
В хитросплетении пакет qdbus-qt5 устанавливает свой двоичный файл в / usr / lib / x86_64-linux-gnu / qt5 / bin / qdbus. Каталог / usr / lib / qt5 на самом деле является символической ссылкой на / usr / lib / x86_64-linux-gnu / qt5. Так что ls / usr / lib / qt5 / bin / создает список файлов, которые выглядят реальными, но на самом деле их там нет. Я заметил, что выполнение dpkg-запроса --search / usr / lib / qt5 / bin / qdbus не дало результатов, и удивился, почему, поскольку файлы выглядели так, как будто они там были.
В bionic пакет qdbus-qt5 устанавливает свой двоичный файл в / usr / lib / qt5 / bin / qdbus и устанавливает символическую ссылку в / usr / lib / x86_64-linux-gnu / qt5 / bin / qdbus, которая указывает на / usr / lib / qt5 / bin / qdbus.
Поэтому при попытке перейти с хитрого на бионический пакет устанавливает свой двоичный файл в каталог, который является символической ссылкой на / usr / lib / x86_64-linux-gnu / qt5 / bin / и затем пытается установить символическую ссылку на файл, на который фактически указывает каталог. Я обнаружил это, пытаясь вручную установить файлы из пакета, и файлы просто исчезали. Это то, о чем dpkg кричал все время.
Следовательно, существует проблема в процессе обновления, при котором файлы являются символическими ссылками, а какие являются действительными двоичными файлами. Процесс обновления, очевидно, не решает эту проблему. Я где-то читал, что обновление с 16.04 -> 18.04 не будет действовать до июля; это может быть одной из причин, и, возможно, та же самая проблема, идущая от 17.10 -> 18.04. Могут быть и другие проблемы, которые еще не всплыли.
Обратите внимание, что эта же проблема существует и для нескольких других пакетов, в основном связанных с QT Creator:
qtcreator
qtcreator-data
qtcreator-doc
qmlscene
qt5-qmake
qttools5-dev-tools
qtbase5-dev-tools
И, возможно, других, которые я еще не нашел. Их можно удалить до обновления, хотя в моем тесте они не вызывали никаких проблем после применения хака, приведенного ниже.
SHAMELESS HACK, чтобы исправить это для обновления:
## Remove the symlink:
sudo rm /usr/lib/qt5
## Do a hard copy of the relevant files:
sudo cp -r /usr/lib/x86_64-linux-gnu/qt5 /usr/lib/
Я также заметил, что есть какая-то проблема с локалями; исправить это:
export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
sudo locale-gen en_US.UTF-8
sudo dpkg-reconfigure locales
Затем обновите / dist-upgrade (или сделайте-выпустите-обновление, или как вы это делаете). Все еще требовался случайный apt-get install -f / dpkg --configure -a / dpkg -i --force-overwrite, но, похоже, все прошло как положено.
Так много для "новой установки".
PS: Спасибо тем, кто предложил помощь. Немного о dpkg -x в пакете и о странных результатах, которые он дал, вот что подсказало мне это.
Прежде, чем попытаться обновить, необходимо удостовериться, что никакой PPAs или нестандартные репозитории не установлены. Это может быть сделано от GUI, такой как synaptic
, но я обычно смотрю непосредственно в /etc/apt/sources.list.d/
.
После удаления PPAs и нестандартных репозиториев, обновления и безопасного обновления. Я предпочитаю использовать aptitude
потому что это автоматически разрешает конфликты, который требует дополнительных переключателей в apt
/apt-get
/dpkg
:
sudo aptitude update
sudo aptitude safe-upgrade
Затем dist-обновление:
sudo aptitude dist-upgrade
Если у Вас есть проблемы с dist-обновлением, существуют, вероятно, вызванные устаревшие пакеты конфликтов, которые были в 17,10, но удалили от 18,04. Можно попробовать один или несколько из следующего:
Установите только вручную установленные пакеты:
sudo aptitude install `apt-mark showmanual`
Удалите пакеты aptitude
жалуется на с sudo aptitude remove [package]
и перепопытка.
Найдите и установите обновляемые пакеты:
aptitude search '~U' -F '%p'
Можно попытаться обновить их внезапно с:
sudo aptitude remove `aptitude -s search '~U' -F '%p'`
Найдите и удалите устаревшие пакеты. Для получения списка пакетов, которые являются устаревшими можно использовать:
aptitude search '~o' -F '%p'
Для удаления их внезапно можно попробовать следующую команду, но если она хочет удалить больше чем несколько дюжин пакетов, необходимо пропустить ее:
sudo aptitude remove `aptitude -s search '~o' -F '%p'`
Затем попробуйте еще раз устанавливать kubuntu-настольный или kubuntu-полный или безотносительно пакетов, которые Вы хотите:
sudo aptitude install kubuntu-desktop
В случае, если у Вас все еще есть проблемы, deb
файл может быть поврежден. Выберите одно из следующего:
sudo \rm /var/cache/apt/cache/*qdbus*
Можно использовать подобные команды для удаления debs любых пакетов, которые, кажется, вызывают проблемы.
sudo aptitude clean
– Это удалит, все кэшировали deb файлы.
При первой проверке Ваша файловая система с fsck
во время начальной загрузки (Переключают GRUB на нижний регистр, выберите Расширенные настройки, выберите.... (режим восстановления) в fsck выбора Меню восстановления - Проверка все файловые системы), или из Ubuntu 18.04 LiveCD/USB.
Затем удостоверьтесь, чтобы у Вас не было поврежденных пакетов:
sudo apt-get update
sudo apt-get install -f
sudo dpkg --configure -a
Удалите загруженный deb-пакет, поскольку он может быть поврежден:
sudo rm /var/cache/apt/archives/qdbus-qt5_5.9.5-0ubuntu1_amd64.deb
Можно попытаться загрузить этот пакет снова
cd /var/cache/apt/archives/
sudo wget http://mirrors.kernel.org/ubuntu/pool/universe/q/qttools-opensource-src/qdbus-qt5_5.9.5-0ubuntu1_amd64.deb
наверняка можно создать папку для qdbus.dpkg-нового:
sudo mkdir -p /usr/lib/qt5/bin/
и установите его вызывающий все проблемы
sudo dpkg -i --force-all qdbus-qt5_5.9.5-0ubuntu1_amd64.deb
sudo apt-get install -f
или установите его с apt-get
:
sudo apt-get install ./qdbus-qt5_5.9.5-0ubuntu1_amd64.deb
Другой hacky путь состоит в том, чтобы извлечь deb-пакет непосредственно с
sudo dpkg -x qdbus-qt5_5.9.5-0ubuntu1_amd64.deb /
и затем спросите apt-get
переустановить его
sudo apt-get install --reinstall qdbus-qt5