LINUX.ORG.RU

Как бы параметр destdir присобачить...


0

0

Makefil-ы кое-как писать умею, в autotools - дуб-дубом, захотел вот rpm-ку сделать, спек написать, нужно в программулину воткнуть что-то чтобы в Makefil-e было install: install ./что-то $DESTDIR/$PREFIX/куда-то. Как я понял почти все программы сейчас свои Makefil-ы генерят через autotools, как бы эту переменную туда воткнуть чтобы это явным хаком не выглядело? Можно? или придется таки с потрохами и внутрипрограммными зависимостями ковыряться?

★★

Ничего не понятно, какую переменную куда воткнуть нужно?

Варианты: 1. Нужно, чтобы пользователь писал make install и программа устанавливалась в /некоторый путь/... ?

2. Нужно, чтобы можно было собрать rpm, после установки программы она лежала в /некоторый путь/.... ?

3. Нужно, чтобы некоторый путь задавался с помощью configure --prefix=/некоторый путь и последующим make install?

4. Нужно использовать autotools чтобы кроме всего этого иметь возможность делать make uninstall, make dist-gzip, make check и так далее.

5. ........

Скорее всего, проблема решаема без "потрохов и внутрипрограммных зависимостей", нужно только ее разъяснить.

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

Re:

ну имеется в виду

когда пишем ./configure --prefix=/usr

...

по make install эта программа валится в /usr, а хотелось бы что-то типа или ./configure --prefix=/usr --destdir=/tmp/mypack или make install DESTDIR=/tmp/mypack - чтобы программа при make install валилась в /tmp/mypack/usr/ - естественно чтобы /usr внутрях программы сохранился ( потом чтобы допустим заархивировать /tmp/mypack и при надобности разархивировать в /usr - поставить ее)

короче чтобы программа валилась при make install не в /usr/local/prog (ну это имеется в виду prefix) а зарулить все устанавливаемые файлы в $DESTDIR/prefix

hooj ★★
() автор топика
Ответ на: Re: от hooj

1. autotools используются или доморощенные средства? Если используются, то можно писать make prefix=/tmp/mypack/usr install

2. ./configure --prefix=/usr --destdir=/tmp/mypack

А сразу нельзя вот так

./configure --prefix=/tmp/mypack/usr ?

3. > по make install эта программа валится в /usr, а хотелось бы что-то > типа или ./configure --prefix=/usr --destdir=/tmp/mypack или make > install DESTDIR=/tmp/mypack - чтобы программа при make install > валилась в /tmp/mypack/usr/ - естественно чтобы /usr внутрях >программы сохранился ( потом чтобы допустим заархивировать >/tmp/mypack и при надобности разархивировать в /usr - поставить ее) как раз для этого rpm и предназначен!!! А чтобы делать так, можно использовать стандартные средства rpm. Недавно был в форуме шаблон spec-файла, который как раз все это и делает.

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

да, autotools используются

если сказать сразу prefix=/tmp.... то если программа где-нибудь внутри пользует допустим картинки или еще что то потянется в /tmp/mypack/usr/share/icons/pic.png, т.е. в /usr потом ее поставить не получится, не будет она знать что ей надо /usr/share/icons/pic.png

3. пока не делает, для этого я и ебусь :) сперва rpm делает исходнику ./configure --prefix=/usr, make, результат - весь скелет программы скидывает в $RPM_BUILD_ROOT а уж потом его содержимое кладет в пакет.

Если бы он просто при сборке пакета говорил make install то все бы устанавливалось сразу же в систему и отлавливать все установленные файлы... вобщем слакварь бы получилась. Я так посмотрел - обычно в спеках инсталл выглядит как make install DESTDIR="$RPM_BUILD_ROOT" - вот его-то сборщики пакетов и добавляют в сырцы, если б там просто makefile лежало то справился бы, а так - просто хотелось узнать возможен ли универсальный способ для программ использующих autoconf/automake, достаточно простой замены вида s/${prefix}/${destdir}\/${prefix}/

make install prefix ... да, спасибо, наверное на этом остановлюсь

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

>install prefix ..

уй е-е-е... оно ж юзает всякие bindir=${prefix}/bin libdir... это их всех переопределять а не один только prefix... Ну, надеюсь что к ним нечасто авторы свои директории прилепляют, а если и лепят то документируют, или хотя бы в файлах это прописывают на видном месте...

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

хотя заглянул в макросы - да, там так и делается, в общем велосипед хотел изобрести - спек после %build вышел такой:

%build

%configure

make

%install

%makeinstall

%files

%{_prefix}/*

однако просто ларчик открывался :)

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