1

Я пытаюсь установить git на сервер с пользователем, у которого нет прав root. Я видел много уроков, которые предлагают использовать ./configure , но когда я скачал последнюю версию git zip из github, такого файла не было. Очевидно, он должен работать только с make и make install , но когда я запускаю make , я получаю ошибки:

In file included from credential-store.c:1:
cache.h:21: error: expected specifier-qualifier-list before 'z_stream'
make: *** [credential-store.o] Error 1

Очевидно, это связано с тем, что zlib не устанавливается. Я могу скачать zlib , но я не знаю, как получить git чтобы знать, где я его установил. Могут быть и другие зависимости, но я, вероятно, могу справиться с ними аналогичным образом.

Я также хотел бы просто иметь исполняемый файл git в /home/user/bin без других папок или дерьма. Есть ли способ, которым я могу просто загрузить скомпилированный исполняемый файл? Потому что это тоже было бы хорошо.

2 ответа2

1

Хотя в настоящее время у меня нет времени для предоставления подробного ответа, я могу наметить возможную стратегию запуска исполняемых файлов из готового пакета git в вашем домашнем каталоге. Этот ответ нацелен на Debian, поскольку, как вы сказали, вы используете, но основная концепция применима и к другим ОС и дистрибутивам.

Сначала перейдите на http://packages.debian.org/squeeze/git и просмотрите зависимости пакета git . К счастью, вы обнаружите, что git не так много. Большинство важных из них, вероятно, уже установлены, возможно, за исключением libcurl3-gnutls и libexpat1 .

Затем загрузите двоичный пакет .deb и извлеките его содержимое (поищите в Интернете, чтобы узнать, как извлечь пакет .deb вручную). Вы найдете файл data.tar.gz Распакуйте его, и вы получите файлы usr/bin/git* и usr/lib/git-core/* . Вы можете поместить эти файлы где-нибудь в вашем домашнем каталоге. Теперь важная часть: /usr/bin/git вызывает множество "вспомогательных" программ в /usr/lib/git-core , и этот последний путь жестко запрограммирован в /usr/bin/git . К счастью, вы можете переопределить жестко закодированное значение, установив переменную среды GIT_EXEC_PATH , поэтому обновите ваши точечные файлы, указав, где вы решили хранить различные файлы /usr/lib/git-core .

Наконец, возможно, что не все зависимости библиотеки (и их зависимости, и т.д., И т.д.) Были установлены в вашей системе (например, libcurl3-gnutls , libexpat1). Вы также можете загрузить двоичные пакеты для них, распаковать их в свой домашний каталог, а затем помочь git найти их, настроив соответствующую переменную среды LD_LIBRARY_PATH .

PS Возможно, у меня было больше, чем моя справедливая доля в вашем положении, поэтому то, что я изложил выше, является более чем теоретическим. Но работать над этим видом проблемы - это немного чёрного искусства, так что обычно возникает некоторая дополнительная суета вокруг. Удачи.

0

У вас впереди много работы. Вам нужно убедиться, что их wget или curl доступны вам, так как вам понадобится один или другой из них, чтобы получить нужные вам tar-архивы, если соответствующие пакеты не установлены.

Создать

Каталог /home/youruser/src (mkdir -p /home/youruser/src).

Перейдите в каталог src и получите исходный код для git

wget http://git-core.googlecode.com/files/git-1.7.11.2.tar.gz

Распакуйте его и сделайте

./configure --help

Это покажет вам все необходимые пакеты, которые вам понадобятся, такие как expat, openssl и т.д. Вам нужно будет скачать все из них, собрать и установить их в /home/youruser Когда вы закончите, у вас будет /home/youruser/bin наряду с несколькими необходимыми каталогами.

Пожалуйста, прочитайте файл INSTALL в директории unararred и опубликуйте ваш прогресс.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .