如何使用“apt-get install”选择安装位置?

我正准备在运行Ubuntu 12.04的虚拟机上玩耍。我使用apt-get install git-core从存储库中安装了GIT-CORE。起初我以为apt-get命令会安装在我所在的文件夹中,但我错了。那么有没有办法直接告诉apt-get安装到哪里呢?
还是需要之后移动文件?请告诉我您对此的最佳解决方案。

apt-get命令将安装到系统中 - 在/usr/share等位置。这里有一个问题(链接:http://askubuntu.com/questions/193695/installing-packages-into-local-directory),你可能会觉得有帮助。 - Wilf
很好,我没有找到那个主题。 - Private
1个回答

我不确定是否正确理解了问题,所以答案有两个方向。第一个是:apt-get、deb 软件包和源代码包。第二个是 Git。
首先要说的是,apt-get install 不能选择安装软件包的位置,而是软件包本身指定了这些信息。一个 .deb 文件实际上只是一组压缩目录,并且其中包含了适当的安装目标。简而言之,你无法更改 apt-get install 的软件包安装目的地,因为这与软件包有关,而不是与 apt-get 有关。此外,deb 中的每个位置都对应着 GNU/Linux 系统中的特定目录,所以 "/usr/share/bin" 不能被其他目录更改,同样适用于 "man" 页面、图标等。一旦你修改了 deb 文件,处理起来就会非常棘手。
其次,如果你知道自己在做什么,当然可以绕过路径的限制。但是对于初学者或中级用户来说,这并不是一项简单的任务,因为你需要处理deb软件包规则以修改deb包。要做到这一点,只需使用apt-get下载软件包而不进行安装,解压软件包并编辑deb清单以及可能想要更改的文件/目录。再次强调,这并不被鼓励,并且除非你是想测试这个软件包中的特定功能,否则没有理由这样做。
第三,你总是可以从源代码编译。这基本上会生成一个“便携式”版本的你想要安装的软件,并将其放在你的主文件夹中。当然,这将带来a)许多用于构建源代码的开发依赖项 b)解决编译过程中可能遇到的各种问题。对于初学者来说,这也并不推荐,除非没有其他方法来安装特定的软件(这显然不适用于Git)。
但是,你可能只是想改变git的目标文件夹吧?要做到这一点,你只需要配置你的git账户和要同步的文件夹。这个过程与apt-get无关。可以在这里查看一些指南here或者here。当然,你也可以在官方页面或者git的man页面(在shell中输入man git)上查看相关信息。

有没有一个地方可以下载已编译的Git二进制文件,然后只需解压缩即可使用?无需安装,只需要复制二进制文件。 - Royi
嘿@Royi,我不认为有一个“集中的地方”可以下载纯二进制文件。可能最接近的是Electron仓库(https://electron.atom.io/apps/),但它托管的是完全可用的程序,而不仅仅是二进制文件。由于二进制文件通常与库链接以便正常工作,只有非常简单的程序才能通过它们的二进制文件运行。话虽如此,我相信如果你足够搜索,你会找到一些可供下载的二进制文件,尽管在不知道你要找什么的情况下很难给出准确的答案。 - Rho
我是指一个地方,可以下载静态编译的GIT二进制文件,而不需要安装许多依赖项。 - Royi
嗯...我不认为在任何操作系统中存在这样的东西,因为任何应用程序都依赖于外部库(有些库已经随操作系统一起提供,所以你不需要从外部获取它们)...当然,如果是一个简单的程序,你可以避免下载和编译更多的文件。只有一个文件的可能性取决于你想要的程序的复杂性。再说一次,我知道的最接近的东西是Electron应用程序(编译为".appimage")。我不知道(也不认为存在)类似于在GitHub或其他托管解决方案上的".bin"仓库的东西。 - Rho