инсталляторы для linux
От: Karamat Беларусь  
Дата: 21.01.04 13:05
Оценка:
Нужно создать дистрибутив программы для установки ее на linux. Есть какие нибудь пакеты, облегчающие задачу (типа Install shield)? Вообще, как это делается?
Re: инсталляторы для linux
От: m.a.g. Мальта http://dottedmag.net/
Дата: 21.01.04 13:47
Оценка: 1 (1)
Здравствуйте, Karamat, Вы писали:

K>Нужно создать дистрибутив программы для установки ее на linux. Есть какие нибудь пакеты, облегчающие задачу (типа Install shield)? Вообще, как это делается?


hint: package manager
hint2: distributive-specific
... << RSDN@Home 1.1.3 beta 1 >>
Re: инсталляторы для linux
От: Murr Россия  
Дата: 21.01.04 19:10
Оценка:
Здравствуйте, Karamat, Вы писали:

K>Нужно создать дистрибутив программы для установки ее на linux. Есть какие нибудь пакеты, облегчающие задачу (типа Install shield)? Вообще, как это делается?


http://www.linuxbase.org/spec/gLSB/gLSB/swinstall.html
Re: инсталляторы для linux
От: DOOM Россия  
Дата: 22.01.04 06:32
Оценка:
Здравствуйте, Karamat, Вы писали:

K>Нужно создать дистрибутив программы для установки ее на linux. Есть какие нибудь пакеты, облегчающие задачу (типа Install shield)? Вообще, как это делается?



Самый правильный вариант — исходники с makefile, в котором есть make install .
Ну и, конечно, *.deb и *.rpm
Re[2]: инсталляторы для linux
От: m.a.g. Мальта http://dottedmag.net/
Дата: 22.01.04 08:46
Оценка:
Здравствуйте, DOOM, Вы писали:

DOO>Самый правильный вариант — исходники с makefile, в котором есть make install .


Неправильно. Этот вариант не учитывает политику дистрибутива и создает файлы в /bin, /sbin, /usr, /opt или еще где, которые не попадают под действие пакетного менеджера.

Исходники должны быть собирабельны непосредственно через rpmbuild/debmake или иметь соответствующие цели в Makefile

DOO>Ну и, конечно, *.deb и *.rpm


Это разумеется.
... << RSDN@Home 1.1.3 beta 1 >>
Re[3]: инсталляторы для linux
От: butcher Россия http://bu7cher.blogspot.com
Дата: 22.01.04 13:23
Оценка:
Здравствуйте, m.a.g., Вы писали:

MAG>Здравствуйте, DOOM, Вы писали:


DOO>>Самый правильный вариант — исходники с makefile, в котором есть make install .


MAG>Неправильно. Этот вариант не учитывает политику дистрибутива и создает файлы в /bin, /sbin, /usr, /opt или еще где, которые не попадают под действие пакетного менеджера.


ну не скажи, это (с Makefile), ИМХО, более правильный вариант, и не привязан к конкретному дистрибутиву.
Другое дело на сколько грамотно он выполнен?.. Все пути должны настраиваться через configure, и цель make deinstall должна быть.
А уж собрать пакет — это как говорится "Дело техники"..

Нет ничего невозможного..
Re[4]: инсталляторы для linux
От: m.a.g. Мальта http://dottedmag.net/
Дата: 23.01.04 06:34
Оценка: :))
Здравствуйте, butcher, Вы писали:

MAG>>Неправильно. Этот вариант не учитывает политику дистрибутива и создает файлы в /bin, /sbin, /usr, /opt или еще где, которые не попадают под действие пакетного менеджера.


B>ну не скажи, это (с Makefile), ИМХО, более правильный вариант, и не привязан к конкретному дистрибутиву.


Именно поэтому он абсолютно неграмотен.

B>Другое дело на сколько грамотно он выполнен?.. Все пути должны настраиваться через configure, и цель make deinstall должна быть. А уж собрать пакет — это как говорится "Дело техники"..


Поясняю. Что будет, если ты собираешь свой MTA и хочешь его поставить вместо стандартного debian'овского?

1. Ты должен будешь руками разгребать /var/dpkg/alternatives
2. Ты должен будешь ставить все пакеты, завязанные на MTA, без зависимостей — это с весьма большой вероятностью приведет к багам
3. Ты должен будешь проделывать операцию сборки/установки на каждой машине, куда тебе его надо ставить

Неужели все это не перевесит единовременного создания debian/rules или package.spec? Сомневаюсь. Тем более, что их уже можно взять из существующих пакетов и поправить.

Короче, нету, похоже, у тебя опыта одновременного администрирования по крайней мере пяти серверов.
... << RSDN@Home 1.1.3 beta 1 >>
Re[5]: инсталляторы для linux
От: butcher Россия http://bu7cher.blogspot.com
Дата: 23.01.04 06:56
Оценка:
Здравствуйте, m.a.g., Вы писали:

MAG>Здравствуйте, butcher, Вы писали:


MAG>Именно поэтому он абсолютно неграмотен.

Ну если мы уже переходим на личности, то наверно у тебя мало опыта работы с исходниками..

B>>Другое дело на сколько грамотно он выполнен?.. Все пути должны настраиваться через configure, и цель make deinstall должна быть. А уж собрать пакет — это как говорится "Дело техники"..


MAG>Поясняю. Что будет, если ты собираешь свой MTA и хочешь его поставить вместо стандартного debian'овского?

а для чего? Не ужели в линуксе нельзя поставить МТА рядом с уже существующим не трогая системного?
Как это делается в FreeBSD:
Если у тебя есть желаение поставить другой МТА вместо стандартного, ставишь его в /usr/local/[..]
правишь необходимые файлы в /etc и всё, киляешь текущего, запускаешь нового
Если ты хочешь пропатчить текущий, cvs(up) исходников и make install (элементарно)
Если ты не хочешь возится с конфигурацией скриптов — есть порты и пакаджи, за тебя это уже сделали

MAG>Неужели все это не перевесит единовременного создания debian/rules или package.spec? Сомневаюсь. Тем более, что их уже можно взять из существующих пакетов и поправить.

Одно другому не мешает, ИМХО, в стандартном виде (tar.gz) пакет должен существовать, для того чтобы быть хоть в какой-то мере переносимым, а создание пакетов — это дело, ИМХО, в большей степени создателя дистрибутива ОС, а не дистрибутива программы.

MAG>Короче, нету, похоже, у тебя опыта одновременного администрирования по крайней мере пяти серверов.


Может потому, что я выбираю не линукс, а FreeBSD и у меня не возникает таких сложностей?

PS. я думаю дальше не стоит продолжать этот флейм, а 5 серверов — это не показатель крутизны и сложности, в мире юникс всё делает элементарно и большей частью автоматически.. (правда нужно немного для этого потрудится)

Нет ничего невозможного..
Re[6]: инсталляторы для linux
От: coa2002  
Дата: 23.01.04 07:37
Оценка:
На вскидку, есть не бесплатное решение, но и не зависимое от платформы,
InstallAnywhere, http://www.zerog.com/. Rogue Wave, к примеру, его
использует.
Posted via RSDN NNTP Server 1.8 beta
Re[5]: инсталляторы для linux
От: Аноним  
Дата: 23.01.04 10:13
Оценка: 3 (1)
Здравствуйте, m.a.g., Вы писали:

MAG>Здравствуйте, butcher, Вы писали:


MAG>>>Неправильно. Этот вариант не учитывает политику дистрибутива и создает файлы в /bin, /sbin, /usr, /opt или еще где, которые не попадают под действие пакетного менеджера.


B>>ну не скажи, это (с Makefile), ИМХО, более правильный вариант, и не привязан к конкретному дистрибутиву.


MAG>Именно поэтому он абсолютно неграмотен.


И к какому дистрибутиву ты предлагаешь привязываться.


B>>Другое дело на сколько грамотно он выполнен?.. Все пути должны настраиваться через configure, и цель make deinstall должна быть. А уж собрать пакет — это как говорится "Дело техники"..


MAG>Поясняю. Что будет, если ты собираешь свой MTA и хочешь его поставить вместо стандартного debian'овского?


MAG>1. Ты должен будешь руками разгребать /var/dpkg/alternatives

MAG>2. Ты должен будешь ставить все пакеты, завязанные на MTA, без зависимостей — это с весьма большой вероятностью приведет к багам
MAG>3. Ты должен будешь проделывать операцию сборки/установки на каждой машине, куда тебе его надо ставить

Странно, а у меня на машине нет /var/dpkg/alternatives. Я что, ущербный?

Лично я ставлю программы в отдельные каталоги в /usr/local, а потом делаю на них ссылки из /usr/local/bin.
Разные версии одной и той же программы ставятся в разные каталоги. Можно потестить, перед тем, как начинать пользоваться новой версией; можно легко откатиться; если очень надо, можно использовать конкретную версию; понятно, кого стирать
Если машины более менее одинаковые достаточно собрать один раз и скопировать на все.


MAG>Неужели все это не перевесит единовременного создания debian/rules или package.spec? Сомневаюсь. Тем более, что их уже можно взять из существующих пакетов и поправить.


MAG>Короче, нету, похоже, у тебя опыта одновременного администрирования по крайней мере пяти серверов.
Re: инсталляторы для linux
От: Karamat Беларусь  
Дата: 23.01.04 13:25
Оценка:
Оказалось что в KDevelop есть эта фича. Но у меня почему-то не работает:
Projects -> Make distribution -> Source-tgz
Projects -> Make distribution -> Build RPM Package — "You need generate source dist first.."
Projects -> Make distribution -> Configure RPM Package -> Buid — "You need generate source dist first.."

В чем проблема — вроде архив создался (он появляется в дериктории с проектом)?
Re[6]: инсталляторы для linux
От: m.a.g. Мальта http://dottedmag.net/
Дата: 25.01.04 07:32
Оценка:
Здравствуйте, butcher, Вы писали:

B>Как это делается в FreeBSD:

B>Если у тебя есть желаение поставить другой МТА вместо стандартного, ставишь его в /usr/local/[..]
B>правишь необходимые файлы в /etc и всё, киляешь текущего, запускаешь нового

Вот-вот. Правишь файлы, киляешь текущего... Зачем? Все уже придумано до нас.
... << RSDN@Home 1.1.3 beta 1 >>
Re[6]: инсталляторы для linux
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 26.01.04 09:58
Оценка:
Здравствуйте, butcher, Вы писали:

MAG>>Именно поэтому он абсолютно неграмотен.

B>Ну если мы уже переходим на личности, то наверно у тебя мало опыта работы с исходниками..

Ну у меня есть опыт и с тем и с тем. И я согласен с MAG.

B>>>Другое дело на сколько грамотно он выполнен?.. Все пути должны настраиваться через configure, и цель make deinstall должна быть. А уж собрать пакет — это как говорится "Дело техники"..

MAG>>Поясняю. Что будет, если ты собираешь свой MTA и хочешь его поставить вместо стандартного debian'овского?
B>а для чего? Не ужели в линуксе нельзя поставить МТА рядом с уже существующим не трогая системного?

Можно. Вопрос не в том, чтобы просто поставить. Вопрос в том, чтобы иметь возможность
поставить и в отдельный каталог, и в стандартный. Кроме того, обеспечить как работу инсталлятора самого по себе (в тестовых целях в какой-нибудь /usr/local/tmp222),
так и на постоянное место. А для этого и нужна адекватная тому инфраструктура.
Например, такую инфраструктуру — в виде Makefile — делает GNU automake, и я рекомендую смотреть именно на него в первую очередь (когда нет причин использовать что-то другое).

B>Как это делается в FreeBSD:


У меня тоже в основном FreeBSD. Но ты рассказываешь про установку в /usr/local/нечто,
которая не зависит ни от FreeBSD ни от вообще free unices. Так можно ставить куда угодно
где вообще есть файловая система. Но если дистрибутив будет состоять из сплошных
/usr/${zuka}/, а остальное будет линками на него — это не будет нормальный вариант
дистрибутива.

B>Если у тебя есть желаение поставить другой МТА вместо стандартного, ставишь его в /usr/local/[..]

B>правишь необходимые файлы в /etc и всё, киляешь текущего, запускаешь нового
B>Если ты хочешь пропатчить текущий, cvs(up) исходников и make install (элементарно)
B>Если ты не хочешь возится с конфигурацией скриптов — есть порты и пакаджи, за тебя это уже сделали

"Всё сделали" — это сказано крепко, но неадекватно. Почитай cvs-ports, о том, как регулярно выносят тот или иной порт за испорченный pkg-plist или молчаливое затирание чужих данных. О том, что ты не можешь сделать make package без make install (что умеет, например, OpenBSD, где фряшную систему портов довели до ума — в этом смысле). Ни на какие
мысли не наводит? Порты — не критерий, критерий — там, где пакетный менеджер хоть сколько-то похож на человеческий, а это rpm или deb, и который умеет такие простые вещи,
как собирать пакеты ставя их во временный каталог вместо общего корня.

MAG>>Неужели все это не перевесит единовременного создания debian/rules или package.spec? Сомневаюсь. Тем более, что их уже можно взять из существующих пакетов и поправить.

B>Одно другому не мешает, ИМХО, в стандартном виде (tar.gz) пакет должен существовать, для того чтобы быть хоть в какой-то мере переносимым, а создание пакетов — это дело, ИМХО, в большей степени создателя дистрибутива ОС, а не дистрибутива программы.

Да, но надо им помогать. Если у тебя Makefile сгенерирован automake, он пригоден одновременно и для установки простым make install по указанному prefix, и для управления этим через rpmbuild или аналогичное средство deb, и через фряшную систему с bsd.port.mk.
А если ты будешь писать нечто своё самопальное, то в лучшем случае на него наложат патч
размером больше чем твой исходник, а в худшем — выбросят нафиг со словами "нехер бодаться с этим вторичным продуктом, когда есть более вменяемые альтернативы".

MAG>>Короче, нету, похоже, у тебя опыта одновременного администрирования по крайней мере пяти серверов.

B>Может потому, что я выбираю не линукс, а FreeBSD и у меня не возникает таких сложностей?

А у меня ~40 систем под FreeBSD. И я согласен с MAG. Более того, под Linux c RPM
проблем меньше — это я тебе говорю как старый BSD'шник и известный в соответствующих
кругах всего exUSSR линуксоненавистник.

B>PS. я думаю дальше не стоит продолжать этот флейм, а 5 серверов — это не показатель крутизны и сложности, в мире юникс всё делает элементарно и большей частью автоматически.. (правда нужно немного для этого потрудится)


Ну так зачем много трудиться, когда достаточно Makefile.am на десять тривиальных строчек?
)))

P.S. Не хочешь automake — есть Imake, есть масса других средств. Просто это — достаточно
удобное и стандартное, чтобы его рассматривать как вариант по умолчанию.
The God is real, unless declared integer.
Re[7]: инсталляторы для linux
От: butcher Россия http://bu7cher.blogspot.com
Дата: 26.01.04 10:12
Оценка:
Здравствуйте, netch80, Вы писали:

Ну я же просил не разводить флейм )

N>Ну у меня есть опыт и с тем и с тем. И я согласен с MAG.

я не против его точки зрения, я всего лишь говорю что дистрибутив должен существовать в формате tar.gz

N>Можно. Вопрос не в том, чтобы просто поставить. Вопрос в том, чтобы иметь возможность

N>поставить и в отдельный каталог, и в стандартный. Кроме того, обеспечить как работу инсталлятора самого по себе (в тестовых целях в какой-нибудь /usr/local/tmp222),
N>так и на постоянное место. А для этого и нужна адекватная тому инфраструктура.
N>Например, такую инфраструктуру — в виде Makefile — делает GNU automake, и я рекомендую смотреть именно на него в первую очередь (когда нет причин использовать что-то другое).

само собой, не руками же его стряпать (хотя и такие встречаются

N>У меня тоже в основном FreeBSD. Но ты рассказываешь про установку в /usr/local/нечто,

N>которая не зависит ни от FreeBSD ни от вообще free unices. Так можно ставить куда угодно
N>где вообще есть файловая система. Но если дистрибутив будет состоять из сплошных
N>/usr/${zuka}/, а остальное будет линками на него — это не будет нормальный вариант
N>дистрибутива.

про линке это не я предлагал

N>"Всё сделали" — это сказано крепко, но неадекватно. Почитай cvs-ports, о том, как регулярно выносят тот или иной порт за испорченный pkg-plist или молчаливое затирание чужих данных. О том, что ты не можешь сделать make package без make install (что умеет, например, OpenBSD, где фряшную систему портов довели до ума — в этом смысле). Ни на какие

N>мысли не наводит? Порты — не критерий, критерий — там, где пакетный менеджер хоть сколько-то похож на человеческий, а это rpm или deb, и который умеет такие простые вещи,
N>как собирать пакеты ставя их во временный каталог вместо общего корня.

N>А у меня ~40 систем под FreeBSD. И я согласен с MAG. Более того, под Linux c RPM

N>проблем меньше — это я тебе говорю как старый BSD'шник и известный в соответствующих
N>кругах всего exUSSR линуксоненавистник.


вот такого флейм я и боялся, я не противник линукса, мне просто нравится БСД, если кому-то не нравится, сидите в своём линухе

B>>PS. я думаю дальше не стоит продолжать этот флейм, а 5 серверов — это не показатель крутизны и сложности, в мире юникс всё делает элементарно и большей частью автоматически.. (правда нужно немного для этого потрудится)


N>Ну так зачем много трудиться, когда достаточно Makefile.am на десять тривиальных строчек?

N>))))

Я всего лишь хотел указать на то, что обязательно необходим вариант с Makefile..
а пакет для той системы под которую написана прога — это уже по своему усмотрению

Нет ничего невозможного..
Re[8]: CoCreateGuid в Unix
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 26.01.04 10:21
Оценка: :)
Здравствуйте, butcher, Вы писали:

B>Ну я же просил не разводить флейм )


А где ты увидел флейм?? Я наоборот доказываю непредвзятость своей позиции.
)

N>>Ну у меня есть опыт и с тем и с тем. И я согласен с MAG.

B>я не против его точки зрения, я всего лишь говорю что дистрибутив должен существовать в формате tar.gz
Это да. Но что в этом тарболле — существенно не менее, чем его существование)
И если ты дашь максимум средств для сборки и установки во всех основных применяемых сейчас
технологиях (а это и установка вручную, и установка под пакетными менеджерами), тебе скажут спасибо
значительно вероятнее, чем если ты такого не дашь.

N>>А у меня ~40 систем под FreeBSD. И я согласен с MAG. Более того, под Linux c RPM

N>>проблем меньше — это я тебе говорю как старый BSD'шник и известный в соответствующих
N>>кругах всего exUSSR линуксоненавистник.
B>)
B>вот такого флейм я и боялся, я не противник линукса, мне просто нравится БСД, если кому-то не нравится, сидите в своём линухе
Ну и мне FreeBSD больше нравится — на порядок.

B>>>PS. я думаю дальше не стоит продолжать этот флейм, а 5 серверов — это не показатель крутизны и сложности, в мире юникс всё делает элементарно и большей частью автоматически.. (правда нужно немного для этого потрудится)


N>>Ну так зачем много трудиться, когда достаточно Makefile.am на десять тривиальных строчек?

N>>))))

B>Я всего лишь хотел указать на то, что обязательно необходим вариант с Makefile..

B>а пакет для той системы под которую написана прога — это уже по своему усмотрению

Вот-вот. А я говорю, что чтобы твоя программа была известна за пределами "узкого круга ограниченных людей" — надо ориентироваться и на линуксы, а это сейчас практически 100% означает — использовать automake или иным образом обеспечивать минимум проблем при сборке через rpmbuild.
The God is real, unless declared integer.
Re[9]: CoCreateGuid в Unix
От: butcher Россия http://bu7cher.blogspot.com
Дата: 26.01.04 10:27
Оценка:
Здравствуйте, netch80, Вы писали:


свой человек

Нет ничего невозможного..
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.