IPB

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V  < 1 2 3  
Ответить в эту темуОткрыть новую тему
> Сборка пакетов rpm, ( для начинающих сборщиков и кодеров )
Поделиться
kostyalamer
сообщение 8.4.2016, 22:51
Сообщение #61


Профессионал
*******

Группа: Модератор раздела
Сообщений: 4142
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 16


Цитата(tema @ 8.4.2016, 22:41) *
Я именно это и сделал в версии 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
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
tema
сообщение 9.4.2016, 22:36
Сообщение #62


Крупный специалист
*****

Группа: Пользователь
Сообщений: 490
Регистрация: 4.2.2016
Вставить ник
Цитата
Пользователь №: 2850
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 2


Спасибо! Покопаюсь :-)
Посмотрю что можно ещё фичами поправить в мои проблемах
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
tema
сообщение 9.4.2016, 23:14
Сообщение #63


Крупный специалист
*****

Группа: Пользователь
Сообщений: 490
Регистрация: 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" и это получается разные программы, поэтому и не обновляется... :-(
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 10.4.2016, 10:51
Сообщение #64


Профессионал
*******

Группа: Модератор раздела
Сообщений: 4142
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 16


Цитата(tema @ 9.4.2016, 23:14) *
А где брать примеры и заготовки спеков? Хочу попробовать пару вещей:
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) такая нумерация сделана для того чтобы можно было выбирать какой версией программы пользоваться, во всех остальных случаях версии программы приписанные к ее имени намертво - ошибочны.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
tema
сообщение 11.4.2016, 15:01
Сообщение #65


Крупный специалист
*****

Группа: Пользователь
Сообщений: 490
Регистрация: 4.2.2016
Вставить ник
Цитата
Пользователь №: 2850
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 2


Тяжко читать много, но разберусь постараюсь smile.gif
Прикрепленные файлы
Прикрепленный файл  197285076fda.jpg ( 141.02 килобайт ) Кол-во скачиваний: 5
 
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
tema
сообщение 16.4.2016, 22:48
Сообщение #66


Крупный специалист
*****

Группа: Пользователь
Сообщений: 490
Регистрация: 4.2.2016
Вставить ник
Цитата
Пользователь №: 2850
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 2


Цитата(kostyalamer @ 8.4.2016, 21:51) *
Не буду врать ,не знаю, заготовку для этого скрипта я как обычно спер откуда-то из готовых фичей. Такие вопросы лучше задавать более грамотным людям , например Михаилу ( gvy )
PS кстати, почитал тут ваше общение с zerg-ом и понял что он видимо не любит разные фичи а правит все в своей сборочнице (я могу ошибаться ).
Поскольку у нас слава Богу GPL то вот вам его m-p-d, может быть найдете что-либо интересное для себя:
http://git.altlinux.org/people/zerg/packag...p.git;a=summary

А можно ли в этом скрипте ещё и проинсталлировать пакет какой-нибудь? Ну или сделать так не в скрипте, а в настройках установки, чтобы определённый пакет запустился устанавливаться после всех остальных?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 16.4.2016, 23:01
Сообщение #67


Профессионал
*******

Группа: Модератор раздела
Сообщений: 4142
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 16


Цитата(tema @ 16.4.2016, 22:48) *
А можно ли в этом скрипте ещё и проинсталлировать пакет какой-нибудь? Ну или сделать так не в скрипте, а в настройках установки, чтобы определённый пакет запустился устанавливаться после всех остальных?

Так этот скрипт и есть сборочная система m-p-d , там в /profiles/pkg/lists как раз и лежат списки пакетов.
А зачем запускать пакет на установку после всех остальных ?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
tema
сообщение 16.4.2016, 23:40
Сообщение #68


Крупный специалист
*****

Группа: Пользователь
Сообщений: 490
Регистрация: 4.2.2016
Вставить ник
Цитата
Пользователь №: 2850
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 2


Цитата(kostyalamer @ 16.4.2016, 22:01) *
Так этот скрипт и есть сборочная система m-p-d , там в /profiles/pkg/lists как раз и лежат списки пакетов.
А зачем запускать пакет на установку после всех остальных ?

