我应该把新建的软件放在哪里?

我应该把新建的软件放在哪里?

我一直对在 Linux(Ubuntu)中安装软件感到好奇。因为我习惯了 Windows 操作系统,所以每个软件都是通过某种“向导”安装的,通常我不需要配置任何东西,只需单击“下一步”即可,但在 Linux 世界中,有很多软件需要通过运行一些命令来构建,通常是一堆 .c 文件。即使我知道 Linux 系统文件系统的结构,但我仍然不完全理解构建后每个文件应该放在哪里,例如,一些软件有可执行文件和配置文件,这两个文件应该以某种方式分开放置。有时,为了使可执行文件可搜索,我不能简单地将所有内容都放在我的自定义文件夹中。我强烈认为应该有一个在 Linux 机器上安装软件的惯例(尤其是那些需要从命令构建的软件)。那么,有惯例吗?如何使我安装的软件文件井井有条,这样它们就不会散落。

答案1

所有用 C、C++、Java、C# 等语言编写的软件都需要编译。无论您使用的是 Windows、OS X、Android、iOS、Ubuntu 还是任何其他 GNU/Linux 发行版,这都是同样正确的。这与 Linux 没有任何关系,只是人们在 Linux 上分发源代码更为常见。在 Windows 中,您通常只允许运行该程序,而永远不会获得 .c 文件,这解释了该程序实际上对您的系统做了什么。

如果您只获得源代码,那么这肯定表明该软件要么非常专业,要么不适合普通用户使用,而是供开发人员使用。否则,您将获得一个 .deb 文件以供双击。您不需要任何向导,除非开发人员需要您对其进行配置,在这种情况下他们会显示对话框。

无论如何,源包应该有一个构建脚本,它将把所有完成的文件放在正确的位置。这真的很简单。首先,您将运行一个程序来使软件适应您的系统。然后您将编译该软件,然后安装它。这一切都是自动的。旧的方法是运行类似 的程序,./configure; make && sudo make install但这会将应用程序安装在包系统之外,这是一件坏事,因为它无法使用常规工具卸载,并且可能会与您安装的其他软件冲突。因此,您将使用 checkinstall 首先创建一个包,然后安装该包。

因此,该过程通常是这样的:

./configure
make
sudo checkinstall

如果您不想在正常位置安装软件,那么您可以使用./configure --PREFIX=/some/directory(通常是/opt)。

此页包含详细信息和真实示例:https://help.ubuntu.com/community/CompilingSoftware

相关内容