Установите git на сервер без sudo

Я пытаюсь установить 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 ответа

Решение

Хотя в настоящее время у меня нет времени, чтобы дать очень подробный ответ, я могу наметить возможную стратегию запуска исполняемых файлов из предварительно собранных 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 Возможно, у меня было больше, чем моя справедливая доля в вашем положении, поэтому то, что я изложил выше, является более чем теоретическим. Но работать над этим видом проблемы - это немного чёрного искусства, так что, как правило, вокруг этого будут некоторые дополнительные проблемы. Удачи.

У вас впереди много работы. Вам нужно убедиться, что их 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 и опубликуйте ваш прогресс.

Другие вопросы по тегам