Changes/rpm: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
(→‎RPM 4.13: RPM 4.13 -> RPM и systemd: в баге 35405 шире оказывается, не сразу вчитался)
 
(не показаны 4 промежуточные версии 3 участников)
Строка 1: Строка 1:
[[Категория:Changes]]
[[Категория:Changes]]
[[category:admin]]
{{ОбновляемаяСтатья}}
{{ОбновляемаяСтатья}}
== RPM и systemd ==
При обновлении rpm следует учитывать написанное в {{altbug|35405#c10}}, то есть, обновление удалённой системы, включающее обновление rpm, следует производить в незакрывающейся автоматически сессии, если удалённая система использует systemd, либо использовать описанные в {{altbug|35405}} варианты обхода проблемы. Это касается и обычного обновления rpm из-за отложенного перестроения базы, и, особенно, обновления c 4.0 до 4.13 (с p8 до Sisyphus, или до p9) из-за отложенного исполнения ещё и файлтриггеров.
== RPM с поддержкой set provides ==
== RPM с поддержкой set provides ==
Если после заметного периода необновлений (начиная с октября 2010, точнее, rpm-4.0.4-alt98.49) вылезло подобное:
Если после заметного периода необновлений (начиная с октября 2010, точнее, rpm-4.0.4-alt98.49) вылезло подобное:
Строка 12: Строка 16:
  Требует: librpmio-4.0.4.so()(64bit) (>= set:lgWkqo7uABu6qs1Vbdc6DTGrusCUXozblTZg23zE8r6f1ynxurJVIm50)
  Требует: librpmio-4.0.4.so()(64bit) (>= set:lgWkqo7uABu6qs1Vbdc6DTGrusCUXozblTZg23zE8r6f1ynxurJVIm50)
</pre></small>
</pre></small>
— то это rpm и librpm, которые уже поддерживают set provides, но ещё не содержат сами set requires, можно взять в архиве от 25.09.2010, прописав следующее в /etc/apt/sources.list '''вместо''' Sisyphus и выполнив {{cmd|apt-get update; apt-get install rpm}}:
— то это rpm и librpm, которые уже поддерживают set provides, но ещё не содержат сами set requires.
 
Достаточно<ref>https://bugzilla.altlinux.org/show_bug.cgi?id=24562#c1</ref> подключить репозиторий 5.1 (или p5), и обновить rpm оттуда.
В /etc/apt/sources.list понадобится прописать следующее '''вместо''' Sisyphus и выполнив {{cmd|apt-get update; apt-get install rpm}}:


x86_64:
x86_64:
  rpm http://ftp.altlinux.org/pub/distributions/archive/Sisyphus/2010/09/25/ x86_64 classic
  rpm http://ftp.altlinux.org/pub/distributions/ALTLinux/p5/branch/ x86_64 classic
  rpm http://ftp.altlinux.org/pub/distributions/archive/Sisyphus/2010/09/25/ noarch classic
  rpm http://ftp.altlinux.org/pub/distributions/ALTLinux/p5/branch/ noarch classic


i586:
i586:
  rpm http://ftp.altlinux.org/pub/distributions/archive/Sisyphus/2010/09/25/ i586 classic
  rpm http://ftp.altlinux.org/pub/distributions/ALTLinux/p5/branch/ i586 classic
  rpm http://ftp.altlinux.org/pub/distributions/archive/Sisyphus/2010/09/25/ noarch classic
  rpm http://ftp.altlinux.org/pub/distributions/ALTLinux/p5/branch/ noarch classic


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


== RPM с поддержкой LZMA ==
== RPM с поддержкой LZMA ==
Строка 68: Строка 75:


Команда rpmbph из etersoft-build-utils выполняет это автоматически.
Команда rpmbph из etersoft-build-utils выполняет это автоматически.
== Примечания ==
<references />


[[Категория:Sisyphus]]
[[Категория:Sisyphus]]
[[Категория:RPM]]
[[Категория:RPM]]

Текущая версия от 13:06, 25 сентября 2018

50px-Gnome globe current event.png
Данная статья периодически обновляется.
Последнее обновление
13:06 25 сентября 2018

RPM и systemd

При обновлении rpm следует учитывать написанное в altbug #35405#c10, то есть, обновление удалённой системы, включающее обновление rpm, следует производить в незакрывающейся автоматически сессии, если удалённая система использует systemd, либо использовать описанные в altbug #35405 варианты обхода проблемы. Это касается и обычного обновления rpm из-за отложенного перестроения базы, и, особенно, обновления c 4.0 до 4.13 (с p8 до Sisyphus, или до p9) из-за отложенного исполнения ещё и файлтриггеров.

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 выполняет это автоматически.

Примечания