我使用的是最新的 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
您所在的目录不会影响包管理器安装您请求的包的目的地。