因此,当我用谷歌搜索有关此问题的各种变体时,我看到的只是有关如何更新 GitHub 应用程序本身或更新操作系统版本的结果,并且我找不到有关如何更新我已安装的各个应用程序的说明使用 git 克隆。
因此,如果我下载了像 bettercap 或 hcxtools 这样的应用程序,并且我得到了一个响应,要求我从主站更新以修复错误,这是怎么完成的?
如果我只是去覆盖原始文件夹,例如我的 oh my zsh 或我的 powerlevel9k ,它不会清除我喜欢的所有设置和自定义吗???
答案1
您不必擦除/覆盖该文件夹,因为这确实会擦除您所做的任何自定义设置。
您正在寻找的命令是git pull
,这将从存储库中提取任何更改并将它们合并到当前目录中。如果您已向存储库提交了更改,则使用git pull --rebase
将使您的历史记录更清晰,因为它避免了与更新的合并提交。根据您签出代码的方式,您可能需要指定远程(默认为origin
)和分支(master
,根据您的问题),因此您的完整命令可能是git pull origin master --rebase
您所做的更改可能会与更新发生冲突,在这种情况下,您必须解决冲突 -Git手册如果您需要的话,会提供更多详细信息。
如果要小心,请先复制要更新的文件夹,然后更新原始文件夹。如果出现问题,请删除原始文件夹并将副本移回原位并重新开始。
答案2
现在您知道为什么发明了 dpkg 和 rpm 这样的打包系统 - 管理软件的安装、升级、降级或删除比看起来更困难。
如果可能的话,您应该为您选择的发行版安装软件的打包版本。这可能会限制您使用特定软件包的旧版本,具体取决于您的发行版的“前沿”程度。这通常不是一个问题——在大多数情况下,你实际上并没有需要最新版本,并且在大多数剩余情况下,拥有最新版本并不值得打破发行版包装系统的代价。
但是,如果没有打包版本或者您真的确实需要最新版本:
最好的选择是自己打包程序。这需要一些努力和一些时间来学习如何做到这一点,但可以获得最好的结果 - 使用发行版的软件包工具可以轻松安装、升级、删除等软件。
-
其中任何一个都将为您提供真实软件包的许多功能(例如能够轻松卸载或升级已安装的软件),并使您自行安装的软件很好地分开(例如在 /usr/local 或 /opt 的子目录中)来自打包软件。
注意:这两个(以及类似的程序,如收起)可能可以作为您的发行版的软件包提供。对于 Debian 来说确实如此。
对于直接从克隆的 git 存储库(例如脚本或 omzsh)运行的软件,只需
git pull
按照 @Steven 的答案中所述进行更新即可。但请注意,如果您的发行版有可用的打包版本,那么您可能应该使用它。