前言
最近接触到一个基于Ubuntu的Linux发行版——Pop!_OS。听说它对驱动支持友好,好用流畅,还把Snap换成了Flatpak,于是我也去尝试了一下。只不过,马上我就遇到了2个软件包安装的问题,下面是我的记录过程。
先说明一下我的环境:系统为Pop!_OS 22.04 LTS,系统安装在VMWare虚拟机内,4G内存,安装系统使用默认的Clean Install(全盘安装)并选择简体中文语言。安装后为apt添加清华源(Ubuntu)和安装vim(sudo apt install vim
)、VMWare Tools(默认安装)。另外使用apt-mark
设置linux内核不更新 (hold了linux-headers-generic、linux-image-generic、linux-generic三个软件包)
neofetch
新安装一个Linux发行版,用neofetch显示一下系统信息也是很不错的选择。而当我输入sudo apt install neofetch
时,遇到了如下提示:
denvo@pop-os:~ $ sudo apt install neofetch
[sudo] denvo 的密码:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:
下列软件包有未满足的依赖关系:
pop-desktop : 预依赖: pop-de-gnome 但是它将不会被安装
依赖: flatpak 但是它将不会被安装
依赖: xorg 但是它将不会被安装
依赖: gvfs-backends
依赖: gvfs-fuse 但是它将不会被安装
依赖: libcanberra-gtk-module 但是它将不会被安装
依赖: libglib2.0-bin
推荐: touchegg 但是它将不会被安装
推荐: pop-shop 但是它将不会被安装
推荐: pop-transition 但是它将不会被安装
推荐: popsicle-gtk 但是它将不会被安装
推荐: ibus-table-emoji
推荐: libavcodec58
推荐: libreoffice-calc 但是它将不会被安装
推荐: libreoffice-impress 但是它将不会被安装
推荐: libreoffice-writer 但是它将不会被安装
推荐: com.github.donadigo.eddy 但是它将不会被安装
推荐: hidpi-daemon 但是它将不会被安装
推荐: libreoffice-ogltrans
推荐: network-manager-config-connectivity-pop 但是它将不会被安装
推荐: sessioninstaller 但是它将不会被安装
E: 错误,pkgProblemResolver::Resolve 发生故障,这可能是有软件包被要求保持现状的缘故。
denvo@pop-os:~ $
主要的提示是pop-desktop : 预依赖: pop-de-gnome 但是它将不会被安装
。
我再输入sudo apt-mark showhold
,显示如下,上面提示的软件包没有被hold。
denvo@pop-os:~ $ sudo apt-mark showhold
linux-generic
linux-headers-generic
linux-image-generic
denvo@pop-os:~ $
我再尝试更新软件包(sudo apt upgrade
),完成之后再尝试安装neofetch,结果仍然如此。最终的解决方案是:安装更高级的软件包管理工具aptitude(sudo apt install aptitude
),然后使用sudo aptitude install neofetch
安装neofetch。
现在的neofetch就安装成功了。
denvo@pop-os:~ $ neofetch
///////////// denvo@pop-os
///////////////////// ------------
///////*767//////////////// OS: Pop!_OS 22.04 LTS x86_64
//////7676767676*////////////// Host: VMware Virtual Platform None
/////76767//7676767////////////// Kernel: 6.9.3-76060903-generic
/////767676///*76767/////////////// Uptime: 43 mins
///////767676///76767.///7676*/////// Packages: 1791 (dpkg)
/////////767676//76767///767676//////// Shell: bash 5.1.16
//////////76767676767////76767///////// Resolution: 1714x922
///////////76767676//////7676////////// DE: GNOME 42.9
////////////,7676,///////767/////////// WM: Mutter
/////////////*7676///////76//////////// WM Theme: Pop
///////////////7676//////////////////// Theme: Pop [GTK2/3]
///////////////7676///767//////////// Icons: Pop [GTK2/3]
//////////////////////'//////////// Terminal: gnome-terminal
//////.7676767676767676767,////// CPU: Intel Xeon E5-2660 0 (8) @ 2.199GHz
/////767676767676767676767///// GPU: 00:0f.0 VMware SVGA II Adapter
/////////////////////////// Memory: 2059MiB / 3868MiB
/////////////////////
/////////////
denvo@pop-os:~ $
Clash Verge Rev
对于有特殊需求来说,这个软件几乎是必装。我在Clash Verge Rev的github上下载了2.2.3版本的deb安装包,然后使用sudo apt install ./Clash.Verge_2.2.3_amd64.deb
安装软件,输出如下:
denvo@pop-os:~ $ sudo apt install ./Clash.Verge_2.2.3_amd64.deb
[sudo] denvo 的密码:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
注意,选中 'clash-verge' 而非 './Clash.Verge_2.2.3_amd64.deb'
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:
下列软件包有未满足的依赖关系:
libnma-common : 破坏: network-manager-gnome (< 1.30.0) 但是 1.24.0-1ubuntu3 正要被安装
pop-desktop : 预依赖: pop-de-gnome 但是它将不会被安装
E: 错误,pkgProblemResolver::Resolve 发生故障,这可能是有软件包被要求保持现状的缘故。
denvo@pop-os:~ $
更新所有软件包后,再安装软件,结果类似。于是我打算先用dpkg(sudo dpkg -i ./Clash.Verge_2.2.3_amd64.deb
)安装Clash Verge Rev,后续再解决依赖。
denvo@pop-os:~ $ sudo dpkg -i ./Clash.Verge_2.2.3_amd64.deb
正在选中未选择的软件包 clash-verge。
(正在读取数据库 ... 系统当前共安装有 214764 个文件和目录。)
准备解压 ./Clash.Verge_2.2.3_amd64.deb ...
正在解压 clash-verge (2.2.3) ...
dpkg: 依赖关系问题使得 clash-verge 的配置工作不能继续:
clash-verge 依赖于 libwebkit2gtk-4.1-0;然而:
未安装软件包 libwebkit2gtk-4.1-0。
dpkg: 处理软件包 clash-verge (--install)时出错:
依赖关系问题 - 仍未被配置
正在处理用于 gnome-menus (3.36.0-1.1ubuntu3) 的触发器 ...
正在处理用于 desktop-file-utils (0.26-1ubuntu3) 的触发器 ...
正在处理用于 hicolor-icon-theme (0.17-2) 的触发器 ...
在处理时有错误发生:
clash-verge
denvo@pop-os:~ $
现在安装好的Clash Verge Rev是打不开的,我们需要为其补全依赖。我们先使用sudo apt --fix-broken install
,发现apt的建议是删除Clash Verge Rev,这显然不是我们想要的。于是我再尝试sudo aptitude -f install
,提示如下:
denvo@pop-os:~ $ sudo aptitude -f install
下列仅部分安装的软件包将被配置:
clash-verge{b}
将不会安装,升级或者删除任何软件包。
0 个软件包被升级,新安装 0 个,0 个将被删除, 同时 773 个将不升级。
需要获取 0 B 的存档。解包后将要使用 0 B。
下列软件包存在未满足的依赖关系:
clash-verge : 依赖: libwebkit2gtk-4.1-0 但它将不会被安装
下列动作将解决这些依赖关系:
删除 下列软件包:
1) clash-verge [2.2.3 (now)]
是否接受该解决方案?[Y/n/q/?]
aptitude的第一个解决方案也是删除Clash Verge Rev。我们不接受这个解决方案,输入n
,然后回车:
是否接受该解决方案?[Y/n/q/?] n
下列动作将解决这些依赖关系:
安装 下列软件包:
1) libjavascriptcoregtk-4.1-0 [2.48.1-0ubuntu0.22.04.1 (jammy-security, jamm
2) libsoup-3.0-0 [3.0.7-0ubuntu1 (jammy-updates)]
3) libsoup-3.0-common [3.4.4-5ubuntu0.2 (noble-security, noble-updates)]
4) libwebkit2gtk-4.1-0 [2.48.1-0ubuntu0.22.04.1 (jammy-security, jammy-updat
是否接受该解决方案?[Y/n/q/?]
这次至少没有让我们删除软件包了,并且能安装libwebkit2gtk-4.1-0,而这正是这个软件包的依赖,与我们的目标契合。所以这次我们接受这个解决方案。输入y
,回车,等待其完成安装过程。然后我们就能在应用栏找到刚才安装的Clash Verge Rev,并且还能正常打开了。
结尾
Pop!_OS是一个不错的系统,只是易用性不及上游的Ubuntu和同样基于Ubuntu的Linux Mint。Ubuntu和Linux Mint至少对这2个软件的安装都很简单,不存在依赖的问题。希望Pop!_OS能继续改进下去!