为什么 .desktop 文件有冗余目录?

为什么 .desktop 文件有冗余目录?

我知道.desktop已安装的应用程序的文件将位于 中 /usr/share/applications

今天,我偶然发现了该目录/usr/share/app-install/desktop。它包含.desktop与我系统中安装的应用程序相同的文件。

那么目录是什么/usr/share/app-install/desktop?为什么有两个目录用于相同的目的?


更新:感谢@serg;他表示这个问题有答案。

现在我知道这个目录是什么了,但是我还有一个问题:

如果.desktop文件都包含在 中/usr/share/app-install/desktop,那为什么还有 目录/usr/share/applications?让两个目录都保持最新状态难道不是浪费资源吗?

答案1

遇到的文件只不过是指向已安装程序的元文件数据的符号链接。正如 Serg 所解释的那样,使用软件中心的应用程序进入所述文件夹。它们不是真正的程序,而只是系统可以缓存以便下次更快使用的点。让系统收集所有程序并制作元文件并在一个区域中将它们符号链接起来更有效、更高效。

但是 Ubuntu 使用两个独立的软件包管理器。一个是 apt,另一个是软件中心。这反过来又创建了单独的软件包文件系统。这就是 Ubuntu 的处理方式,但这两个系统并没有将它们全部放在一起,而是像一对夫妻一样工作。它们都相互通信以查看其中的内容,都对两者都具有 root 访问权限,但它们不共享彼此安装了哪些程序

答案2

Virusboy 的想法是正确的,经过一番挖掘,我可以确认这/usr/share/app-install与软件管理器有关。此主题提到该文件夹​​与 app-install-data 包相关。简单检查apt-cache search app-install-data后发现:

 $ apt-cache search app-install-data                                                     
app-install-data - Ubuntu applications (data files)
app-install-data-partner - Application Installer (data files for partner applications/repositories)

仔细看看第 14 行和第 15 行

$ apt-cache show app-install-data | nl                                                  
     1  Package: app-install-data
     2  Priority: optional
     3  Section: gnome
     4  Installed-Size: 38425
     5  Maintainer: Michael Vogt <[email protected]>
     6  Architecture: all
     7  Source: app-install-data-ubuntu
     8  Version: 14.10
     9  Filename: pool/main/a/app-install-data-ubuntu/app-install-data_14.10_all.deb
    10  Size: 12815482
    11  MD5sum: 0773479992b257d59c04470d44f737d1
    12  SHA1: 7600aac7d6f69dcfcba458368ad2ca85865735ad
    13  SHA256: 8dd6d1b3add6d9291383bec7e5c2295a9e695c92c5cd39aed270eae24b4606da
    14  Description-en: Ubuntu applications (data files)
    15   This package contains the Ubuntu specific application data and
    16   icons for software-center (and similar tools).
    17  Description-md5: f60778a916e4cfc34f4e6d08cae5fa94
    18  Bugs: https://bugs.launchpad.net/ubuntu/+filebug
    19  Origin: Ubuntu
    20  Supported: 9m
    21  Task: ubuntu-desktop, ubuntu-usb, kubuntu-desktop, kubuntu-full, kubuntu-active-desktop, kubuntu-active-full, edubuntu-desktop, edubuntu-usb, xubuntu-desktop, mythbuntu-frontend, mythbuntu-desktop, mythbuntu-backend-slave, mythbuntu-backend-master, lubuntu-desktop, ubuntustudio-desktop, ubuntu-gnome-desktop, ubuntukylin-desktop, ubuntu-mate-desktop, ubuntu-mate-cloudtop

答案3

解决方法..解决方法..解决方法!

很抱歉以这种方式开始,但这是我关注 Debian/Ubuntu 几年后能想到的。

  1. Debian 有一套打包和存储库规范。它们写于数年前,相当老旧了。

  2. Ubuntu 想要为软件库添加更多功能。出于众所周知的原因,他们不想更新那些旧的规范或标准。

  3. 因此,它们与标准有所不同,具有一些额外的功能(我称之为解决方法,因为他们没有更新/修复上游规范)

    这里列出了我所知道的额外功能:

    • 截图(Debian 解决方案)

      Ubuntu 与 Debian 共享同一网站https://screenshots.debian.net/

    • 变更日志(Debian 解决方案)

      http://changelogs.debian.net/
      http://changelogs.ubuntu.com/changelogs/

    • 图标/桌面文件(Ubuntu 解决方案)

      app-install-data包(涵盖常用工具)

      这些图标/桌面文件/usr/share/app-install/仅适用于 Ubuntu 软件中心,即使软件未安装,也会显示图标,同样适用于 Unity dash 搜索未安装的工具时以及 Unity Launcher 安装工具时显示跳跃图标。

      其中的文件/usr/share/applications来自包本身,软件中心如果不下载并提取它们就无法使用它们。

无论如何,这看起来像一个健康的系统,他们传播多种创新想法,然后几年后回来并就标准达成一致。

看起来他们已经开始合并了,参考:Ubuntu 软件中心将在 16.04 LTS 中被取代

相关内容