Согласно http://cygwin.com/packages/git/, последний доступный пакет Cygwin равен 1.7.9-1.
Я хотел бы обновить git до не менее 1.8.0.
Могу ли я это сделать?
Согласно http://cygwin.com/packages/git/, последний доступный пакет Cygwin равен 1.7.9-1.
Я хотел бы обновить git до не менее 1.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
) и введите следующие команды:
make configure
./configure --prefix=/usr/local
make
make install
Он установит git в директорию /usr/local
. Для получения дополнительной информации о установке git, например документации, вы можете заглянуть в файл INSTALL
, локализованный в корневом репозитории git.
cygwinports имеет множество новых версий различных инструментов
В то время, когда я пишу это, он имеет 1.8.3.4
Новые, упрощенные инструкции по установке:
- Используйте новейшие инсталляторы Cygwin (по крайней мере, версии 2.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
На странице "Выбор типа установки" выберите "Установить из Интернета".
- На странице "Выбрать сайт для загрузки" выберите зеркало-зеркало, затем введите ftp://ftp.cygwinports.org/pub/cygwinports в поле "URL-адрес пользователя" и нажмите "Добавить" (убедитесь, что оба выделены).
- В качестве альтернативы вы можете использовать зеркало с исходным кодом, но если вы это сделаете, вы должны использовать один размещенный на другом сервере, чем выбранный вами дистровое зеркало.
- Продолжайте выбор и установку пакетов, убедитесь, что установлены какие-либо указанные зависимости.
Я успешно установил git 1.8.4.474, выполнив эти инструкции; Я запускаю 64-разрядные версии Windows 7, версия 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 с помощью git clone https://github.com/git/git.git. Несколько замечаний относительно конфигурации git:
Удостоверьтесь, что
core.autocrlf=false
, иначе вы закончите с окончанием строки стиля DOS, из-за чего сборка будет нарушена.У меня также было винное значение свойства
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, но это сработало для меня.
У меня возникла проблема при выполнении "make install". Сообщение об ошибке:
install -d -m 755 '/usr/local/bin'
git: 'installation' не является командой git. См. "git --help".
./install: строка 4: Обычно: команда не найдена
./install: строка 5: будет: команда не найдена
./install: строка 6: Кому: команда не найдена
./install: строка 8: $: команда не найдена
./install: строка 11: синтаксическая ошибка около неожиданного токена.'
(или префикс =/usr/local, конечно). Как и любой программный пакет
./install: line 11:
Это связано с нечувствительностью к регистру ОС Windows, если у вас есть "./" в вашем PATH. Cygwin использует файл INSTALL в исходном дереве git вместо /usr/bin/install. Мы должны переименовать некоторые файлы "INSTALL" в исходном дереве в другое имя файла. Это упоминается http://zengrong.net/post/1817.htm
У меня была проблема с этим, и мне потребовался час для отладки, поэтому я отправляю ответ на случай, если кто-то еще придет сюда.
На самом деле это та же самая причина, что и 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
. Таким образом, "Permission denied" ссылается на то, что x
не задано в этом файле.
@Yorkwar исправил это, переименовав все файлы install
, однако другой вариант - отредактировать Makefile
и заменить
INSTALL = install
с
INSTALL = /usr/bin/install
Я использую cygwin 32-bit в Windows 7 64-bit (установил его до выхода cygwin64 и не потрудился для обновления). Успешно построена и установлена git version 2.0.0.rc4.dirty
, которая была результатом git clone https://github.com/git/git.git
.
Вы можете установить последнюю версию для платформы Windows из git-scm.com/download/win.
Добавьте в свой ~/.profile
следующее:
export PATH=$PATH:`cygpath 'C:\Program Files (x86)\Git\bin'`
Я использую этот git клиент из SourceTree и cygwin
в сочетании с сервером Gerrit/SSH и не сталкивался с какой-либо проблемой.