Могу ли я пересобрать пакет без перекомпиляции исходного кода?


19

Я создаю новый .deb и хочу исправить ошибки lintian в упаковке. Тем не менее, каждый раз, когда я перестраиваю, файл правил выполняет 'make clean' и, таким образом, начинает компилироваться снова.

Есть ли способ проинструктировать процесс сборки, который я не хочу перекомпилировать, что я просто изменяю упаковку, и использование последнего набора двоичных файлов будет хорошо сейчас?

Ответы:


26

Это зависит от того, как вы создаете пакет. dpkg-buildpackageне вызывает cleanцель, если вы передадите ей -ncопцию. Еще одна полезная опция для тестовой сборки - -uc(не подписывайте файл изменений). debuildнаследует эти параметры от dpkg-buildpackage.

Для тестовой сборки вы можете просто сделать fakeroot debian/rules binary(настроить цель в соответствии с несколькими бинарными пакетами).


8

Используя ccache, вы можете собрать пакет как обычно, без фактической перекомпиляции неизмененных исходных файлов.

ccache работает, сохраняя старые результаты компиляции, и перестраивает только если исходный код действительно изменился.

debuild --prepend-path=/usr/lib/ccache --preserve-envvars=CCACHE_*

2
Я получил, dpkg-buildpackage: unknown option or argument --preserve-envvars=CCACHE_*но я удалил эту опцию, кажется, работает нормально без нее
Дейв Батлер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.