[devel] rpm: некорректные макросы

Victor Wagner v.wagner на postgrespro.ru
Вс Дек 15 18:06:45 MSK 2019


В Fri, 13 Dec 2019 21:18:43 +0300
Andrey Savchenko <bircoph на altlinux.org> пишет:


> > > $ rpm -q rpm
> > > rpm-4.13.0.1-alt15.x86_64
> > > $ rpm --showrc | grep "@.*@"
> > >         %{expand:%(cat /usr/lib/rpm/macros.d/*.env
> > > @SYSCONFIGDIR@/macros.d/*.env 2>/dev/null)} -14: __install_info
> > > @__INSTALL_INFO@ -14: __lzma     @__LZMA@ -14: __pgp      @PGPBIN@
> > > -14: __subst    @__SUBST@
> > > -14: _build_arch        @RPMCANONARCH@
> > > 
> > > Что мы будем с этим делать? На мой взгляд нужно или задать
> > > значения, или убрать эти макросы вовсе.  
> > 
> > Из процитированного видно, что это всё было скопировано из
> > rpm-build, в самом rpm не используется, а rpm-build продолжает
> > использовать свои определения.  
> 
> Прорезюмирую результат обсуждения IRL: значения этих и многих
> других макросов нужно брать из rpmbuild. Из rpm их лучше в
> дальнейшем удалить во избежание недоразумений.

Тут есть одна тонкость - нету у юзера на production сервере
rpmbuild. И не должно быть. Ибо средства разработки это толстенная дыра
в безопасности.

А у меня проблема возникла именно из задачи  - "прописать юзеру в
/etc/apt/sources.list.d правильный репозиторий, не полагаясь на то,
что юзер знает, какая у него архитектура и версия платформы".

Поэтому нужен способ точно определить архитектуру установленной системы.
Именно системы, а не ядра, так как никто не обещал в нашу эпоху
контейнеров, что они совпадают.
Правда, видимо, лучше это делать не посредством rpm, поскольку вызов rpm
изнутри %post скрипта вообще говоря недопустим.

Либо тогда надо передеелывать логкику работы apt, чтобы там, как и в
Debian, не требовалось явно указывать архитектуру в URL-ках.

Вот у yum или zypper, например я могу в url-ке на репозиторийй написать
$releasever и $basearch и он мне сам подставит то, что надо.





-- 
                                   Victor Wagner <vitus на wagner.pp.ru>


Подробная информация о списке рассылки Devel