如何在Cygwin上安装Git?

23
我看到一些在线教程,但它们只展示在安装Cygwin时如何将git安装到Cygwin中。我已经安装并自定义了Cygwin,因此不想重复这个步骤。我该如何安装git框架以便用于GitHub?
谢谢。

使用Cygwin风格的Git可能会导致NPM / yarn / scoop出现问题,因为它们尝试传递Windows路径,但无法正常工作。请谨慎使用。 - David Refoua
@DavidRefoua 这不是真的。 您可以在 cygwin.bat 中设置 CYGWIN 环境变量,以包括 nodosfilewarning,并且您应该能够正常传递“ MS-DOS”样式路径(以及 POSIX 样式路径)。 您可以在这里阅读文档(https://cygwin.com/cygwin-ug-net/using-cygwinenv.html)。 - rubynorails
@rubynorails 我相信我表达不清楚,我的意思是实际从git中读取的路径,而不是传递给它的路径。在这里阅读一些详细信息(https://github.com/lukesampson/scoop/issues/2221#issuecomment-384790821),其中描述了当我使用Cygwin的Git安装与scoop一起使用时发生的问题,而不是使用GfW。 - David Refoua
@DavidRefoua 这些天在我运行 Windows 时,我同时使用 Git for Windows 和 Cygwin 上的 Git。我更喜欢使用 Chocolatey 软件包管理器来管理我的 Windows 程序。你可以安装 Chocolatey 然后运行 cinst /y git 命令,也可以通过命令行安装 Git for Windows。它会被添加到你的 Windows %PATH% 环境变量中,当你在 MinTTY 终端或其他终端上运行 bash shell 时,通过 Cygwin 安装的 Git 版本会被添加到 $PATH 环境变量中。 - rubynorails
巧合的是,Chocolatey也是我的最喜欢的Windows软件包管理器,我也使用双Git设置。但是,在同一台机器上维护两个独立的Git安装程序总是不利的,如果可能的话,我会尽量避免。有趣的是,GoW项目是基于mingw构建的,尽管具有pacman,但缺少为Cygwin构建的许多有用软件包。 - David Refoua
2个回答

33
在Cygwin的世界里,实际上不存在仅在安装Cygwin时安装一个软件包。Cygwin从一开始就是用setup.exe设计为在必要时多次运行。
Cygwin repo镜像中有数千个软件包可供使用。从您所说的情况来看,似乎您只运行了一次安装文件,并计划永远不安装任何其他可用软件包或更新它们。这正是Cygwin安装程序的特定用途。
如果您当前的Cygwin环境中没有安装Git,请再次运行setup.exe并选择该软件包。它应该会自动检测到您当前的安装目录和软件包目录以及先前选择的镜像。当您标记Git软件包进行安装时,它将自动下载所有依赖项,就像apt-get或任何其他*NIX软件包管理器一样。
还有一个被放弃的项目叫做apt-cyg,我仍然非常信奉它,尤其是在通过SSH连接的远程系统上,以避免GUI setup.exe。apt-cyg基本上是一个Shell脚本,可以直接从命令行安装软件包,类似于apt-get。它需要wget和subversion,但是在设置需要花费30秒后,您只需运行apt-cyg install git。它也会安装依赖项,就像GUI setup.exe一样。
如果您通过Chocolatey软件包管理器安装Cygwin,还有一个类似的选择 - 您也可以安装cyg-get(我认为是这样称呼它的)。语法略有不同 - 类似于cyg-get git。我不太喜欢这种方法,因为它与apt-cyg不同之处在于它实际上使用setup.exe并自动化过程,以便您无需单击任何内容。我不使用此方法,因为我上次检查时,Chocolatey仅支持32位Cygwin安装,这也是cyg-get软件包正在寻找的内容。

apt-cyg可能会被放弃,但它从未让人失望。如果我知道我要找什么,我总是喜欢使用它而不是运行setup.exe进行软件包安装。

看起来该项目已经重新启动,并正在积极开发中:https://github.com/transcode-open/apt-cyg

这个版本似乎需要lynx来安装。我不知道。我仍然只使用在Google Code上的原版,因为最后一次检查时它很好用:https://code.google.com/p/apt-cyg/

编辑:已经有一个新的Cygwin软件包管理器叫做cyg-get,可以通过Chocolatey安装。我不确定它是否只适用于通过Chocolatey安装的Cygwin,因为默认情况下Chocolatey不再将Cygwin安装在正常位置。请随意留言,但是除非我运行的是没有通过Chocolatey安装的旧版本Cygwin,否则cyg-get现在是我的首选Cygwin软件包管理器。我曾经避免使用它,因为他们只支持32位安装,但我可以证实,Chocolatey现在支持64位Cygwin的安装,并且cyg-get软件包管理器与它完美地配合。我从我的~/.bashrc中获取了一个函数,可以使用aptapt-get(带有或不带install参数),然后它将只是用我指定要安装的程序来调用cyg-get.bat


2
非常感谢您的帮助。我现在完全理解它的工作原理了。希望这篇文章能够帮助那些通过搜索引擎来到这里的其他人。 - Hatefiend
我有一个Cygwin终端,但仅此而已...在这个系统上我没有setup.exe。 - Carlo Wood
我在我的Cygwin副本中没有看到apt-cyg,它已经被弃用了吗?有现代化的替代品吗? - blamb
1
@blamb - apt-cyg 并不随 Cygwin 一起安装。您必须单独安装它。GitHub 的 URL 可在我的答案中找到。 - rubynorails
1
@CarloWood,很简单 - 只需重新下载设置文件https://cygwin.com/setup-x86_64.exe。 - rubynorails
显示剩余2条评论

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接