From: Alexey Tourbin <at@altlinux.ru>
To: ALT Linux Team development discussions <devel@lists.altlinux.org>
Subject: [devel] rpmlib(...) & apt
Date: Sun, 20 Jul 2008 15:34:42 +0400
Message-ID: <20080720113442.GD25993@solemn.turbinal> (raw)
In-Reply-To: <6062a6e60807200418i2f1bda26ub8cddd33777802d8@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 3564 bytes --]
On Sun, Jul 20, 2008 at 03:18:48PM +0400, Alexander Bokovoy wrote:
> > Я утверждаю, что lzma ничего не сломал.
> >
> > Была только тонкость с обновлением rpm (нужно перегенерировать или
> > удалить кеш апта), но мы эту тонкость добили.
> Апгрейд сизифа месячной давности до текущего все равно приводит к
> тому, что нужно совершать пассы с --reinstall, иначе все пакеты,
> перепакованные с lzma не устанавливаются, а kept back. Причем, не
> apt-get --reinstall update, а с apt-get dist-upgrade --reinstall, а то
> и другие варианты.
Нет, ты чего-то не понял. Проблема в кеше апта, а именно, в том,
что все зависимости вида 'rpmlib(...)' на самом деле *удаляются*
вообще из кеша апта при его генерации и дальше никак не участвуют
в разрешении зависимостей. При этом удаление из кеша зависимостей
rpmlib(...) происходит на основе вызова rpmCheckRpmlibProvides()
из *текущей* библиотеки librpm (установленной в хост-системе).
apt/apt-pkg/rpm/rpmlistparser.cc:
429 if (namel[i][0] == 'r' && strncmp(namel[i], "rpmlib", 6) == 0)
430 {
431 #if RPM_VERSION >= 0x040404
432 rpmds rpmlibProv = NULL;
433 rpmds ds = rpmdsSingle(RPMTAG_PROVIDENAME,
434 namel[i], verl?verl[i]:NULL, flagl[i]);
435 rpmdsRpmlib(&rpmlibProv, NULL);
436 int res = rpmdsSearch(rpmlibProv, ds) >= 0;
437 rpmdsFree(ds);
438 rpmdsFree(rpmlibProv);
439 #elif RPM_VERSION >= 0x040100
440 rpmds ds = rpmdsSingle(RPMTAG_PROVIDENAME,
441 namel[i], verl?verl[i]:NULL, flagl[i]);
442 int res = rpmCheckRpmlibProvides(ds);
443 rpmdsFree(ds);
444 #else
445 int res = rpmCheckRpmlibProvides(namel[i], verl?verl[i]:NULL,
446 flagl[i]);
447 #endif
448 if (res) continue;
449 }
В строке 448 зависимость rpmlib(...) игнорируется, если она разрешена
относительно установленной библиотеки librpm.
После обновления librpm нужно перегенерировать (или просто удалить)
кеш апт, чтобы в новом кеше игнорировались в том числе и новые
зависимости rpmlib(...), предоставляемые новой библиотекой librpm.
> Решением это слабо можно назвать.
Любая новая фича rpm, выраженная в зависимостях вида rpmlib(...),
вызовет точно такую же проблему у апта. На самом деле я считаю это
определнной кривизной апта.
Решение же абсолютно правильное -- либо запустить "странную команду",
которая перегенерирует кеш апта, либо просто удалить кеш вручную --
rm -f /var/cache/apt/*.bin
apt/apt-pkg/pkgcachegen.cc:
600 /* This just verifies that each file in the list of index files exists,
601 has matching attributes with the cache and the cache does not have
602 any extra files. */
603 static bool CheckValidity(string CacheFile, FileIterator Start,
604 FileIterator End,MMap **OutMap = 0)
605 {
606 // No file, certainly invalid
607 if (CacheFile.empty() == true || FileExists(CacheFile) == false)
608 return false;
609
610 // CNC:2003-02-20 - When --reinstall is used during a cache building
611 // process, the algorithm is sligthly changed to
612 // order the "better" architectures before, even if
613 // they are already in the system. Thus, we rebuild
614 // the cache when it's used.
615 bool ReInstall = _config->FindB("APT::Get::ReInstall", false);
616 if (ReInstall == true)
617 return false;
[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]
next prev parent reply other threads:[~2008-07-20 11:34 UTC|newest]
Thread overview: 201+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-10 20:44 ` [devel] Cron <bugzilla_updater@bugzilla> bugzilla-repo-sync "Sisyphus" Mikhail Gusarov
2008-07-11 5:42 ` [devel] [JT] " Ildar Mulyukov
2008-07-11 7:18 ` Yuri N. Sedunov
2008-07-11 7:21 ` Mikhail Gusarov
2008-07-11 7:31 ` Aleksey Novodvorsky
2008-07-16 8:08 ` [devel] пропал доброволец, хм... как там дальше Michael Shigorin
2008-07-16 8:26 ` Aleksey Novodvorsky
2008-07-17 6:34 ` [devel] пропал Michael Shigorin
2008-07-17 10:29 ` Wartan Hachaturow
2008-07-17 10:37 ` Aleksey Novodvorsky
2008-07-17 10:45 ` Wartan Hachaturow
2008-07-17 10:48 ` Mikhail Gusarov
2008-07-17 10:57 ` Aleksey Novodvorsky
2008-07-17 11:19 ` Mikhail Gusarov
2008-07-17 10:53 ` Slava Semushin
2008-07-19 12:08 ` Stanislav Ievlev
2008-07-20 5:37 ` Ivan Fedorov
2008-07-20 9:53 ` Денис Смирнов
2008-07-17 10:55 ` Aleksey Novodvorsky
2008-07-17 11:05 ` Wartan Hachaturow
2008-07-17 11:11 ` Mikhail Gusarov
2008-07-17 11:37 ` Ildar Mulyukov
2008-07-17 11:48 ` Wartan Hachaturow
2008-07-17 11:59 ` Andrew Avramenko
2008-07-17 12:04 ` Wartan Hachaturow
2008-07-17 12:15 ` Eugene Ostapets
2008-07-17 13:25 ` Alexey Tourbin
2008-07-17 12:29 ` Aleksey Avdeev
2008-07-17 12:31 ` Mikhail Gusarov
2008-07-17 12:36 ` Aleksey Avdeev
2008-07-17 12:41 ` Wartan Hachaturow
2008-07-17 12:50 ` Aleksey Avdeev
2008-07-17 12:54 ` Wartan Hachaturow
2008-07-17 12:58 ` Mikhail Gusarov
2008-07-17 13:08 ` Aleksey Avdeev
2008-07-17 13:12 ` Wartan Hachaturow
2008-07-17 18:13 ` Aleksey Avdeev
2008-07-17 12:54 ` Alexey Tourbin
2008-07-17 13:15 ` Wartan Hachaturow
2008-07-17 13:23 ` Aleksey Novodvorsky
2008-07-17 13:29 ` Mikhail Gusarov
2008-07-17 13:42 ` Aleksey Novodvorsky
2008-07-17 13:45 ` Wartan Hachaturow
2008-07-17 13:48 ` Aleksey Novodvorsky
2008-07-17 14:18 ` Mikhail Gusarov
2008-07-17 14:22 ` Aleksey Novodvorsky
2008-07-17 14:28 ` Mikhail Gusarov
2008-07-17 14:36 ` Aleksey Novodvorsky
2008-07-17 17:01 ` [devel] [JT] терпение Michael Shigorin
2008-07-17 14:34 ` [devel] пропал Alexey Tourbin
2008-07-17 14:42 ` Mikhail Gusarov
2008-07-17 14:56 ` Aleksey Novodvorsky
2008-07-17 15:11 ` Alexey Tourbin
2008-07-17 15:49 ` Wartan Hachaturow
2008-07-17 15:58 ` Aleksey Novodvorsky
2008-07-17 16:07 ` Mikhail Gusarov
2008-07-17 16:11 ` Wartan Hachaturow
2008-07-17 17:00 ` [devel] новый gcc и core subteams Michael Shigorin
2008-07-17 18:32 ` Andrey Rahmatullin
2008-07-17 18:51 ` Wartan Hachaturow
2008-07-17 19:11 ` Michael Shigorin
2008-07-17 16:11 ` [devel] пропал Alexey Tourbin
2008-07-17 18:48 ` Wartan Hachaturow
2008-07-17 19:09 ` Michael Shigorin
2008-07-17 19:11 ` Mikhail Gusarov
2008-07-17 19:37 ` Aleksey Novodvorsky
2008-07-17 19:23 ` Wartan Hachaturow
2008-07-17 20:12 ` Michael Shigorin
2008-07-17 20:15 ` Wartan Hachaturow
2008-07-20 11:16 ` Alexey Tourbin
2008-07-20 11:18 ` Alexander Bokovoy
2008-07-20 11:34 ` Alexey Tourbin [this message]
2008-07-20 11:56 ` [devel] rpmlib(...) & apt Alexander Bokovoy
2008-07-20 12:05 ` Alexey Tourbin
2008-07-20 12:15 ` Max Ivanov
2008-07-20 12:17 ` Alexey Tourbin
2008-07-20 12:25 ` Aleksey Novodvorsky
2008-07-20 12:46 ` Alexey Tourbin
2008-07-29 15:40 ` Sergey V Turchin
2008-07-29 16:14 ` Andrii Dobrovol`s`kii
2008-07-20 12:15 ` Alexey Tourbin
2008-07-21 4:48 ` Ildar Mulyukov
2008-07-30 6:22 ` Michael Shigorin
2008-07-23 10:00 ` [devel] пропал Wartan Hachaturow
2008-07-23 10:25 ` Alexey Tourbin
2008-07-17 22:58 ` Alexey I. Froloff
2008-07-18 8:02 ` Wartan Hachaturow
2008-07-18 8:39 ` Alexey I. Froloff
2008-07-18 8:45 ` Mikhail Gusarov
2008-07-18 9:18 ` Aleksey Novodvorsky
2008-07-18 9:22 ` Mikhail Gusarov
2008-07-18 9:33 ` Aleksey Novodvorsky
2008-07-18 9:24 ` Wartan Hachaturow
2008-07-18 9:36 ` Aleksey Novodvorsky
2008-07-18 9:45 ` Mikhail Gusarov
2008-07-18 10:00 ` Aleksey Novodvorsky
2008-07-18 10:05 ` Wartan Hachaturow
2008-07-18 10:40 ` Alexey I. Froloff
2008-07-18 10:55 ` Aleksey Novodvorsky
2008-07-18 10:05 ` Aleksey Novodvorsky
2008-07-18 10:37 ` Alexey I. Froloff
2008-07-18 10:35 ` Alexey I. Froloff
2008-07-18 8:51 ` Kirill A. Shutemov
2008-07-18 9:02 ` Wartan Hachaturow
2008-07-20 11:09 ` Alexey Tourbin
2008-07-17 13:29 ` Wartan Hachaturow
2008-07-17 13:36 ` Aleksey Novodvorsky
2008-07-17 13:50 ` Mikhail Gusarov
2008-07-17 13:55 ` Aleksey Novodvorsky
2008-07-17 13:38 ` Alexey Tourbin
2008-07-17 13:41 ` Wartan Hachaturow
2008-07-17 13:47 ` Alexey Tourbin
2008-07-17 13:57 ` Wartan Hachaturow
2008-07-17 18:17 ` Aleksey Avdeev
2008-07-17 13:48 ` [devel] git (was: пропал) Vitaly Ostanin
2008-07-17 14:05 ` Alexander Bokovoy
2008-07-17 15:28 ` Aleksey Novodvorsky
2008-07-17 15:32 ` [devel] git Mikhail Gusarov
2008-07-17 15:38 ` Alexander Bokovoy
2008-07-17 15:40 ` Mikhail Gusarov
2008-07-17 15:46 ` Aleksey Novodvorsky
2008-07-17 15:49 ` [devel] git (was: пропал) Alexey I. Froloff
2008-07-17 16:23 ` Alexander Bokovoy
2008-07-17 12:42 ` [devel] пропал Andrew Avramenko
2008-07-17 12:52 ` Aleksey Avdeev
2008-07-17 12:58 ` Andrew Avramenko
2008-07-17 13:01 ` Mikhail Gusarov
2008-07-18 5:01 ` Slava Semushin
2008-07-18 5:26 ` Denis Medvedev
2008-07-18 5:29 ` Slava Semushin
2008-07-18 6:11 ` Evgeny Sinelnikov
2008-07-18 6:26 ` Konstantin A. Lepikhov
2008-07-18 6:42 ` Evgeny Sinelnikov
2008-07-18 7:00 ` Denis Medvedev
2008-07-18 6:58 ` Evgeny Sinelnikov
2008-07-18 7:28 ` Michael Shigorin
2008-07-18 10:00 ` Vladimir V. Kamarzin
2008-07-18 10:00 ` Vladimir V. Kamarzin
2008-07-20 9:27 ` [devel] wiki/lists Michael Shigorin
2008-07-20 9:49 ` Slava Semushin
2008-07-18 7:14 ` [devel] пропал Ildar Mulyukov
2008-07-18 7:30 ` [devel] @packages Michael Shigorin
2008-07-18 7:47 ` Ildar Mulyukov
2008-07-19 9:14 ` [devel] пропал Kirill Maslinsky
2008-07-19 9:16 ` Mikhail Gusarov
2008-07-19 9:22 ` Wartan Hachaturow
2008-07-19 9:28 ` Kirill Maslinsky
2008-07-17 12:04 ` Mikhail A. Pokidko
2008-07-17 12:07 ` Wartan Hachaturow
2008-07-17 23:24 ` Alexey I. Froloff
2008-07-18 8:05 ` Wartan Hachaturow
2008-07-18 8:31 ` Alexey I. Froloff
2008-07-17 23:15 ` [devel] разработчики базовой системы Dmitry V. Levin
2008-07-18 12:33 ` Wartan Hachaturow
2008-07-18 14:02 ` Vitaly Ostanin
2008-07-18 14:11 ` Mikhail Gusarov
2008-07-18 14:13 ` Mikhail Gusarov
2008-07-18 14:18 ` Vitaly Ostanin
2008-07-18 14:22 ` Mikhail Gusarov
2008-07-18 14:29 ` Vitaly Ostanin
2008-07-18 14:31 ` Mikhail Gusarov
2008-07-18 14:16 ` Aleksey Novodvorsky
2008-07-18 14:18 ` Mikhail Gusarov
2008-07-18 14:47 ` Aleksey Novodvorsky
2008-07-18 14:48 ` Mikhail Gusarov
2008-07-18 14:50 ` Mikhail Gusarov
2008-07-18 16:42 ` Aleksey Novodvorsky
2008-07-18 21:46 ` Alexey I. Froloff
2008-07-29 20:36 ` Michael Shigorin
2008-07-30 4:44 ` [devel] [JT] " Ildar Mulyukov
2008-07-30 7:36 ` Dmitry V. Levin
2008-07-30 8:17 ` Alexander Bokovoy
2008-07-30 8:27 ` Dmitry V. Levin
2008-07-30 8:35 ` Alexander Bokovoy
2008-07-30 8:43 ` Alexey I. Froloff
2008-07-30 8:45 ` Mikhail Gusarov
2008-07-30 8:46 ` Andrey Rahmatullin
2008-07-30 12:57 ` [devel] [JT] #altlinux Michael Shigorin
2008-07-30 20:04 ` Wartan Hachaturow
2008-07-21 15:19 ` [devel] разработчики базовой системы Anton Farygin
2008-07-21 15:16 ` Anton Farygin
2008-07-21 17:55 ` Vladimir V. Kamarzin
2008-07-17 10:33 ` [devel] пропал Aleksey Novodvorsky
2008-07-11 7:34 ` [devel] [JT] Cron <bugzilla_updater@bugzilla> bugzilla-repo-sync "Sisyphus" Yuri N. Sedunov
2008-07-11 7:35 ` Mikhail Gusarov
2008-07-11 7:36 ` Mikhail Gusarov
2008-07-11 7:40 ` Yuri N. Sedunov
2008-07-11 7:42 ` Mikhail Gusarov
2008-07-11 8:10 ` Yuri N. Sedunov
2008-07-11 8:19 ` Mikhail Gusarov
2008-07-11 8:21 ` Mikhail Gusarov
2008-07-11 8:40 ` Yuri N. Sedunov
2008-07-11 8:43 ` Mikhail Gusarov
2008-07-11 11:27 ` Yuri N. Sedunov
2008-07-11 11:52 ` Mikhail Gusarov
2008-07-11 12:04 ` Yuri N. Sedunov
2008-07-11 12:05 ` Mikhail Gusarov
2008-07-11 9:36 ` Alexey I. Froloff
2008-07-11 10:17 ` Ildar Mulyukov
2008-07-11 11:15 ` Yuri N. Sedunov
2008-07-11 12:13 ` Yuri N. Sedunov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080720113442.GD25993@solemn.turbinal \
--to=at@altlinux.ru \
--cc=devel@lists.altlinux.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git