Как построить git со статической связью?

Я загрузил git источник из https://github.com/git/git в качестве zip файла.

Я извлек его в /home/Desktop/denis/ git (используя Ubuntu).

Теперь учебник здесь говорит, что я должен запустить

./configure --prefix=/home/denis/git-static CFLAGS="${CFLAGS} -static"

из вышеупомянутой папки в качестве шага для построения git.

Но источник git не имеет файла конфигурации в корневой папке, который я могу запустить (только configure.ac, который, как я подозреваю, не является тем, что я ищу).

Что мне здесь не хватает? Как создать git вручную?

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

Ответ 1

Прочитайте файл INSTALL в корневой папке распакованного файла, кажется, что в нем есть полезная инструкция, что я подозреваю:

В качестве альтернативы вы можете использовать созданный autoconf./configure script для настройте пути установки (через config.mak.autogen), чтобы вместо этого вы могли написать

    $ make configure ;# as yourself
    $ ./configure --prefix=/usr ;# as yourself
    $ make all doc ;# as yourself
    # make install install-doc install-html;# as root

или просто:

    $ make prefix=/usr all doc info ;# as yourself
    # make prefix=/usr install install-doc install-html install-info ;# as root

Ответ 2

Да... он компилируется, но не статически. Чтобы достичь своей цели, вам необходимо скомпилировать ее с помощью команды:

сделать префикс =/home/denis/ git -статический CFLAGS = "$ {CFLAGS} -статический-libgcc"

Только при -статической он не будет правильно связывать двоичные файлы.

В процессе компиляции вам понадобятся некоторые библиотеки: алгоритмы сжатия Gzip и PKZIP, SSL, XML-анализ и CURL, кроме других распространенных библиотек. Это я только что упомянул в пакетах zlib1g-dev libssl-dev libexpat1-dev libcurl4-nss-dev.

Итак, запустите в основном команды:

  • aptitude install gcc make zlib1g-dev libssl-dev libexpat1-dev libcurl4-nss-dev
  • make prefix =/home/denis/ git -статический CFLAGS = "$ {CFLAGS} -static-libgcc"

Я надеюсь, что все будет хорошо для вас. Удачи в вашей компиляции.

Ответ 3

Другие ответы не помогли мне. Возможно, они будут для других. Что для меня работало:

  • Получить исходный код
  • Сделать целевой каталог
  • Введите исходный каталог
  • Настройка
  • Построить
  • Установить

Используйте следующие команды:

git clone [email protected]:git/git.git
mkdir git-static
cd git
./configure prefix=/path/to/git-static/ CFLAGS="${CFLAGS} -static"
make
make install

Это оставит вас с несколькими папками в каталоге git-static, но исполняемый файл статически связан. Он также значительно больше обычного (возможно, на 1,5 МБ больше).