我正在使用 Ubuntu 12.04,无法使用 apt-get 找到安装软件的位置。如果我在 dash 中输入 eclipse 或软件名称,它就会出现,但我无法右键单击它并打开文件夹位置。有谁知道如何使用 dash 找到特定软件的确切安装位置。此外,在使用 apt-get 时,是否可以将要安装的软件设置为特定位置。
答案1
概括
- 您不应该,基本上也不能让包管理器将任何文件放置在其默认位置以外的任何地方。
- 您可以使用命令或在 Nautilus 中搜索来找到几乎任何程序(即可执行文件本身)的位置。
which filename
细节
您无法使用 、软件中心或 Ubuntu 中的其他包管理工具更改安装软件的默认位置apt-get
。您可以手动检索包并将其文件提取到您想要的任何位置,但您几乎肯定不想这样做。一般来说,这很麻烦,通常没有理由这样做。
- 如果您认为这样做会对您有益,请在您的问题中添加详细信息,说明为什么这样做以及您需要完成什么。最佳做法取决于此,此外可能还有其他您未考虑过的替代方案。
软件包会在整个文件系统中安装文件,大部分位于 的不同子目录中/usr
。这符合文件系统层次标准它指定了与已安装的程序和库相关的不同类型的文件在 GNU/Linux 系统(即“Linux 发行版”,如 Ubuntu)中的位置。
- 可执行文件本身大部分位于 中。当您在 Ubuntu 上安装程序包时,可执行文件就安装
/usr/bin
在这里。eclipse
eclipse
- 通常会改为使用游戏的可执行文件
/usr/games
。 - 通常会改为使用 NetworkManager 等系统服务的可执行文件
/usr/sbin
。(s
代表“系统”。这些是“系统二进制文件”。) - 图书馆大多进去
/usr/lib
。 - 如果您拥有 64 位 Ubuntu 系统,则 32 位库(安装以支持 32 位可执行文件,因为 64 位系统可以同时运行 64 位和 32 位程序)大多进入
/usr/lib32
。 - 头文件有助于从源代码构建链接到已安装库的软件,它们大部分都放在 中
/usr/include
。这些文件由名称以 结尾的软件包提供-dev
。构建内核模块的头文件除外——它们放在 中/usr/src
。 - 安装的源代码全系统使用提供该软件包的头文件主要放在 中
/usr/src
。构建内核模块的头文件也放在这里。 - 已安装程序和库的系统范围数据文件(即,不是可执行代码,而是数据),当它与体系结构无关时(例如,不取决于您是否拥有 32 位或 64 位处理器),大部分都进入
/usr/share
。请注意,这是针对除包本身更新外保持不变的数据文件,不是您创建的文档。例如,拼写检查器词典的主列表(但不包括用户特定的添加内容)通常会放在 中/usr/share
。 - 几乎每个软件包(以及大多数未通过包管理器安装的软件)的系统范围配置文件都进入
/etc
。
你会注意到我一直说“通常”。这是因为:
- 核心系统文件(包括系统运行所需的最基本程序和库)不放在 中
/usr
。它们放在/
其自身的相应子目录中。例如,提供基本系统实用程序的核心文件放在 中/sbin
。提供基本“用户”实用程序(如系统默认提供的 shell)的核心系统文件放在 中/bin
。核心库放在 中/lib
。等等。 - 有时,软件包可能会将文件安装在其他位置。最常见的位置是
/opt
。 的主要目的/opt
是存储 (1) 选择不将其文件分散到文件系统层次结构中的普通位置,而是全部放在单个目录中的程序(无论这些程序是否使用软件包管理器安装),以及 (2) 由二进制安装程序(而不是通过软件包管理器)安装的程序,并且没有与之关联的软件包。(由用户从源代码手动构建以供全系统使用的程序通常安装在 内的目录中/usr/local
。)
有几种方法可以搜索 Ubuntu 软件包提供的可执行文件和其他文件。
我不知道如何使用 Unity Dash 以可访问的方式告诉您程序的位置。但您可以使用图形文件浏览器 Nautilus 以图形方式完成此操作。
- 打开 Nautilus 窗口并按Ctrl+ F(或单击去>搜索文件...)。
- 输入您要搜索的内容(在本例中为
eclipse
),然后按Enter。 - 默认情况下,这将仅在此特定 Nautilus 窗口中打开的文件夹中进行搜索。但您可以更改这一点。搜索后,更改地点到文件系统(或者您想要搜索的任何位置,您甚至可以指定自定义搜索位置
/usr
)并点击重新加载。
这是您在系统上搜索文件(即不仅仅是 Ubuntu 软件包提供的文件)的方式,并且能够获取有关它们的详细信息。
使用终端(Ctrl++ ),你可以找到像 eclipse 这样的可执行Alt文件T
which
:which eclipse
which
告诉你哪个如果你在终端中输入 eclipse 并按下回车键,则可执行文件(如果有)将会运行。这通常是但不总是,与您在 Unity dash 中搜索相同内容时的第一个搜索结果相同。使用终端,你可以快速找到文件
locate
(因为保存列表的数据库会定期更新)。当你想查找由包提供但实际上不是可执行文件的文件时,这尤其有用。locate eclipse
您可以在以下位置搜索 Ubuntu 软件包中提供的文件packages.ubuntu.com。还有其他方法。
答案2
我担心无法通过 dash 执行此操作。如果您想知道可执行文件路径在哪里,可以使用哪个命令:
which eclipse
但这可能会指向某个“bin”目录,而不是包含数据的目录。这是因为软件组件不是安装在单个目录中,而是安装在多个文件夹中。二进制文件根据其用途保留在 /usr/bin/、/bin、/sbin 等中。配置在 /etc 中,数据在 /usr/share 中,等等。请参阅此文档文件系统层次标准原因是您通常没有单文件夹安装。由于 apt 遵循 FHS,据我所知,无法强制将其安装在不同的位置。
因此,关于 eclipse 安装在哪里,这取决于您要搜索 eclipse 的哪个部分。常见的需求是安装插件,这些插件存储在:/usr/lib/eclipse/plugins。无论如何,我通常更喜欢集成插件管理器。