如何在Cygwin中获得Git 1.8?
根据http://cygwin.com/packages/git/最新可用的Cygwin包是1.7.9-1。
我想更新git至less1.8.0。
我可以这样做吗?
要安装git 1.8.0
你需要编译源代码。
您需要克隆git仓库( git clone https://github.com/git/git.git
),进入git目录,将当前版本更改为1.8.0或其他您想要的版本( git checkout v.1.8.0
)并input以下命令:
make configure ./configure --prefix=/usr/local make make install
它会在/usr/local
目录下安装git。 有关git安装的更多信息,比如文档,你可以看看git仓库根目录中的INSTALL
文件。
cygwinports有许多新版本的各种工具
当时我写这个有1.8.3.4
新的,简化的安装说明:
- 使用最新的Cygwin安装程序(至less2.829版):setup-x86.exe(32位)或setup-x86_64.exe(64位)。 (请注意,许多软件包尚未移植到x86_64。)
启动设置 – *。exe与-K标志,例如:
cygstart – /path/to/setup-x86.exe -K http://cygwinports.org/ports.gpg
在select安装types页面上,select“从Internet安装”。
- 在select下载站点页面上,select一个distro镜像,然后在用户URL字段中inputftp://ftp.cygwinports.org/pub/cygwinports ,然后按添加(确保两者均高亮显示)。
- 或者,您可以使用Sourceware镜像,但是如果这样做,则必须使用托pipe在与选定的Distro镜像不同的服务器上的托pipe镜像。
- 继续进行软件包select和安装,确保安装任何指定的依赖项。
我按照以下说明成功安装了git 1.8.4.474; 我正在运行Windows 7 64位,cygwin版本1.7.22(0.268 / 5/3)
运行Cygwin安装程序并确保安装了以下软件包:
gcc autoconf curl libcurl-devel, required for http/https support (NOTE: this is an obsolete package, you will need to uncheck "Hide obsolete packages" when selecting packages to install) make libiconv python perl gettext
您可能需要libiconv-devel和cygwin32-liviconv(请参阅Marek的评论)
用git克隆https://github.com/git/git.git克隆Git源码。; 关于Gitconfiguration的一些注意事项:
确保
core.autocrlf=false
,否则最终会导致DOS样式行结束导致构build中断。我也有一个
http.sslcainfo
属性值; 要么取消设置,要么将其指向/usr/ssl/certs/ca-bundle.crt
。从你新克隆的git仓库中,运行以下命令:
make configure ./configure make make install
你的指示并没有真正为我工作…
我遵循这些说明(只要确保安装了所有正确的软件包)
http://randomartifacts.blogspot.com/2013/04/compiling-git-on-cygwin.html
修改了Makefile
$ git diff Makefile diff --git a/Makefile b/Makefile index 3588ca1..90f337c 100644 --- a/Makefile +++ b/Makefile @@ -407,7 +407,7 @@ RPMBUILD = rpmbuild TCL_PATH = tclsh TCLTK_PATH = wish XGETTEXT = xgettext -MSGFMT = msgfmt +MSGFMT = msgfmt.py PTHREAD_LIBS = -lpthread PTHREAD_CFLAGS = GCOV = gcov
然后
make configure NO_MSGFMT_EXTENDED_OPTIONS=1 ./configure make NO_MSGFMT_EXTENDED_OPTIONS=1 make install NO_MSGFMT_EXTENDED_OPTIONS=1
不知道是否所有的make命令都需要param,但这对我有效
我在做“安装”时遇到了问题。 错误消息是:
安装-d -m 755'/ usr / local / bin'
git:'安装'不是一个git命令。 见'git –help'。
./install:第4行:通常:找不到命令
./install:第5行:will:command not found
./install:第6行:到:命令未find
./install:第8行:找不到$:命令
./install:第11行:意外标记附近的语法错误.'
./install: line 11:.'
./install: line 11:.'
当然,前缀= / usr / local)。 就像任何程序套件一样“
./install: line 11:
这是由于Windows操作系统不区分大小写,如果您的PATH中包含“./”。 Cygwin使用git源代码树中的INSTALL文件而不是/ usr / bin / install。 我们必须将源树中的一些“INSTALL”文件重命名为其他文件名。 这是由http://zengrong.net/post/1817.htm提到的;
我有一个问题,这使我花了一个小时去debugging,所以发布一个答案,以防其他人来这里看。
事实上这跟Yorkwar的原因是一样的,但是不同的错误。
一切正常,直到make install
输出:
$ make install GEN perl/PM.stamp SUBDIR gitweb SUBDIR ../ make[2]: 'GIT-VERSION-FILE' is up to date. GEN git-instaweb BUILTIN all SUBDIR git-gui SUBDIR gitk-git SUBDIR perl SUBDIR templates install -d -m 755 '/usr/local/bin' make: execvp: install: Permission denied Makefile:2342: recipe for target 'install' failed make: *** [install] Error 127
在使用UAC,setuid,icacls,所有权等方法之后,我通过strace
发现了一个实际的问题,那就是在执行install
:因为我的PATH
有./
,而Windows不区分大小写,它会尝试执行INSTALL
,这是一个没有设置x
位的文本文件。 所以“权限被拒绝”是指这个文件没有设置x
。
@Yorkwar通过重命名所有INSTALL
文件来解决这个问题,然而另一个select是编辑Makefile
并replace
INSTALL = install
同
INSTALL = /usr/bin/install
我在Windows 7 64位(cygwin64出来之前安装它,并没有打扰升级)使用cygwin 32位。 成功构build并安装git version 2.0.0.rc4.dirty
,这是git clone https://github.com/git/git.git
的结果。
您可以从git-scm.com/download/win安装Windows平台的最新版本。
将以下内容添加到~/.profile
:
export PATH=$PATH:`cygpath 'C:\Program Files (x86)\Git\bin'`
我将SourceTree和cygwin
这个git客户端与Gerrit / SSH服务器结合使用,并没有遇到任何问题。