我有一个可以用命令“run-binary”(不是实际名称)执行的二进制文件,并确定它按照以下路径执行:
john@johns-PC:~$ which run-binary
/home/john/.local/bin/run-binary
我已经下载并解压了更新版本的 run-binary。有 2 个问题:
- 根据“最佳实践”,我应该将新的、解压后的运行二进制文件放在哪里?
- 完成上述 #1 操作后,如何更新 /home/john/.local/bin/run-binary 以便“run-binary”从新安装的位置执行?
答案1
按照 PATH 设置中列出的顺序搜索可执行文件的名称。
/home/vanadium/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
因此,安装在中的可执行文件.local/bin
将优先于列出的其他文件夹中具有相同名称的可执行文件。
1. 根据“最佳实践”,我应该将新的、解压后的运行二进制文件放在哪里?
一定要保留您想要使用的那个.local/bin/
。如果您想使用相同的命令来启动它,则重命名以前的版本(例如.local/bin/run-binary-versionnumber
)或将其移动到另一个文件夹,或者更好的是,参见下一点。
2. 完成上述 #1 后,如何更新 /home/john/.local/bin/run-binary 以便“run-binary”从新安装的位置执行?
如果要保留可执行文件的先前版本,好的做法是将每个版本放在其专用文件夹中,或者,如果是单个可执行文件,则将其放在文件夹中.local/bin
但使用不同的名称,例如run-binary-versionnumber
。然后,您可以在 中创建一个符号链接,并.local/bin
以您通常想要运行它的方式命名,例如run-binary
。
这样,当你运行 时,你选择的版本就会启动run-binary
。你仍然可以通过指定特定名称轻松运行其他版本run-binary-versionnumber
。
您可以使用文件管理器或命令创建符号链接
ln -s ~/.local/bin/run-binary-versionnumber ~/.local/bin/run-binary
答案2
这可以通过 update-alternatives 命令来处理。
我建议查看它的手册页。在那里,您可以找到安装、列出、删除、选择要执行的二进制程序的首选版本的语法。
--list 子命令的一个示例是
$ update-alternatives --list java
/usr/lib/jvm/java-11-openjdk-amd64/bin/java
详细文档可参见
man update-alternatives