首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >升级从17.10 -> 18.04崩溃在qdbus-qt5安装

升级从17.10 -> 18.04崩溃在qdbus-qt5安装
EN

Ask Ubuntu用户
提问于 2018-05-09 22:06:02
回答 1查看 1.1K关注 0票数 3

由于qdbus-qt5安装失败,我无法升级17.10到18.04。这实际上是kubuntu,但我在kubuntu和ubuntu论坛以及启动板上提出了这个问题,但一直未能解决这个问题。升级进行得很顺利,直到到达qdbus-qt5为止,这时它就崩溃了,不能再继续了。我尝试过清除qbdus-qt5 (以及大部分kde ),升级完成了,但仍然无法安装qbdus-qt5,因此无法安装kde。

尝试用qdbus-qt5手动安装dpkg时,会出现以下错误:

代码语言:javascript
复制
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/ it 5/bin/qdbus.dpkg-new文件,但是它正在删除它。如果我触摸这个文件,它会删除它并退出。一个我无法解决的奇怪难题。

在这里,更多的细节在发射台上:

https://answers.launchpad.net/ubuntu/+source/qttools-opensource-src/+question/668259

任何帮助或想法都很感激。请不要“新安装”,那是不切实际的,不是一个解决方案。我真的不知道问题出在哪里,是qdbus-qt5dpkg的问题,还是其他我无法想象的问题,因为其他人似乎没有这个问题,其他包也没有出现这个问题(好吧,其他qtcreator包也会出现这种情况,但在升级之前我已经清除了这些问题)。这是一个真正的混乱,它阻碍了整个升级过程。

更新

Problem解决了。

症状:

从17.10 -> 18.04崩溃,同时试图安装qdbus-qt5。尝试手动安装包会产生以下错误:

代码语言:javascript
复制
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 5/bin/qdbus。目录/usr/lib/qt5 5实际上是到/usr/lib/x86_64-linux-gnu/qt5 5的符号链接。因此ls /usr/lib/‘t 5/bin/生成一个文件列表,这些文件看起来是真实的,但它们实际上并不存在。我注意到执行dpkg-查询--搜索/usr/lib/qt5 5/bin/qdbus--没有产生任何结果,并想知道为什么,因为文件看起来就在那里。

在仿生中,包qdbus-qt5将其二进制文件安装到/usr/lib/qt5 5/bin/qdbus,并在/usr/lib/x86_64-linux-gnu/qt5 5/bin/qdbus中安装一个符号链接,指向/usr/lib/qt5 5/bin/qdbus。

因此,当试图从artful升级到bionic时,包将其二进制文件安装到一个目录中,该目录是指向/usr/lib/x86_64-linux-gnu/qt5 5/bin/的一个符号链接,然后尝试将符号链接安装到实际指向的文件中。我在尝试手动安装包中的文件时发现了这一点,而且文件正在消失。这就是dpkg一直在尖叫的地方。

因此,在升级过程中存在一个问题,即哪些文件是符号链接,哪些是实际的二进制文件。升级过程显然解决不了这个问题。我在某个地方读到,从16.04 -> 18.04升级到七月才开始;这可能是原因之一,也许也是从17.10 -> 18.04升级的原因之一。到目前为止,可能还没有出现其他问题。

请注意,其他几个包也存在同样的问题,这些包大多与connected连接:

代码语言:javascript
复制
qtcreator 
qtcreator-data
qtcreator-doc
qmlscene
qt5-qmake
qttools5-dev-tools
qtbase5-dev-tools

也许还有其他我还没找到的。它们可以在升级之前被删除,尽管在我的测试中,它们在应用下面的黑客之后并没有造成任何问题。

厚颜无耻地为升级修复这个问题:

代码语言:javascript
复制
## 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/

我还注意到区域设置存在某种问题;修复该问题:

代码语言:javascript
复制
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-升级(或发布-升级,或以何种方式进行)。仍然需要偶尔安装-f / dpkg -配置-a / dpkg -i -强制覆盖,但似乎按照预期进行。

“新安装”就这么多了。

PS:感谢那些提供帮助的人。关于dpkg -x包装的一点,以及它产生的奇怪的结果,是我在这个问题上的提示。

EN

回答 1

Ask Ubuntu用户

发布于 2018-05-09 22:36:08

在尝试升级之前,应确保没有安装任何PPA或非标准存储库。这可以通过图形用户界面(如synaptic )实现,但我通常直接查看/etc/apt/sources.list.d/

删除PPA和非标准存储库后,进行更新和安全升级.我更喜欢使用aptitude,因为它会自动解决冲突,这需要在D2中增加交换机。

代码语言:javascript
复制
sudo aptitude update
sudo aptitude safe-upgrade

然后区域升级:

代码语言:javascript
复制
sudo aptitude dist-upgrade

如果您在dist升级方面有问题,可能会有冲突导致过时的包,这是在17.10,但从18.04删除。您可以尝试以下一种或多种方法:

  1. 只安装手动安装的软件包: sudo智能安装、apt-mark showmanual删除包、aptitudesudo aptitude remove [package]抱怨并重新尝试。
  2. 查找并安装可升级的软件包:智能搜索'~U‘-F '%p’您可以尝试同时升级它们: sudo智能删除aptitude -s search '~U' -F '%p'
  3. 查找并删除过时的软件包。要获得过时包的列表,您可以使用: aptitude搜索'~o‘-F '%p’一次性删除它们,您可以尝试以下命令,但是如果它想删除几十个包,则应该跳过它: sudo智能删除aptitude -s search '~o' -F '%p'

然后再试着安装kubuntu桌面或kubuntu满包或任何您想要的软件包:

代码语言:javascript
复制
sudo aptitude install kubuntu-desktop

如果您仍然有问题,deb文件可能已损坏。选择下列之一:

  1. sudo \rm /var/cache/apt/cache/*qdbus* --您可以使用类似的命令来删除任何看起来会导致问题的包的借方。
  2. sudo aptitude clean -这将删除所有缓存的deb文件。
票数 2
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1034244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档