Changes/rpm

Материал из ALT Linux Wiki
Перейти к: навигация, поиск
50px-Gnome globe current event.png
Данная статья периодически обновляется.
Последнее обновление
15:43 20 июля 2016

RPM с поддержкой set provides[править]

Если после заметного периода необновлений (начиная с октября 2010, точнее, rpm-4.0.4-alt98.49) вылезло подобное:

 rpm: Для установки требует: librpm (= 4.0.4-alt100.1)
 Для установки требует: librpmbuild (= 4.0.4-alt100.1)
 Для установки требует: rpmlib(SetVersions) но пакет не может быть установлен
 Требует: librpm-4.0.4.so()(64bit) (>= set:lgVK9ZHkjUlX6dum9v5exN3mZAdiQaCZA9wPBB7UoChS9tyzKOW0DGL6VZzW5qnIQ1Xby3xZqihb0)
 Требует: librpmbuild-4.0.4.1.so()(64bit) (>= set:jh9GyZ5AUz1)
 Требует: librpmdb-4.0.4.so()(64bit) (>= set:kgkpLe8AEkFna4CeGtdDas0)
 Требует: librpmio-4.0.4.so()(64bit) (>= set:lgWkqo7uABu6qs1Vbdc6DTGrusCUXozblTZg23zE8r6f1ynxurJVIm50)

— то это rpm и librpm, которые уже поддерживают set provides, но ещё не содержат сами set requires.

Достаточно[1] подключить репозиторий 5.1 (или p5), и обновить rpm оттуда. В /etc/apt/sources.list понадобится прописать следующее вместо Sisyphus и выполнив apt-get update; apt-get install rpm:

x86_64:

rpm http://ftp.altlinux.org/pub/distributions/ALTLinux/p5/branch/ x86_64 classic
rpm http://ftp.altlinux.org/pub/distributions/ALTLinux/p5/branch/ noarch classic

i586:

rpm http://ftp.altlinux.org/pub/distributions/ALTLinux/p5/branch/ i586 classic
rpm http://ftp.altlinux.org/pub/distributions/ALTLinux/p5/branch/ noarch classic

Далее можно возвращаться на Сизиф (см. тж. apt).

RPM с поддержкой LZMA[править]

Обновление[править]

Если при очередном обновлении вы поймали непонятную ругань навроде следующей:

[root@localhost ~]# apt-get install openoffice.org-langpack-uk
Reading Package Lists... Done
Building Dependency Tree... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.

Since you only requested a single operation it is extremely likely that
the package is simply not installable and a bug report against
that package should be filed.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
  openoffice.org-langpack-uk: Depends: openoffice.org-langpack-ru (= 2.4.1.5-alt2)                
                              Depends: /usr/lib64/openoffice.org/help/ru
                              PreDepends: rpmlib(PayloadIsLzma) (<= 4.4.2-1) but it is not installable
E: Broken packages
— это смена сжатия *.rpm на LZMA, что поддерживает
rpm-4.0.4-alt93
и выше. Анонс/рецепт:
# apt-get update
# apt-get install 'rpm>=4.0.4-alt93'
# apt-get --reinstall update

Анализ[править]

Проверить способ сжатия наличного пакета можно таким образом (в том числе совсем старым rpm):

$ rpmquery --qf '%{PAYLOADCOMPRESSOR}\n' -p какой-нибудь.rpm

Сборка[править]

Для сборки на текущем сизифе src.rpm, который сойдёт текущим rpm в более ранних бранчах, используйте команду

rpm -bs --nodeps --define='_source_payload w9.gzdio' нужный.spec

или укажите в спеке

%define _source_payload w9.gzdio
Команда rpmbph из etersoft-build-utils выполняет это автоматически.
  1. https://bugzilla.altlinux.org/show_bug.cgi?id=24562#c1