2015-11-24 7 views
2

Я пытаюсь построить git из исходного кода, и мне хотелось бы, чтобы мы вставляли двоичные файлы в каталог с именем dist в мой исходный каталог, поэтому я использую следующую строку configure.Возможно ли построить `git`, чтобы каталог установки и префикс развертывания были не такими же?

./configure --prefix=`pwd`/dist 

К сожалению, это также вызывает выход сборки предположить, что это окончательное место установки для git, и поэтому жёстко пути в различные сценарии и исполняемые файлы, такие как libexec/git-core/git-difftool.

Есть ли способ указать либо во время configure или make, что я хочу другой путь для фактического развертывания, таких как /usr/bin/local, но до сих пор make install перейти в каталог pwd/дист?

+0

Переименовать существующие/usr/bin/local/to /usr/bin/local.temp, symlink/usr/bin/local to/dist, configure --prefix =/usr/bin/local, make install, rm symlink , восстановить имя dir? –

+0

Это тривиальное обходное решение, но оно не затрагивает корень вопроса. – merlin2011

+0

Хе-хе, вот почему я прокомментировал, а не ответил. :) –

ответ

2

Поскольку этот вопрос был без ответа в течение нескольких дней, я emailed the git developers, и получил ответ, указав, что я должен установить prefix на фактический пути установки, а также использовать переменное окружение DESTDIR для управления, где make install помещает файлы.

make PREFIX=/usr/local 
DESTDIR=$(PWD)/dist make install 

Таким образом, префикс развертывания должен быть установлен либо --prefix во ./configure или PREFIX во время make, в то время как установка назначения должен быть указан DESTDIR.

Обновление: я протестировал это решение и подтвердил, что он работает правильно.

+0

Для полноты, это ссылка на ваш почтовый лист: http://comments.gmane.org/gmane.comp.version-control.git/281782 – sschuberth

+0

@sschuberth, Спасибо за ссылку! Я включил его в ответ. – merlin2011