Там не списки пакетов лежат. Там названия. Я же говорю про файл rpm. Установить именно конкретный файл rpm командой rpm -Uvh file.rpm
Хочу одну штуку попробовать провернуть smile.gif
Обещаю рассказать что из этого получится smile.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
tema
сообщение 17.4.2016, 18:55
Сообщение #69


Крупный специалист
*****

Группа: Пользователь
Сообщений: 490
Регистрация: 4.2.2016
Вставить ник
Цитата
Пользователь №: 2850
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 2


Цитата(kostyalamer @ 8.4.2016, 21:33) *
Разберем по строкам секцию 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
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 17.4.2016, 19:29
Сообщение #70


Профессионал
*******

Группа: Модератор раздела
Сообщений: 4142
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 16


Цитата(tema @ 17.4.2016, 18:55) *
А я могу скопировать файл, допустим 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 не пропустит.
Зачем вообще архив, можно просто папку с файлами скопировать smile.gif тогда ничего не надо будет распаковывать после установки пакета. Правда в случае наличия скрытых файлов / каталогов в этой папке их надо будет прописывать отдельно.

Сообщение отредактировал kostyalamer - 17.4.2016, 20:00
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
tema
сообщение 18.4.2016, 1:46
Сообщение #71


Крупный специалист
*****

Группа: Пользователь
Сообщений: 490
Регистрация: 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
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 18.4.2016, 22:32
Сообщение #72


Профессионал
*******

Группа: Модератор раздела
Сообщений: 4142
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 16


А если попробовать rpm-ом запихать этот архив в каталог /opt/имя_программы/.
при этом еще и эльфийские проверки biggrin.gif в спеке неплохо вырубить:
Код
%set_verify_elf_method none
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Koi.v2
сообщение 23.11.2016, 13:55
Сообщение #73


Специалист
****

Группа: Пользователь
Сообщений: 229
Регистрация: 11.5.2015
Вставить ник
Цитата
Пользователь №: 2810
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 2


Пакет 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
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Koi.v2
сообщение 23.11.2016, 14:09
Сообщение #74


Специалист
****

Группа: Пользователь
Сообщений: 229
Регистрация: 11.5.2015
Вставить ник
Цитата
Пользователь №: 2810
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 2


Интересно что исходники версии 1.0.0
spacefm-1.0.0-alt0.M70T.1.src.rpm
Попробую пересобрать
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
dango_
сообщение 23.11.2016, 16:26
Сообщение #75


Мастер
******

Группа: Пользователь
Сообщений: 729
Регистрация: 10.4.2015
Вставить ник
Цитата
Пользователь №: 2798
Страна: Казахстан
Город: Уральск
Пол: Муж.



Репутация: 4


Вечером проверю.

Сообщение отредактировал dango_ - 23.11.2016, 16:26
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
dango_
сообщение 23.11.2016, 18:25
Сообщение #76


Мастер
******

Группа: Пользователь
Сообщений: 729
Регистрация: 10.4.2015
Вставить ник
Цитата
Пользователь №: 2798
Страна: Казахстан
Город: Уральск
Пол: Муж.



Репутация: 4


Нашел версию 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
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
dango_
сообщение 23.11.2016, 18:48
Сообщение #77


Мастер
******

Группа: Пользователь
Сообщений: 729
Регистрация: 10.4.2015
Вставить ник
Цитата
Пользователь №: 2798
Страна: Казахстан
Город: Уральск
Пол: Муж.



Репутация: 4


Пересобрал из исходников club-s в хэшернице p8 x86_64, пакет отправил в в репу.
Евгений, проверь, пожалуйста, его работоспособность. У меня руки еще не доходят до ВМ для тестирования.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Koi.v2
сообщение 23.11.2016, 22:14
Сообщение #78


Специалист
****

Группа: Пользователь
Сообщений: 229
Регистрация: 11.5.2015
Вставить ник
Цитата
Пользователь №: 2810
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 2


Большое спасибо, пакет ставится, программа работает.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

3 страниц V  < 1 2 3
Ответить в эту темуОткрыть новую тему
( Гостей: 1 )
Пользователей: 0

 



RSS Текстовая версия Сейчас: 23.7.2019, 7:29