LINUX.ORG.RU
ФорумAdmin

Как пересобрать пакет исходного кода Debian с другим префиксом?

 , , ,


0

1

Сабж. Надо собрать имеющийся пакет исходного кода так, чтобы файлы устанавливались не в /usr, а, например, в /opt/local. Крайне желательно - не трогая исходники.

★★★

Последнее исправление: gasinvein (всего исправлений: 1)

1. Распаковываем, смотрим структуру каталогов.
2. Грепаем по файлам для поиска путей (например в .desktop файле).
3. Меняем структуру каталогов на желаемую, меняем пути где нужно.
4. Запаковываем обратно, возможно следует использовать не просто архиватор, а dpkg-deb --build. Я не пробовал.
5. ???
6. Profit.

Простейший пример сборки пакета

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

Ну, в пакете исходного кода типа исходники. Они компилируются в бинарники. Получается бинарный пакет.

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

извини, криво прочитал. Тогда смотри в исходниках файл configure, там смотри переменную prefix. Если я правильно понял, конечно.

anonymous
()

Нуу зависит от того цмейк там или аутотулс, дальше добавляешь префикс конфигурационному скрипту и мейк инстолл. А зачем тебе такие сложности? Скачиваешь из гита нужный таг, потом префикс конфигурационному скрипту и мейк инстолл, можно даже в хомяк — приложение там будет ровно на тех же самых условиях как и везде.

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

Да, в том-то и дело, что внутри debian/rules обычно нет захардкоденного /usr, вместо этого используется переменная $${prefix}. Видимо, dpkg её в какой-то момент задаёт и передаёт make.
Как её задать самому - вопрос открытый.

gasinvein ★★★
() автор топика

Вероятно, достаточно будет поправить в debian/rules вызов configure (common_configure_args), но зависит от свойств конкретного пакета.

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

Вот хотелось бы вообще не трогать исходники. Сам же dpkg где-то задаёт префикс, он же не захардкоден debian/rules.

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

debian/rules - это не совсем исходники. Нельзя же изменить пакет, ничего не меняя. dpkg может ставить пакет не от корня, но ТС вероятно не желает ставить пакет со специальными параметрами dpkg.

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

Я и не хочу менять содержимое пакета, только префикс. RPM, например, это позволяет: rpmbuild --define='_prefix /some/path' --rebuild package.src.rpm

gasinvein ★★★
() автор топика
Последнее исправление: gasinvein (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.