Сборка пакетов rpm, ( для начинающих сборщиков и кодеров ) |
Поделиться |
Здравствуйте, гость ( Вход | Регистрация )
Сборка пакетов rpm, ( для начинающих сборщиков и кодеров ) |
Поделиться |
8.4.2016, 22:51
Сообщение
#61
|
|
Профессионал Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: 20 |
Я именно это и сделал в версии 0.2 :-) Вот мой новый скрипт: Код #!/bin/sh a= . install2-init-functions echo 'KOMETA' > $destdir/etc/altlinux-release sed -i 's/ALT Linux/KOMETA/' $destdir/etc/rc.d/rc.sysinit Что означает эта строчка? Код a= . install2-init-functions Не буду врать ,не знаю, заготовку для этого скрипта я как обычно спер откуда-то из готовых фичей. Такие вопросы лучше задавать более грамотным людям , например Михаилу ( gvy ) PS кстати, почитал тут ваше общение с zerg-ом и понял что он видимо не любит разные фичи а правит все в своей сборочнице (я могу ошибаться ). Поскольку у нас слава Богу GPL то вот вам его m-p-d, может быть найдете что-либо интересное для себя: http://git.altlinux.org/people/zerg/packag...p.git;a=summary |
|
|
9.4.2016, 22:36
Сообщение
#62
|
|
Мастер Группа: Активный Пользователь Сообщений: 542 Регистрация: 4.2.2016 Вставить ник Цитата Пользователь №: 2850 Страна: Россия Город: Не указан Пол: Муж. Репутация: 2 |
Спасибо! Покопаюсь :-)
Посмотрю что можно ещё фичами поправить в мои проблемах |
|
|
9.4.2016, 23:14
Сообщение
#63
|
|
Мастер Группа: Активный Пользователь Сообщений: 542 Регистрация: 4.2.2016 Вставить ник Цитата Пользователь №: 2850 Страна: Россия Город: Не указан Пол: Муж. Репутация: 2 |
А где брать примеры и заготовки спеков? Хочу попробовать пару вещей:
1. Упаковать в rpm утилиту: http://solvpro.ru/187 2. Сделать rpm - обёртку для другого rpm. Чтобы мой rpm установил другую программу rpm, а потом настроил конфиги так как я укажу. Такое возможно? 3. Сделать rpm, который удалит, если установлена, версию программы старую и установит новую. Это нужно для случаев перехода с версии, допустим 4 до 5, т.к. обычно автообновление из реп происходит с версии 4.5 до 4.6 или 4.7, но не до 5. Программы в репах иногда так и называются "программа версия 5" и "программа версия 6" и это получается разные программы, поэтому и не обновляется... :-( |
|
|
10.4.2016, 10:51
Сообщение
#64
|
|
Профессионал Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: 20 |
А где брать примеры и заготовки спеков? Хочу попробовать пару вещей: 1. Упаковать в rpm утилиту: http://solvpro.ru/187 2. Сделать rpm - обёртку для другого rpm. Чтобы мой rpm установил другую программу rpm, а потом настроил конфиги так как я укажу. Такое возможно? 3. Сделать rpm, который удалит, если установлена, версию программы старую и установит новую. Это нужно для случаев перехода с версии, допустим 4 до 5, т.к. обычно автообновление из реп происходит с версии 4.5 до 4.6 или 4.7, но не до 5. Программы в репах иногда так и называются "программа версия 5" и "программа версия 6" и это получается разные программы, поэтому и не обновляется... :-( Вот примеры спеков : https://www.altlinux.org/SampleSpecs Вот хорошая статья : https://www.altlinux.org/Spec Здесь можно посмотреть любой спек : http://packages.altlinux.org/ или просто скачать src-ху и командой rpm -i имя.src распаковать все это в ваш каталог ~/RPM для редактирования или пересборки этого пакета. 2) это типичный метапакет, правда обычно такие пакеты ставят несколько других - например xfce-minimal. 3) такая нумерация сделана для того чтобы можно было выбирать какой версией программы пользоваться, во всех остальных случаях версии программы приписанные к ее имени намертво - ошибочны. |
|
|
11.4.2016, 15:01
Сообщение
#65
|
|
Мастер Группа: Активный Пользователь Сообщений: 542 Регистрация: 4.2.2016 Вставить ник Цитата Пользователь №: 2850 Страна: Россия Город: Не указан Пол: Муж. Репутация: 2 |
Тяжко читать много, но разберусь постараюсь
Прикрепленные файлы
|
|
|
16.4.2016, 22:48
Сообщение
#66
|
|
Мастер Группа: Активный Пользователь Сообщений: 542 Регистрация: 4.2.2016 Вставить ник Цитата Пользователь №: 2850 Страна: Россия Город: Не указан Пол: Муж. Репутация: 2 |
Не буду врать ,не знаю, заготовку для этого скрипта я как обычно спер откуда-то из готовых фичей. Такие вопросы лучше задавать более грамотным людям , например Михаилу ( gvy ) PS кстати, почитал тут ваше общение с zerg-ом и понял что он видимо не любит разные фичи а правит все в своей сборочнице (я могу ошибаться ). Поскольку у нас слава Богу GPL то вот вам его m-p-d, может быть найдете что-либо интересное для себя: http://git.altlinux.org/people/zerg/packag...p.git;a=summary А можно ли в этом скрипте ещё и проинсталлировать пакет какой-нибудь? Ну или сделать так не в скрипте, а в настройках установки, чтобы определённый пакет запустился устанавливаться после всех остальных? |
|
|
16.4.2016, 23:01
Сообщение
#67
|
|
Профессионал Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: 20 |
А можно ли в этом скрипте ещё и проинсталлировать пакет какой-нибудь? Ну или сделать так не в скрипте, а в настройках установки, чтобы определённый пакет запустился устанавливаться после всех остальных? Так этот скрипт и есть сборочная система m-p-d , там в /profiles/pkg/lists как раз и лежат списки пакетов. А зачем запускать пакет на установку после всех остальных ? |
|
|
16.4.2016, 23:40
Сообщение
#68
|
|
Мастер Группа: Активный Пользователь Сообщений: 542 Регистрация: 4.2.2016 Вставить ник Цитата Пользователь №: 2850 Страна: Россия Город: Не указан Пол: Муж. Репутация: 2 |
Так этот скрипт и есть сборочная система m-p-d , там в /profiles/pkg/lists как раз и лежат списки пакетов. А зачем запускать пакет на установку после всех остальных ? Там не списки пакетов лежат. Там названия. Я же говорю про файл rpm. Установить именно конкретный файл rpm командой rpm -Uvh file.rpm Хочу одну штуку попробовать провернуть Обещаю рассказать что из этого получится |
|
|
17.4.2016, 18:55
Сообщение
#69
|
|
Мастер Группа: Активный Пользователь Сообщений: 542 Регистрация: 4.2.2016 Вставить ник Цитата Пользователь №: 2850 Страна: Россия Город: Не указан Пол: Муж. Репутация: 2 |
Разберем по строкам секцию install: Код %install %define hookdir %_datadir/install2/preinstall.d mkdir -p %buildroot%hookdir install -pm755 *.sh %buildroot%hookdir/ 1) определяется макрос hookdir как /usr/share/install2/preinstall.d 2) в сборочной среде создается этот каталог 3) в него копируются любые распакованные скрипты из нашего архива c соответствующими правами ( можете добавить туда своих или отредактировать текущий ). Этот скрипт в инсталяторе запускается сразу после установки пакетов , до установки загрузчика. Подробнее про инсталятор и его стадии здесь : https://www.altlinux.org/Installer/devel и здесь : https://www.altlinux.org/Installer/common А я могу скопировать файл, допустим test.tar.gz, допустим в папку /test/ новой системы? Я так понимаю этот test.tar.gz я могу положить в одну папку моим sh и запаковать в rpm их вместе? sh я скопирую в hookdir, а test.tar.gz в /test/ Это возможно? Сработает такое? Код %install %define hookdir %_datadir/install2/preinstall.d mkdir -p %buildroot%hookdir install -pm755 *.sh %buildroot%hookdir/ mkdir %buildroot%/test cp test.tar.gz %buildroot%/test/ Какого размера может быть этот test.tar.gz? Есть ограничения? Допустим может он весить 2-3 гига? Это ведь получится пакет rpm тоже будет весить 2-3 гига Сообщение отредактировал tema - 17.4.2016, 18:56 |
|
|
17.4.2016, 19:29
Сообщение
#70
|
|
Профессионал Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: 20 |
А я могу скопировать файл, допустим test.tar.gz, допустим в папку /test/ новой системы? Я так понимаю этот test.tar.gz я могу положить в одну папку моим sh и запаковать в rpm их вместе? sh я скопирую в hookdir, а test.tar.gz в /test/ Это возможно? Сработает такое? Код %install %define hookdir %_datadir/install2/preinstall.d mkdir -p %buildroot%hookdir install -pm755 *.sh %buildroot%hookdir/ mkdir %buildroot%/test cp test.tar.gz %buildroot%/test/ Какого размера может быть этот test.tar.gz? Есть ограничения? Допустим может он весить 2-3 гига? Это ведь получится пакет rpm тоже будет весить 2-3 гига Думаю сработает, правда насчет 2-3 гигов не знаю , никогда так не делал. Запихать можно будет в /usr/share/имя_программы, в тот же /usr/bin архив засунуть не получится, rpm не пропустит. Зачем вообще архив, можно просто папку с файлами скопировать тогда ничего не надо будет распаковывать после установки пакета. Правда в случае наличия скрытых файлов / каталогов в этой папке их надо будет прописывать отдельно. Сообщение отредактировал kostyalamer - 17.4.2016, 20:00 |
|
|
18.4.2016, 1:46
Сообщение
#71
|
|
Мастер Группа: Активный Пользователь Сообщений: 542 Регистрация: 4.2.2016 Вставить ник Цитата Пользователь №: 2850 Страна: Россия Город: Не указан Пол: Муж. Репутация: 2 |
Похоже не выйдет. Не хочет у меня rpm размером 4 гига собираться :-(
Смысл в чём: я хочу, чтобы этот большой архив был на установочном диске и при установке скопировался куда-нибудь, а потом при первом запуске системы распаковать его и раскидать файлы из этого архива по папкам так как я хочу... Возможно, это можно сделать и без rpm пакета? Просто пока мне известен только этот способ... вот ответ rpm: Код .......
Поиск Provides (используя /usr/lib/rpm/find-provides) Executing: /bin/sh -e /tmp/.private/tema/rpm-tmp.zrH9Ne find-provides: running scripts (alternatives,debuginfo,fpc,gir,lib,mono,pam,perl,pkgconfig,python,shell,type lib) Поиск Requires (используя /usr/lib/rpm/find-requires) Executing: /bin/sh -e /tmp/.private/tema/rpm-tmp.mum4xh find-requires: running scripts (cpp,debuginfo,files,fpc,gir-js,gir-python,gir,lib,mono,monolib,pam,perl,pkgconfig,pkgconfiglib,python,rpmlib,sheban g,shell,static,symlinks,typelib) find-requires: FINDPACKAGE-COMMANDS: chmod mv Requires: /bin/sh, coreutils ошибка: ошибка создания архива при обработке файла /home/tema/RPM/SOURCES/test-1.0.tar: cpio: writeне удалось - Неправильный дескриптор файла Сообщение отредактировал tema - 18.4.2016, 1:49 |
|
|
18.4.2016, 22:32
Сообщение
#72
|
|
Профессионал Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: 20 |
А если попробовать rpm-ом запихать этот архив в каталог /opt/имя_программы/.
при этом еще и эльфийские проверки в спеке неплохо вырубить: Код %set_verify_elf_method none
|
|
|
23.11.2016, 13:55
Сообщение
#73
|
|
Мастер Группа: Активный Пользователь Сообщений: 620 Регистрация: 11.5.2015 Вставить ник Цитата Пользователь №: 2810 Страна: Россия Город: Не указан Пол: Муж. Репутация: 4 |
Пакет spacefm в клубном p8 помойму каким-то неверным форматом запакован, ни из синаптика, ни из apt-get install не ставится.
Код # apt-get install spacefm-1.0.4-alt0.1.x86_64.rpm Чтение списков пакетов... Завершено Построение дерева зависимостей... Завершено Выбрано spacefm для 'spacefm-1.0.4-alt0.1.x86_64.rpm' Следующие НОВЫЕ пакеты будут установлены: spacefm 0 будет обновлено, 1 новых установлено, 0 пакетов будет удалено и 5 не будет обновлено. Необходимо получить 0B/1185kB архивов. После распаковки потребуется дополнительно 4355kB дискового пространства. Совершаем изменения... Preparing... #################### [100%] 1: spacefm error: unpacking of archive failed on file /usr/bin/spacefm;583562c0: cpio: read E: Произошли ошибки при выполнении транзакции Скачал сам пакет, единственное кто смог открыть, это mc. Архиваторы пишут: Код Loading the archive spacefm-1.0.4-alt0.1.x86_64.rpm failed with the following error:
Could not read until the end of the archive |
|
|
23.11.2016, 14:09
Сообщение
#74
|
|
Мастер Группа: Активный Пользователь Сообщений: 620 Регистрация: 11.5.2015 Вставить ник Цитата Пользователь №: 2810 Страна: Россия Город: Не указан Пол: Муж. Репутация: 4 |
Интересно что исходники версии 1.0.0
spacefm-1.0.0-alt0.M70T.1.src.rpm Попробую пересобрать |
|
|
23.11.2016, 16:26
Сообщение
#75
|
|
Профессионал Группа: Активный Пользователь Сообщений: 1166 Регистрация: 10.4.2015 Вставить ник Цитата Пользователь №: 2798 Страна: Казахстан Город: Уральск Пол: Муж. Репутация: 5 |
Вечером проверю.
Сообщение отредактировал dango_ - 23.11.2016, 16:26 |
|
|
23.11.2016, 18:25
Сообщение
#76
|
|
Профессионал Группа: Активный Пользователь Сообщений: 1166 Регистрация: 10.4.2015 Вставить ник Цитата Пользователь №: 2798 Страна: Казахстан Город: Уральск Пол: Муж. Репутация: 5 |
Нашел версию 1.0.4 в club-s x86_64
Код # apt-repo rpm [alt] http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus x86_64 classic rpm [alt] http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus noarch classic rpm [alt] http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus x86_64-i586 classic rpm http://altlinuxclub.ru/repo/repo_s/ x86_64 hasher Код # apt-cache search spacefm spacefm - Легкий и быстрый файл-менеджер (форк pcmanfm 0.5) spacefm-plugins - Плагины (trile7's) и настройки для SpaceFM spacefm-plugins2 - Плагины (trile7's & fabertawe) и настройки для SpaceFM. Вариант 2 Код # apt-cache showpkg spacefm Package: spacefm Versions: 1.0.4-alt0.1(/var/lib/apt/lists/altlinuxclub.ru_repo_repo%5fs_x86%5f64_base_pkglist.hasher)(/var/lib/rpm/Packages) 1.0.0-alt1(/var/lib/apt/lists/ftp.altlinux.org_pub_distributions_ALTLinux_Sisyphus_x86%5f64_base_pkglist.classic) ... Код # apt-get install spacefm Чтение списков пакетов... Завершено Построение дерева зависимостей... Завершено Следующие дополнительные пакеты будут установлены: diffstat git-core gksu Следующие НОВЫЕ пакеты будут установлены: diffstat git-core gksu spacefm 0 будет обновлено, 4 новых установлено, 0 пакетов будет удалено и 14 не будет обновлено. Необходимо получить 3843kB архивов. После распаковки потребуется дополнительно 19,3MB дискового пространства. Продолжить? [Y/n] y Получено: 1 [url="http://ftp.altlinux.org"]http://ftp.altlinux.org[/url] x86_64/classic diffstat 1.59-alt1 [29,3kB] Получено: 2 [url="http://altlinuxclub.ru"]http://altlinuxclub.ru[/url] x86_64/hasher spacefm 1.0.4-alt0.1 [1185kB] Получено: 3 [url="http://ftp.altlinux.org"]http://ftp.altlinux.org[/url] x86_64/classic git-core 2.7.4-alt1 [2578kB] Получено: 4 [url="http://ftp.altlinux.org"]http://ftp.altlinux.org[/url] x86_64/classic gksu 2.0.2-alt6 [51,1kB] Получено 3843kB за 1s (2361kB/s). Совершаем изменения... Preparing... ################################################################################ ######### [100%] 1: gksu ########################################################################### ##### ######### [ 25%] 2: diffstat ########################################################################### ##### ######### [ 50%] 3: git-core ########################################################################### ##### ######### [ 75%] 4: spacefm ################################################################################ ######### [100%] Running /usr/lib/rpm/posttrans-filetriggers Завершено. Код # rpm -qa spacefm spacefm-1.0.4-alt0.1 Запускается. Вроде работает. Инспекция: В club-s i686: spacefm-1.0.4-alt0.1.i686.rpm SRPMS: spacefm-1.0.4-alt0.1.src.rpm x86_64: spacefm-1.0.4-alt0.1.x86_64.rpm В club-p8 i686: spacefm-1.0.0-alt0.M70T.1.i686.rpm SRPMS: spacefm-1.0.0-alt0.M70T.1.src.rpm x86_64: spacefm-1.0.4-alt0.1.x86_64.rpm В club-p7 i686: spacefm-1.0.0-alt0.M70T.1.i686.rpm SRPMS: spacefm-1.0.0-alt0.M70T.1.src.rpm x86_64: spacefm-1.0.0-alt0.M70T.1.x86_64.rpm Хм, такое впечатление, что сюда забросили пакет из альтовского p7, а в club-p8 x86_64 скопирован из club-s x86_64 Сообщение отредактировал dango_ - 23.11.2016, 19:11 |
|
|
23.11.2016, 18:48
Сообщение
#77
|
|
Профессионал Группа: Активный Пользователь Сообщений: 1166 Регистрация: 10.4.2015 Вставить ник Цитата Пользователь №: 2798 Страна: Казахстан Город: Уральск Пол: Муж. Репутация: 5 |
Пересобрал из исходников club-s в хэшернице p8 x86_64, пакет отправил в в репу.
Евгений, проверь, пожалуйста, его работоспособность. У меня руки еще не доходят до ВМ для тестирования. |
|
|
23.11.2016, 22:14
Сообщение
#78
|
|
Мастер Группа: Активный Пользователь Сообщений: 620 Регистрация: 11.5.2015 Вставить ник Цитата Пользователь №: 2810 Страна: Россия Город: Не указан Пол: Муж. Репутация: 4 |
Большое спасибо, пакет ставится, программа работает.
|
|
|
Текстовая версия | Сейчас: 24.4.2024, 15:01 | |