Показаны сообщения с ярлыком rpm. Показать все сообщения
Показаны сообщения с ярлыком rpm. Показать все сообщения

четверг, 20 августа 2020 г.

rpmbuild: условия в Requires

 Starting with rpm-4.13, RPM is able to process boolean expressions in all dependencies (Requires, Recommends, Suggests, Supplements, Enhances, Conflicts). Boolean Expressions are always enclosed with parenthesis. They are build out of “normal” dependencies: either name only or name, comparison and version description.

https://rpm.org/user_doc/boolean_dependencies.html

То есть теперь можно написать такие вещи как

Requires: (pkgA or (pkgB and pkgC))

Supplements: (foo and (lang-support-cz or lang-support-all))

и так далее. НО - это всё есть только в centos8, в 7 и ниже версии старые, в 7 например 4.11.

вторник, 8 мая 2018 г.

rpm: получаем информацию из rpm файла

Иногда нужно запросить/автоматизировать имя пакета, но rpm файл назван как-то нестандартно. Или просто нужно получить информацию из rpm.

$ rpm -qip MariaDB-10.1.26-centos7-x86_64-server.rpm
Name        : MariaDB-server
Version     : 10.1.26
...

четверг, 16 ноября 2017 г.

rpmbuild и дополнительные опции

Есть такая интересная штука
http://rpm.org/user_doc/conditional_builds.html
используется так:
$ rpmbuild -ba newpackage.spec --with gnutls --without openssl
и дальше проверять так
%if %{with gnutls} BuildRequires: gnutls-devel %endif %if %{with openssl} BuildRequires: openssl-devel %endif

Также для работы в начале .spec файла можно вписать (как предустановленные значения)
%bcond_with gnutls

Но тут есть нюанс: то, что вписано в .spec, имеет противоположное значение! Объяснение есть например тут

пятница, 6 мая 2016 г.

Собираем google V8 под centos 6

Почти все действия проводим от простого пользователя, незачем зря портить систему. И желательно на отдельном билд-сервере.

V8 is Google's open source high-performance JavaScript engine, written in C++ ... V8 can run standalone, or can be embedded into any C++ application.

пятница, 3 апреля 2015 г.

Учимся писать .spec файлы

Можно много лет использовать систему, используя только уже готовые rpm файлы, но однажды приходится ставить и распространять что-то своё, не забивая при этом все сервера компиляторами и служебными утилитами. И возникает необходимость собрать свои пакеты. А потом - поднять локальный репозиторий.

А пока позаботимся о первой части. При возможности для сборки нужен отдельный сервер и отдельный юзер, чтобы не забивать рабочие машины (сервера), на нём же безопасно тестировать установку и удаление этих пакетов, помним баги с лишним пробелом в rm -rf / usr.

вторник, 13 января 2015 г.

CentOS: Скачать (s)rpm пакеты

Бывает так, что нужно скачать ряд пакетов, для оффлайн обновления, при узком/дорогом канале и нескольких серверах, итд.
Можно качать через wget, но у многих закрыт листинг каталогов, то есть нужно сделать yum search..., получить полное имя и уже ему wget, но быстрее и проще для этой цели использовать саму систему yum, попутно получить разрешение зависимостей.