打包和编译的应用程序共存

打包和编译的应用程序共存

操作系统:Linux Mint 18 Cinnamon 64 位。

由于我已经安装了以下应用程序的打包版本:

file-roller

这是 Archive Manager,我还安装了编译版本,我想确保编译版本优先。

我有 2 个名为 Archive Manager 的菜单项:

/usr/share/applications/file-roller.desktop
/usr/share/applications/org.gnome.FileRoller.desktop

我可能可以删除其中之一。

which file-roller

说:

/usr/local/bin/file-roller

这是我编译的版本:

file-roller 3.27.0, Copyright © 2001-2012 Free Software Foundation, Inc.

但仍然有打包版本:

file-roller 3.16.5, Copyright © 2001-2012 Free Software Foundation, Inc.

看来,当我在 GUI 中请求打开例如 ZIP 文件时,会显示编译版本,我只想确保它的行为一致。

我尝试卸载打包版本:

sudo apt-get purge file-roller

结果:

[sudo] password for vlastimil: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  librpm3 librpmio3 lzop rpm-common rpm2cpio
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  file-roller* mint-meta-cinnamon* nemo-fileroller*
The following held packages will be changed:
  file-roller
0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded.
After this operation, 2,048 kB disk space will be freed.
Do you want to continue? [Y/n] n
Abort.

如您所见,它将删除:

mint-meta-cinnamon

nemo-fileroller

除了鞋底file-roller

所以我把包裹搁置起来,直到有人告诉我如何继续。

答案1

如果您查看文件的内容.desktop,您会发现它们没有指定要运行的命令的路径。所以它们根本不影响优先级。这里唯一重要的方面是您的目录中的顺序PATH,无论如何它都应该在/usr/local/bin前面/usr/bin。 (这解释了您所看到的行为。)

因此,您可以保留已安装的软件包,并且仍然确保将使用您的编译版本。

如果您想避免安装两个版本,您应该使用equivs构建一个假file-roller包(避免删除依赖于它的包),或者自己构建一个更新版本的包。

相关内容