我可以从任意目录安装 Linux 中的程序吗?

我可以从任意目录安装 Linux 中的程序吗?

我使用的是最新的 Linux Mint 21.2。

我可以从任何目录安装程序吗?比如我要安装vim,我可以sudo apt install vim在任意目录下写,linux就可以正确安装吗?例如,我创建一个随机目录:/home/***/dir1/dir2/然后我去那里输入sudo apt install vim,它是否将 vim 安装到/home/***/dir1/dir2/或其他目录?

卸载程序怎么样?我可以在系统中的任何地方执行此操作吗?

用 更新程序怎么样sudo

答案1

是的,一点没错。运行命令的位置不会产生任何影响,除非您使用的工具需要当前目录中的文件。任何系统范围的工具都不是这种情况,当然也不是apt.如果您手动安装某些东西(即不是通过使用apt而是通过从源代码下载和编译)安装,则可能会发生这种情况,但即使这种情况也很少见。只要您提供正确的输入路径,即使需要输入文件的命令也可以从任何地方运行。

所以不,作为一般规则,当然在 的情况下apt,您所在的位置完全无关,您可以从任何位置运行任何命令。

答案2

如果您使用包管理器,那么是的,您安装程序的目录并不重要。将要安装的软件包知道每个文件所属的位置,除非您特别指定其他目的地,否则像 apt 这样的软件包管理器将使用这些位置。

然而,并不是每个软件都附带现成的 apt-installable 软件包,还有其他分发软件的方法:

  • 有些以所谓的 tarball 形式出现,就像 .zip 存档一样。您只需解压存档即可安装它,并且在大多数情况下您不必成为 root。因此,如果您已进入/home/Programmer/dir1/dir2并提取 tarball,则需要/home/Programmer/dir1/dir2/program稍后致电。例如,情况就是如此现代CSV或者Jetbrains 理念

  • 有些软件以 AppImage 的形式提供,这与 tarball 的想法相同,但甚至不需要解压。例如,这适用于乔普林或者吉他。您只需将文件下载到任何地方,然后从下载文件的位置运行它。

  • 如果您自己编译源代码,通常会出现一个configure步骤,说明安装软件的位置,并make install在最后将所有内容复制到您想要的位置。

在后一种情况下,您需要确保您的文件$HOME/bin位于 中$PATH,并且您将创建一个符号链接ln -s $HOME/dir1/dir2/program $HOME/bin/program,这样您就不需要使用路径来调用该程序。

人们以这种方式分发软件的原因主要是因为这对他们来说更容易;不同的 Linux 发行版附带不同的软件包管理器(apt、dnf、rpm/yum、yast/zypper 等),为所有这些软件包提供软件包可能非常具有挑战性。

免责声明:这并不是为了以任何方式认可链接的软件,只是我想给出一些以这些方式安装的软件的示例(我知道这些是因为我使用它们)

答案3

您所在的目录不会影响包管理器安装您请求的包的目的地。

相关内容