Подскажите команду для автоустановки пакетов из spec, что-то на подобия yum-builddep из fedora.
rpmbuild -bb
другого не знаю, и будет не установка, а собранный rpm
Он не доустанавливает зависимости.
~> cnf yum-builddep
Программу ‘yum-builddep’ можно найти в следующем пакете:
- yum-utils путь: /usr/bin/yum-builddep, репозиторий: zypp (repo-oss) ]
admsasha wrote:
> Он не доустанавливает зависимости.
rpm при сборке автоматически вычисляет зависимости, и пропишет их в
метаданные пакета.
Я имел введу BuildRequires из spec.
Видать его не поддерживают, поэтому я и предположил, что у opensuse своя подобная утилита.
Traceback (most recent call last):
File “/usr/bin/yum-builddep”, line 139, in <module>
util = YumBuildDep()
File “/usr/bin/yum-builddep”, line 41, in init
self.main()
File “/usr/bin/yum-builddep”, line 66, in main
self.get_build_deps()
File “/usr/bin/yum-builddep”, line 116, in get_build_deps
self.setupSourceRepos()
File “/usr/bin/yum-builddep”, line 77, in setupSourceRepos
archlist = rpmUtils.arch.getArchList() + ‘src’]
NameError: global name ‘rpmUtils’ is not defined
Пакет rpm-python (Привязки Python для манипулирования RPM-пакетами) установлен?
admsasha wrote:
> Я имел введу BuildRequires из spec.
Если вы имеете ввиду source-пакет из репозитория, тогда используется
zypper:
‘zipper si package-name’
Должен установиться пакет с исходниками и все зависимости для сборки.
Надеюсь, я правильно понял.
Установлено два пакета
rpm-python и python3-rpm
Нет, не правильно. Spec находится локально. Нужно типа
#yum-builddep ./myspec.spec
И что бы он автоустановил все BuildRequires и requires, как это делает таже fedora или mageia/rosa
Нет, не правильно. Spec находится локально.
Полагаю, с zypper так не получится.
В остальном выглядит так:
22:46 kent@lazy ~ % yum-builddep
zsh: command not found: yum-builddep
[1] 11240 exit 127 yum-builddep
Программу 'yum-builddep' можно найти в следующем пакете:
* yum-utils путь: /usr/bin/yum-builddep, репозиторий: zypp (openSUSE:Factory:Oss) ]
Try installing with:
sudo zypper install yum-utils
22:46 kent@lazy ~ % sudo zypper install yum-utils
root's password:
Загрузка данных о репозиториях...
Чтение установленных пакетов...
Разрешение зависимостей пакетов...
Будут установлены следующие НОВЫЕ пакеты:
python-gpgme python-iniparse python-yum yum yum-metadata-parser yum-utils
6 новых пакетов для установки.
Полный размер загрузки: 715,8 KiB. После этой операции будет использовано дополнительно 2,9 MiB.
Продолжить? [y/n/?] (y):
Похоже, эта штука не работает.
# yum-builddep filezilla
Traceback (most recent call last):
File "/usr/bin/yum-builddep", line 139, in <module>
util = YumBuildDep()
File "/usr/bin/yum-builddep", line 41, in __init__
self.main()
File "/usr/bin/yum-builddep", line 66, in main
self.get_build_deps()
File "/usr/bin/yum-builddep", line 116, in get_build_deps
self.setupSourceRepos()
File "/usr/bin/yum-builddep", line 77, in setupSourceRepos
archlist = rpmUtils.arch.getArchList() + 'src']
NameError: global name 'rpmUtils' is not defined
[1] 11373 exit 1 yum-builddep filezilla
Вижу, что никому не нужно:
% osc maintainer -Aev yum-utils
Defined in package: system:packagemanager/yum-utils
bugowner of yum-utils :
ug@suse.com
maintainer of yum-utils :
ug@suse.com
Defined in package: openSUSE:12.2/yum-utils
bugowner of yum-utils :
ug@suse.com
maintainer of yum-utils :
-
Defined in project: openSUSE:12.1
bugowner of yum-utils :
-
maintainer of yum-utils :
user 'group:factory-maintainers' not found
user 'group:autobuild-team' not found
-
% osc log system:packagemanager/yum-utils
----------------------------------------------------------------------------
r5 | coolo | 2011-08-03 13:31:29 | 709197da2f4f0ff0d29111ffc9b56996 | unknown |
sync with O:F
----------------------------------------------------------------------------
r4 | coolo | 2011-08-03 13:31:22 | 329df0ba4de481a076b64eee70a0b288 | unknown |
prepare_spec
----------------------------------------------------------------------------
r3 | coolo | 2011-08-03 13:31:16 | 1275b481e2c8735aa9c238d18d5ccf4f | unknown |
converted link to branch
----------------------------------------------------------------------------
r2 | coolo | 2011-08-03 13:31:12 | d308af8cda2662078772e14dfbeb3c51 | unknown |
<no message>
----------------------------------------------------------------------------
r1 | ug | 2011-02-10 13:34:09 | b0ae5db78854c04849de9afc64864e80 | 1.1.13 |
added to factory for cobbler
----------------------------------------------------------------------------
Работает только с src.rpm. В man’е ничего не сказано о файле spec
SYNOPSIS
yum-builddep package
Предварительно, нужно будет настроить репозитории для yum, т.е. копировать
файлы *.repo из /etc/zypp/repos.d/ в /etc/yum/repos.d/ или создать символьные ссылки.
~> sudo yum-builddep /var/tmp/build-root/home/abuild/rpmbuild/SRPMS/skippy-xd-0.5.1~hg.1378192470-0.src.rpm
Bad id for repo: Обновления-для-openSUSE-, byte = � 0
repo-non-oss | 2.9 kB 00:00
repo-oss | 3.0 kB 00:00
libXcomposite-devel-0.4.4-2.1.1.x86_64
libXext-devel-1.3.1-4.1.1.x86_64
libXinerama-devel-1.1.2-4.1.1.x86_64
libXrender-devel-0.9.7-4.1.1.x86_64
libXfixes-devel-5.0-5.1.1.x86_64
libXdamage-devel-1.1.4-2.1.1.x86_64
libXft-devel-2.3.1-4.1.1.x86_64
libpng12-compat-devel-1.2.50-3.1.1.x86_64
libjpeg8-devel-8.0.2-19.1.1.x86_64
giflib-devel-4.1.6-34.1.1.x86_64
zlib-devel-1.2.7-7.1.1.x86_64
--> Running transaction check
---> Package giflib-devel.x86_64 0:4.1.6-34.1.1 will be installed
--> Finished Dependency Resolution
=====================================================================================
Package Arch Version Repository Size
=====================================================================================
Installing:
giflib-devel x86_64 4.1.6-34.1.1 repo-oss 7.9 k
Transaction Summary
=====================================================================================
Install 1 Package
Total download size: 7.9 k
Installed size: 14 k
Is this ok [y/N]:
В общем, это правильно.
Здесь openSUSE, а не Fedora. Нет у нас ‘yum’, и не ожидается.
Низкоуровневые операции с пакетами осуществляются средствами ‘rpm’.
Да мне собственно не yum нужен был, а метод автоустановки BuildRequires и requires из spec файла. Я yum привел для примера. В той же ROSA/Mageia это далается через urpmi. А вот в opensuse как то не оказалось такого.
в первом приближении
#! /bin/bash
packages=''
for i in (sed -e 's/BuildRequires: (\w\s+]$'/\1/) do
$packages = "$packages $i"
done
zypper in $packages
Да мне собственно не yum нужен был, а метод автоустановки BuildRequires и requires из spec файла
BuildRequires реализуется скриптом, как выше написано.
Rrequires запишутся в метаданные пакета, и rpm их запросит при установке.
Интересует сборка пакетов? воспользуйтесь “Службой сборки”](https://build.opensuse.org/) с помощью веб-клиента или приложения командной строки](openSUSE:Руководство по использованию службы сборки — openSUSE Wiki).
Остановимся на приложении командной строки и локальной сборке пакетов.
Приложение командной строки создаст:
- изолированную от основной системы среду сборки - /var/tmp/build-root/
bin .build.command .build.log dev .guessed_dist installed-pkg lib64 proc root sbin usr
.build .buildenv .build.packages etc home lib opt .reorder run tmp var
- кэш пакетов необходимых для сборки - /var/tmp/osbuild-packagecache/
То и другое займёт место, но при современной ёмкости жёстких дисков - это капля в море.
Службе сборки достаточно сообщить название пакета, заголовок ( коротко и ёмко, одной фразой о назначении программ, входящих в состав пакета) и описание (более подробно и развёрнуто, всё что сочтёте нужным сообщить). При локальной сборке Службе сборки нет необходимости передавать ни спек, ни архив с исходными текстами, ни исправления и дополнения.
Собранные пакеты можете найти в /var/tmp/build-root/home/abuild/rpmbuild/RPMS/.
Я думал этот вариант, но не подходит из-за того, что бывают конструкции типа perl(DBI::blabla).