Необходимо каким то образом автоматически (программно) получить листинг из исходников, причем зная какой файл где должен лежать после установки относительно корня. Или после make установить программу в псевдо-корень.
Пробовал поиском нашел -
make DESTDIR=$ROOT install
В этом случае нужно знать точное название переменной. Бывает она называется $PREFIX или вообще это может быть набор переменных $sysconfdir $bindir... Да и сами разработчики могут назвать как хотят. Тоесть такой путь не универсальный.
Самостоятельно парсить makefile -> install: очень сложно. (придется писать чуть ли не второй bash)
Есть ли какие то более легкие пути?
Как получить листинг из исходниов?
Модератор: Модераторы разделов
-
a1f
- Сообщения: 94
- ОС: ====8
Как получить листинг из исходниов?
Gentoo Linux / Ubuntu Feisty 7.04, 8.04 / Slackware 10.2 / OpenBSD 4.2
-
v04bvs
- Сообщения: 636
- ОС: Debian GNU/Linux
Re: Как получить листинг из исходниов?
Что здесь имеется ввиду? Распечатать на принтере? Отформатировать и показать в браузере? Создать PDF-документ? Вставить в Latex-овский документ?
причем зная какой файл где должен лежать после установки относительно корня. Или после make установить программу в псевдо-корень.
Не понял, что здесь имеется ввиду. Пишите более понятно. Про какой файл идёт речь? Какой корень имеется ввиду? Что такое псевдо-корень?
make DESTDIR=$ROOT install
В этом случае нужно знать точное название переменной.
Подобная информация обычно имеется в файлах README, INSTALL, ./configure --help и т.д.
Бывает она называется $PREFIX или вообще это может быть набор переменных $sysconfdir $bindir... Да и сами разработчики могут назвать как хотят. Тоесть такой путь не универсальный.
Ага, ещё бывает ./VP_Suite_Linux_3_0_sp2_20070612.sh
Самостоятельно парсить makefile -> install: очень сложно. (придется писать чуть ли не второй bash)
И первый исскуственный интеллект, вместре с первыми дровами для первого устройства, призывающего телепатов вернуться из отпуска.
Есть ли какие то более легкие пути?
Я так и не понял, что нужно, но посоветую checkinstall и fakeroot, ориентируясь на набор ключевых слов в вопросе.
-
Bruce
- Сообщения: 647
- Статус: beat maniac
- ОС: Debian GNU/Linux 4.0
Re: Как получить листинг из исходниов?
checkinstall посмотрите. И его исходники.
-
a1f
- Сообщения: 94
- ОС: ====8
Re: Как получить листинг из исходниов?
Что здесь имеется ввиду? Распечатать на принтере? Отформатировать и показать в браузере? Создать PDF-документ? Вставить в Latex-овский документ?
скачать сырцы какой то программы. Скормить их программе. Программа должна выдать на экран или в файл
какие файлы и куда установятся при make install типа:
Код: Выделить всё
/usr/bin/hello
/usr/lib/hello.so
...Не понял, что здесь имеется ввиду. Пишите более понятно. Про какой файл идёт речь? Какой корень имеется ввиду? Что такое псевдо-корень?
КОРЕНЬ - "/"
Псевдо-корень - сделай configure && make && make DESTDIR="/tmp/PROGA/" install и глянь в содержимое /tmp/PROGA, в данном случае /tmp/PROGA есть псевдо корень. Т.е make install с префиксом. В таком случае Там будут лежать ТОЛЬКО файлы программы из которых можно легко получить листинг, заменив Псевдо-корень реальным корнем.
Подобная информация обычно имеется в файлах README, INSTALL, ./configure --help и т.д.
Получать листинг надо ПРОГРАММНО без участия пользователя. Т.е файлы README и INSTALL отпадают. ./configure --help и вправду содержит переменные installation directories. Всегда ли таким образом можно задать переменные для цели install? Если учитывать автоматически сгенерированные скрипты. (Кол-во людей которые сами пишут makefile для своих проектов сравнительно мало)
Ага, ещё бывает ./VP_Suite_Linux_3_0_sp2_20070612.sh
Мне не выжно какие букофки ты еще знаеш. Есть только архив с сырцами, скриптом configure (его может и не быть) и обязательно makefile.
И первый исскуственный интеллект, вместре с первыми дровами для первого устройства, призывающего телепатов вернуться из отпуска.
;-\
Gentoo Linux / Ubuntu Feisty 7.04, 8.04 / Slackware 10.2 / OpenBSD 4.2
-
v04bvs
- Сообщения: 636
- ОС: Debian GNU/Linux
Re: Как получить листинг из исходниов?
Ну теперь всё понятно.
Итак если не закладываться на редкие варианты, то достаточно mkdir /tmp/myroot && DESTDIR=/tmp/myroot make install && find /tmp/myroot
Если закладываться на редкие варианты, то checkinstall\fakeroot
Последние 2 варианта надёжны на 99%.
Итак если не закладываться на редкие варианты, то достаточно mkdir /tmp/myroot && DESTDIR=/tmp/myroot make install && find /tmp/myroot
Если закладываться на редкие варианты, то checkinstall\fakeroot
Последние 2 варианта надёжны на 99%.
-
a1f
- Сообщения: 94
- ОС: ====8
Re: Как получить листинг из исходниов?
Пробовал make DESTDIR=$myroot install, нисколько не надежно потому что в разных пакетах DESTDIR обзывают PREFIX или несколько переменных bindtr confdir, etc...
Покурил checkinstall...
Решение - installwatch
Gentoo Linux / Ubuntu Feisty 7.04, 8.04 / Slackware 10.2 / OpenBSD 4.2