Обновление с 17.10 до 18.04 при сбое при установке qdbus-qt5

Я не могу обновить 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 в пакете и о странных результатах, которые он дал, вот что подсказало мне это.

3
задан 12 May 2018 в 05:10

2 ответа

Прежде, чем попытаться обновить, необходимо удостовериться, что никакой 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. Можно попробовать один или несколько из следующего:

  1. Установите только вручную установленные пакеты:

    sudo aptitude install `apt-mark showmanual`
    

    Удалите пакеты aptitude жалуется на с sudo aptitude remove [package] и перепопытка.

  2. Найдите и установите обновляемые пакеты:

    aptitude search '~U' -F '%p'
    

    Можно попытаться обновить их внезапно с:

    sudo aptitude remove `aptitude -s search '~U' -F '%p'`
    
  3. Найдите и удалите устаревшие пакеты. Для получения списка пакетов, которые являются устаревшими можно использовать:

    aptitude search '~o' -F '%p'
    

    Для удаления их внезапно можно попробовать следующую команду, но если она хочет удалить больше чем несколько дюжин пакетов, необходимо пропустить ее:

    sudo aptitude remove `aptitude -s search '~o' -F '%p'`
    

Затем попробуйте еще раз устанавливать kubuntu-настольный или kubuntu-полный или безотносительно пакетов, которые Вы хотите:

sudo aptitude install kubuntu-desktop

В случае, если у Вас все еще есть проблемы, deb файл может быть поврежден. Выберите одно из следующего:

  1. sudo \rm /var/cache/apt/cache/*qdbus* Можно использовать подобные команды для удаления debs любых пакетов, которые, кажется, вызывают проблемы.

  2. sudo aptitude clean – Это удалит, все кэшировали deb файлы.

2
ответ дан 1 December 2019 в 16:52

При первой проверке Ваша файловая система с 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
0
ответ дан 1 December 2019 в 16:52

Другие вопросы по тегам:

Похожие вопросы: