Пара утилиток для создания пакетов

SLAX, Deep Style, ZenWalk

Модератор: Модераторы разделов

PIF
Сообщения: 391

Пара утилиток для создания пакетов

Сообщение PIF »

Делать было нефига на праздниках, компилил себе пакетики, надоело.
Написал вот такую фигню для автоматизации:

Код: Выделить всё

$cat slack-desc
       |-----handy-ruler---------------------------------------------|
packager-tools:
packager-tools: Two simple tools for making Slackware packages.
packager-tools: packager.sh is a bash script for making package from source
packager-tools: and slackdescriber - utility for simplify making slack-desc
packager-tools: files written on C programming language.
packager-tools: You can look the source of slackdescriber in /usr/local/src.
packager-tools: Run packager.sh --about or read packager-tools man page
packager-tools: to learn more.


Просто переименуйте файл в packager-tools.tgz - это готовый пакет.


Вышла версия 1.0! :)

Код: Выделить всё


pif[tmp]$ cat slack-desc
              |-----handy-ruler---------------------------------------------|
packager-tools-1.0:
packager-tools-1.0: Two simple tools for making Slackware packages.
packager-tools-1.0: packager.sh is a bash script for making package from source
packager-tools-1.0: and slackdescriber - utility for simplify making slack-desc
packager-tools-1.0: files written on C programming language.
packager-tools-1.0: You can look the source of slackdescriber in /usr/local/src.
packager-tools-1.0: Run packager.sh --about or read packager-tools man page
packager-tools-1.0: to learn more.
packager-tools-1.0:
packager-tools-1.0: This package and utilities made by
packager-tools-1.0: Epifanov 'PIF#' Anatoly
packager-tools-1.0: epifanov1@jabber.ru


Теперь ./configure обязательно надо запускать вручную. Все файлы находятся в /usr/local.
Подчистил man page.
Вобщем УРА-А-А-А-а-а-а-а!!!.... :drunk:
Спасибо сказали:
Аватара пользователя
mark
Бывший модератор
Сообщения: 2055
Статус: ...
ОС: Windows 7

Re: Пара утилиток для создания пакетов

Сообщение mark »

Что-то вроде checkinstall???
Спасибо сказали:
PIF
Сообщения: 391

Re: Пара утилиток для создания пакетов

Сообщение PIF »

mark писал(а):
03.01.2006 18:21
Что-то вроде checkinstall???

Э-э-э... А кто такой checkinstall?
У меня такая фигня получилась:

Код: Выделить всё

$ packager.sh --about

packager.sh - is a tool, allows you to make a Slackware GNU/Linux
.tgz packages simplify.
This bash-script runs ./configure script, makes the compilation
and installs the package`s files to directory specified by you.
After this, it helps you to write a "slack-desc" file and make
final package.
To configure packager.sh just edit "Config section" in
/usr/local/bin/packager.sh

packager.sh - утилита, позволяющая упростить сборку .tgz
пакетов для Slackware GNU/Linux.
Это bash-скрипт, запускающий ./configure, make и устанавливающий
файлы пакета в указанную вами директорию.
потом packager.sh поможет вам написать slack-desc и собрать
конечный пакет.
Чтобы настроить packager.sh достаточно отредактировать
"Config-section" файла /usr/local/bin/packager.sh
$ packager.sh --help

Your build directory is /home/pif/tmp/build
     editor             emacs
Usage: packager.sh <options> [package name]
Options:
-        no options, normal run
-nc      do not execute ./configure script
-i       do not execute "./configure" & "make", just "make install"
--about  tells you about packager.sh
--help   displays this message


А slackdescriber - вообще фигня. Указываешь ему имя пакета аргументом и он создает шаблон slack-desc для пакета с таким именем:

Код: Выделить всё

pif@pif:~/tmp$ slackdescriber some_pack
pif@pif:~/tmp$ cat slack-desc
         |-----handy-ruler---------------------------------------------|
some_pack:
pif@pif:~/tmp$
Спасибо сказали:
Аватара пользователя
mark
Бывший модератор
Сообщения: 2055
Статус: ...
ОС: Windows 7

Re: Пара утилиток для создания пакетов

Сообщение mark »

Э-э-э... А кто такой checkinstall?


Читаем, в слаке по-моему в экстре есть...
Спасибо сказали:
PIF
Сообщения: 391

Re: Пара утилиток для создания пакетов

Сообщение PIF »

mark писал(а):
03.01.2006 18:38
Э-э-э... А кто такой checkinstall?


Читаем, в слаке по-моему в экстре есть...

БЛИН!!! Ну ничего нового не изобретешь! Все уже нафиг изобрели! :D
Спасибо сказали:
Аватара пользователя
TuLiss
Сообщения: 1611
Статус: 01100
ОС: Gentoo,Ubuntu,MacOS X

Re: Пара утилиток для создания пакетов

Сообщение TuLiss »

PIF писал(а):
03.01.2006 18:42
mark писал(а):
03.01.2006 18:38

Э-э-э... А кто такой checkinstall?


Читаем, в слаке по-моему в экстре есть...

БЛИН!!! Ну ничего нового не изобретешь! Все уже нафиг изобрели! :D


а мне checkinstall не нравится, так что изобретай альтернативу =) и Патрику отпишись.
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Пара утилиток для создания пакетов

Сообщение t.t »

(TuLiss @ Jan 3 2006, в 21:45) писал(а):а мне checkinstall не нравится
Чем, если не секрет?
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
muhas
Сообщения: 185
Статус: ленивый арчевод
ОС: Archlinux i686 Current

Re: Пара утилиток для создания пакетов

Сообщение muhas »

t.t писал(а):
03.01.2006 21:48
(TuLiss @ Jan 3 2006, в 21:45) писал(а):а мне checkinstall не нравится
Чем, если не секрет?

Мне тоже интересно чем это checkinstall не нравиться?
ЗЫ. а альтернатива нужна, особенно с уклоном в специфику слаки! Так что уважаемый PIF пишите альтернативу, а мы(форумчане) будем помогать!
Реальность многогранна поэтому не может быть той правдой, которая «всего одна».
Спасибо сказали:
PIF
Сообщения: 391

Re: Пара утилиток для создания пакетов

Сообщение PIF »

muhas писал(а):
03.01.2006 22:54
t.t писал(а):
03.01.2006 21:48

(TuLiss @ Jan 3 2006, в 21:45) писал(а):а мне checkinstall не нравится
Чем, если не секрет?

Мне тоже интересно чем это checkinstall не нравиться?
ЗЫ. а альтернатива нужна, особенно с уклоном в специфику слаки! Так что уважаемый PIF пишите альтернативу, а мы(форумчане) будем помогать!

Да вроде все что можно уже написано. Можно конечно в slackdescriber опцию --help добавить :)
Если там чего не хватает - говорите, допишу, если смогу.
Доков как всегда не хватает.
Спасибо сказали:
KriK
Сообщения: 90
ОС: Ubuntu 7.04

Re: Пара утилиток для создания пакетов

Сообщение KriK »

А меня сорцы устраивают и большая куча пакетов с linuxpackages.org. Обычно скачиваю сорец, компилю, нифига не получается, глюки, захожу на linuxpackages, а там оказывается уже есть тот пакет, который нужен, качаю ставлю. Вот например скачал кде-3.5, начала компилить, перед этим удалил старую кде, так эта стала просить кучу всего другого, кноструктор в нет полез, чтоб еще большую кучу сорцов скачать. Ща вот осталось два часа посидеть и уже полностью сольется кде в пакетах уже для слаки - прощай геморой! :)))
У меня вопрос один есть. Слака она же как и все остальные дистры, ставит сначало на файловую систему корневые папки, конфиги и начальную систему туда кидает, т.е. как в генту stage, потом уже пакеты ставит. Еси так, то как этот файл называется, чтоб его самому подправить?
Linux Registered user #392927
Спасибо сказали:
L.Marvell
Сообщения: 29

Re: Пара утилиток для создания пакетов

Сообщение L.Marvell »

А я пользую makepkg :)
Спасибо сказали:
Аватара пользователя
TuLiss
Сообщения: 1611
Статус: 01100
ОС: Gentoo,Ubuntu,MacOS X

Re: Пара утилиток для создания пакетов

Сообщение TuLiss »

t.t писал(а):
03.01.2006 21:48
Чем, если не секрет?


Да сложно сказать, просто я для себя свой скрипт написал, который мне нравится больше =)
В частности не нравится как реализованна заполнение описания пакета.
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Спасибо сказали:
Аватара пользователя
muhas
Сообщения: 185
Статус: ленивый арчевод
ОС: Archlinux i686 Current

Re: Пара утилиток для создания пакетов

Сообщение muhas »

Чего больше всего хочется в твоём скрипте, так это возможность при его запуске задавать параметры для ./configure и make, а то я чё-то не нашел. Тады этот скрипт давать тем слакварщикам которые спрашивают "как установливать из исходников?" ;) Да и ИМХО так приятней и удобней будет всё из одной команды устанавливать ;)
Но насколько я помню это можно реализовать с помошью команды shift, короче чем смогу тем помогу, да и думаю форумчане помогут...


Ещё хотелось бы что бы после выполнения ./configure задовался вопрос - продолжать или нет, а то сразу make выполняется, что не всегда нужно.

2TuLiss & 2All
А не подскажешь, как сделать чтобы вводить не однострочную переменную как в read var, а многострочную. А то скрипт пишу и не знаю как это реализовать (учюся только)
Реальность многогранна поэтому не может быть той правдой, которая «всего одна».
Спасибо сказали:
Аватара пользователя
vg2.0
Сообщения: 832
Статус: *BSD admin ;)
ОС: *BSD =)

Re: Пара утилиток для создания пакетов

Сообщение vg2.0 »

muhas писал(а):
05.01.2006 02:07
2TuLiss & 2All
А не подскажешь, как сделать чтобы вводить не однострочную переменную как в read var, а многострочную. А то скрипт пишу и не знаю как это реализовать (учюся только)

http://www.linuxshop.ru/lib/prog/make_379_manual.html#SEC67
FreeBSD 6-stable
FreeBSD 5.5-stable
Спасибо сказали:
Аватара пользователя
TuLiss
Сообщения: 1611
Статус: 01100
ОС: Gentoo,Ubuntu,MacOS X

Re: Пара утилиток для создания пакетов

Сообщение TuLiss »

muhas писал(а):
05.01.2006 02:07
Ещё хотелось бы что бы после выполнения ./configure задовался вопрос - продолжать или нет, а то сразу make выполняется, что не всегда нужно.


я задал это все в виде переменной в отдельном файле , что бы не моячило в основном, + там дописал для себя под разные процессоры.

Но все равно, скрипты скриптами, а чаще все же приходится собирать руками =)
те у меня для программ которые я часто собираю, уже есть заточенные под них скрипты =)
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Спасибо сказали:
Аватара пользователя
muhas
Сообщения: 185
Статус: ленивый арчевод
ОС: Archlinux i686 Current

Re: Пара утилиток для создания пакетов

Сообщение muhas »

(TuLiss @ Jan 5 2006, в 03:27) писал(а):я задал это все в виде переменной в отдельном файле , что бы не моячило в основном, + там дописал для себя под разные процессоры.
Согласен, удлобно!

(TuLiss @ Jan 5 2006, в 03:27) писал(а):Но все равно, скрипты скриптами, а чаще все же приходится собирать руками =)
Учтите, не всегда приходится собирать руками! Я к примеро делаю это очень-очень редко, и с каждым днйм всё реже.
Согласитесь гораздо удобнее запустить один универсальный скрипт с кучей параметров (а ещё лучше и без них) чем запускать ./configure с кучей параметров && make && make install (а ведь ещё надо собрать пакет, что бы потом была возможность легко удалить устанавлеваемое), В этом и состоит ИМХО главный подвох в Линукс для новичков пришедших из мира windows (к коим я себя до сих пор отношу)

2vg2.0 Огромнейшее спосибо, как я раньше этого не нашел. Спасибо!
Реальность многогранна поэтому не может быть той правдой, которая «всего одна».
Спасибо сказали:
Аватара пользователя
TuLiss
Сообщения: 1611
Статус: 01100
ОС: Gentoo,Ubuntu,MacOS X

Re: Пара утилиток для создания пакетов

Сообщение TuLiss »

muhas писал(а):
05.01.2006 13:50
Согласитесь гораздо удобнее запустить один универсальный скрипт с кучей параметров (а ещё лучше и без них) чем запускать ./configure с кучей параметров && make && make install


Да не получится такой скрипт. Ну просто пример , что ./configure например для squid т clamav будет разный по параметрам =)
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Спасибо сказали:
Аватара пользователя
muhas
Сообщения: 185
Статус: ленивый арчевод
ОС: Archlinux i686 Current

Re: Пара утилиток для создания пакетов

Сообщение muhas »

(TuLiss @ Jan 5 2006, в 14:54) писал(а):а не получится такой скрипт. Ну просто пример , что ./configure например для squid т clamav будет разный по параметрам =)

Так я и имею в виду что хотелось бы чтобы можно было задавать параметры прямо из скрипта packager_tools.tgz, чтобы кажды раз не править файл или ещё чего...
Реальность многогранна поэтому не может быть той правдой, которая «всего одна».
Спасибо сказали:
PIF
Сообщения: 391

Re: Пара утилиток для создания пакетов

Сообщение PIF »

muhas писал(а):
05.01.2006 15:50
(TuLiss @ Jan 5 2006, в 14:54) писал(а):
а не получится такой скрипт. Ну просто пример , что ./configure например для squid т clamav будет разный по параметрам =)

Так я и имею в виду что хотелось бы чтобы можно было задавать параметры прямо из скрипта packager_tools.tgz, чтобы кажды раз не править файл или ещё чего...

Я тоже долго об этом думал, меня это очень долго мучало :)
Решил, что универсальный скрипт все равно не напишешь, ручная работа все равно будет. Кроме того, не все пакеты собираю из source`а (OO.org, например из исходников собирать помрешь).
Думаю, как сдам сессию (тьфу-тьфу-тьфу) это дело вылизать и выпустить.
Сейчас у меня где-то неделю времени не почти будет - придется изучать трансформаторы иже с ними :)
Спасибо сказали:
Аватара пользователя
TuLiss
Сообщения: 1611
Статус: 01100
ОС: Gentoo,Ubuntu,MacOS X

Re: Пара утилиток для создания пакетов

Сообщение TuLiss »

PIF писал(а):
05.01.2006 17:23
(OO.org, например из исходников собирать помрешь).
Думаю, как сдам сессию (тьфу-тьфу-тьфу) это дело вылизать и выпустить.
Сейчас у меня где-то неделю времени не почти будет - придется изучать трансформаторы иже с ними :)


кстати а где почитать как правильно собирать OO из исходников? а то что то не нашел.
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Спасибо сказали:
Аватара пользователя
muhas
Сообщения: 185
Статус: ленивый арчевод
ОС: Archlinux i686 Current

Re: Пара утилиток для создания пакетов

Сообщение muhas »

(PIF @ Jan 5 2006, в 17:23) писал(а):Я тоже долго об этом думал, меня это очень долго мучало
Решил, что универсальный скрипт все равно не напишешь, ручная работа все равно будет.

Про параметры для конфигуре, я твой скрипт у себя подправил, если кому надо выложу :)
Реальность многогранна поэтому не может быть той правдой, которая «всего одна».
Спасибо сказали:
PIF
Сообщения: 391

Re: Пара утилиток для создания пакетов

Сообщение PIF »

muhas писал(а):
06.01.2006 10:36
(PIF @ Jan 5 2006, в 17:23) писал(а):
Я тоже долго об этом думал, меня это очень долго мучало
Решил, что универсальный скрипт все равно не напишешь, ручная работа все равно будет.

Про параметры для конфигуре, я твой скрипт у себя подправил, если кому надо выложу :)

Выкладывай!
Выкладывайте вообще все наработки по этой теме здесь (если модераторы и админы не против :))
Спасибо сказали:
Аватара пользователя
muhas
Сообщения: 185
Статус: ленивый арчевод
ОС: Archlinux i686 Current

Re: Пара утилиток для создания пакетов

Сообщение muhas »

Всё что поменял в файле...


ЗЫ. скрипт хороший, продолжай работу над ним забей на сессию ;)
Ку за скрипт!
Реальность многогранна поэтому не может быть той правдой, которая «всего одна».
Спасибо сказали:
PIF
Сообщения: 391

Re: Пара утилиток для создания пакетов

Сообщение PIF »

muhas писал(а):
06.01.2006 13:04
ЗЫ. скрипт хороший, продолжай работу над ним забей на сессию ;)

Не, спасибо :) Сессия - это святое :D
Спасибо сказали:
Аватара пользователя
muhas
Сообщения: 185
Статус: ленивый арчевод
ОС: Archlinux i686 Current

Re: Пара утилиток для создания пакетов

Сообщение muhas »

Я в скрипте ошибку допустил, причём грубую, глупую и не одну, но вы её уже заметили :)

Вот исправляю

Код: Выделить всё

TMP_DIR=~/tmp/build
EDITOR=vi # ваш любимый редактор
caase=$1
pack_name=$2
help=$2
#---Code-section---------------#
  #---Interface :)--------------#
parametr="$3 $4 $5 $6 $7 $8 $9"
shift 9
parametr="$parametr $1 $2 $3 $4 $5 $6 $7 $8 $9"
shift 9
parametr="$parametr $1 $2 $3 $4 $5 $6 $7 $8 $9"
#Надеюсь 25 параметров хватит? Если нет то скопируйте последние 2 строки ещё парочку раз :)


case $caase in
    -)
# это лично для меня :) просто на алиасах так удобнее, чем каждый раз ./configure --help вводить
    if [ $help = "--help" ]

Кривовато (знаний мало), но работает ;)

ЗЫ. а можно я про скрипт на PskovLUG напишу, там по голосованию большинство слаку юзают -мож присоединятся

добавлено
лоханулся я :(
Когда переменных мало то возможна ошибка ./configure, поэтому там где shift приходиться убирать :( ибо с shift я чё-то не то сделал:(
вроде в конструкции
parametr="$3 $4 $5 $6 $7 $8 $9"
shift 9
parametr="$parametr $1 $2 $3 $4 $5 $6 $7 $8 $9"
shift 9
parametr="$parametr $1 $2 $3 $4 $5 $6 $7 $8 $9"
echo $parametr
всё работеет

но почему-то ./configure выполняется с параметрами - и т.д.. - не понимаю...
Странно - с утра всё работалло - а что я исправлял не помню :(
Реальность многогранна поэтому не может быть той правдой, которая «всего одна».
Спасибо сказали:
PIF
Сообщения: 391

Re: Пара утилиток для создания пакетов

Сообщение PIF »

Блин, muhas, выкинь ты параметры ./configure нафиг! Сейчас некоторые программы вообще без него собираются.
ЗЫ. а можно я про скрипт на PskovLUG напишу, там по голосованию большинство слаку юзают -мож присоединятся

Присоединяться пока некуда - тоже мне, блин проект - 1 скрипт + 1 сишная програмка :).
Скрипт естественно выкладывай - я его для того здесь и выложил, чтобы им пользовались, но лучше весь новый пакет - я его сегодня к первому сообщению прицепил.
И README в нем посмотри, ОК?
Спасибо сказали:
Аватара пользователя
muhas
Сообщения: 185
Статус: ленивый арчевод
ОС: Archlinux i686 Current

Re: Пара утилиток для создания пакетов

Сообщение muhas »

А чё там изменено, чёт я не доглядел?

всё-таки я оставил себе возможность задавать 7 параметров(надо будет больше придётся вручную добавлять) после имени пакета...
Блин, muhas, выкинь ты параметры ./configure нафиг! Сейчас некоторые программы вообще без него собираются.
С этим согласен - остановлюсь на достигнутом, но задачу эту всё-таки в свободное время решу (наверное)

И README в нем посмотри, ОК?
тыбы лучше написал в нём как скриптом пользоваться, а то непонимающих много (я соседу сегодня двадцать минут объяснял), хотя такие и до README не добирутся...
Реальность многогранна поэтому не может быть той правдой, которая «всего одна».
Спасибо сказали:
Аватара пользователя
vg2.0
Сообщения: 832
Статус: *BSD admin ;)
ОС: *BSD =)

Re: Пара утилиток для создания пакетов

Сообщение vg2.0 »

muhas писал(а):
06.01.2006 19:45
тыбы лучше написал в нём как скриптом пользоваться, а то непонимающих много (я соседу сегодня двадцать минут объяснял), хотя такие и до README не добирутся...

Сосед тоже linux'оид? :) B)
FreeBSD 6-stable
FreeBSD 5.5-stable
Спасибо сказали:
Аватара пользователя
muhas
Сообщения: 185
Статус: ленивый арчевод
ОС: Archlinux i686 Current

Re: Пара утилиток для создания пакетов

Сообщение muhas »

Извиняюсь за оффтоп
(vg2.0 @ Jan 7 2006, в 02:31) писал(а):Сосед тоже linux'оид?
Сосед мой брат, и из-за него я когда-то перешёл на линукс (он спалил винт со всем прекрасным - из дисков с ОС был под рукой лишь ubuntu)
Реальность многогранна поэтому не может быть той правдой, которая «всего одна».
Спасибо сказали:
Аватара пользователя
muhas
Сообщения: 185
Статус: ленивый арчевод
ОС: Archlinux i686 Current

Re: Пара утилиток для создания пакетов

Сообщение muhas »

Код: Выделить всё

# код для задания параметров ./configure, если надло то и для make
# следует лишь добавить $param после make
caase=$1        # входной параметр для case
pack_name=$2    # задаём имя пакета
param="$3 $4 $5 $6 $7 $8 $9" # задаём начальные параметры для ./configure

# цикл создающий параметры для ./configure
# (наконец всё работае более-мене красиво)
while true
        do
                if [ .$9 != . ]; then
                        shift
                        param="$param $9"
                        echo $param
                else
                        break
                fi
        done
# конец кода, для создания параметров к ./configure (или make)
# к сожалению из-за такой конструкции пришлось
# поменять далее $2 на $pack_name и $1 на $caase
Реальность многогранна поэтому не может быть той правдой, которая «всего одна».
Спасибо сказали: