LINUX.ORG.RU

указание разных путей для файлов при создании deb-пакета

 , ,


0

1

при создании deb-пакета из исходников, отсутствующих в репозитории ubuntu выполнил сначала

$ ./build.sh $ make $ sudo checkinstall

при этом удачно создался deb-пакет, но все файлы установились в /usr/local/имя_пакета, а необходимо некоторые файлы установить в /etc, некоторые в /etc/init.d и т.д.

получается, что нужно править Makefile в исходниках?

Вот, хорошая статья. В грамотно написанном Makefile (или в configure.sh) обычно есть несколько параметров *_prefix, переопределение которых позволяет указать, куда ставить какие файлы при make install. Править Makefile при этом не обязательно, достаточно указать эти параметы либо ./configure --prefix=..., либо make PREFIX=....

Kiborg ★★★
()
Ответ на: комментарий от Kiborg

спасибки, проюзаю статейку... а еще такой вопрос-если внутри собранного deb-пакета есть несколько конфигов внутри которых некоторые дефолтные параметры надо изменить-это уже нужно исходники править?

gigantischer
() автор топика
Ответ на: комментарий от gigantischer

У deb есть механизм интерактивной установки, но как им правильно пользоваться, я не знаю. Как это выглядит, можно посмотреть при помощи dpkg-reconfigure packagename.

Kiborg ★★★
()
Ответ на: комментарий от gigantischer

Если использовался debhelper, то там ничего особенно придумывать не нужно, debuild обычно сам всё находит, если имена файлов не изменялись. А если нет, то искать надо откуда-то отсюда.

Kiborg ★★★
()

Послушай.

Если тебе надо просто собрать deb-пакет для себя, чтобы проще было установить (а потом удалить) программу, ты всё правильно сделал, только не ./build.sh надо было, а ./configure с нужными параметрами (--prefix=/куда/ставить).

Если тебе надо собрать пакет для распространения, правильно и по фэн-шую, то надо читать либо руководство для начинающих мейнтейнеров Debian, либо руководство разработчика Ubuntu

proud_anon ★★★★★
()
Последнее исправление: proud_anon (всего исправлений: 1)
Ответ на: комментарий от gigantischer

Вот годный мануал - http://habrahabr.ru/post/63221/. Используется менеджер пакетов stow или xstow. Ключевая особенность - xstow раскладывает ссылки по тем директориям, в которых другой софт и другие админы ожидают их увидеть. Да еще и пути и ld.so настроен на эти же директории. Ну, и чистота в системе и невмешательство в работу ПМ прилагаются.

Chong_Li
()
Ответ на: комментарий от gigantischer

Тогда надо править этот build.sh. checkinstall не может сам раскидать файлы как надо, потому что предполагается, что программа умеет это делать сама так, как ей надо. Кроме того, некоторые программы хардкодят пути к некоторым файлам, поэтому они должны при компиляции знать, куда они будут устанавливаться.

proud_anon ★★★★★
()
Ответ на: комментарий от proud_anon

я отредактил секцию install: в Makefile и удачно раскидал нужные файлы по местам, теперь буду разбираться со скриптом в /etc/init.d/ -> процесс удачно запускается, но не останавливается, приходится пока его kill_ять...

gigantischer
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.