Установите 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 и опубликуйте ваш прогресс.