[devel] apt virtual packages
Alexey Tourbin
at на altlinux.ru
Пт Дек 15 02:46:42 MSK 2006
On Fri, Dec 15, 2006 at 02:40:38AM +0300, Alexey Tourbin wrote:
> Суть проблемы в том, что когда просят установить виртуальный пакет с
> версией, apt берет первый попавшийся реальный пакет, который дает этот
> виртуальный пакет с этой версией.
>
> apt-get.cc:
> 2102 if (VerTag != 0)
> 2103 // CNC:2003-11-05
> 2104 if (TryToChangeVer(Pkg,Cache,VerOp,VerTag,VerIsRel) == false)
> 2105 return false;
> 2106 if (TryToInstall(Pkg,Cache,Fix,Remove,BrokenFix,ExpectedInst) == false)
> 2107 return false;
>
> Проблема в процедуре TryToChangeVer. Эта процедура пытается подыскать
> реальный пакет (в данном случае для python-devel=2.4) и выбирает первое
> что только можно выбрать.
Если просто тупо отрубить TryToInstall, то всё начинает работать.
--- apt-get.cc- 2006-12-14 23:36:02 +0000
+++ apt-get.cc 2006-12-14 23:44:10 +0000
@@ -2099,10 +2101,10 @@ bool DoInstall(CommandLine &CmdL)
}
else
{
- if (VerTag != 0)
- // CNC:2003-11-05
- if (TryToChangeVer(Pkg,Cache,VerOp,VerTag,VerIsRel) == false)
- return false;
+// if (VerTag != 0)
+// // CNC:2003-11-05
+// if (TryToChangeVer(Pkg,Cache,VerOp,VerTag,VerIsRel) == false)
+// return false;
if (TryToInstall(Pkg,Cache,Fix,Remove,BrokenFix,ExpectedInst) == false)
return false;
}
> --- apt-get.cc- 2006-12-14 23:36:02 +0000
> +++ apt-get.cc 2006-12-14 23:38:04 +0000
> @@ -1537,6 +1537,8 @@ bool TryToChangeVer(pkgCache::PkgIterato
> pkgVersionMatch::Version),VerOp);
>
> pkgCache::VerIterator Ver = Match.Find(Pkg);
> + for (pkgCache::VerIterator i = Ver; i.end() == false; i++)
> + fprintf(stderr, "Seen pkg %s ver %s\n", Pkg.Name(), i.VerStr());
>
> if (Ver.end() == true)
> {
----------- следущая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 189 байтов
Описание: отсутствует
Url : http://lists.altlinux.org/pipermail/devel/attachments/20061215/e9f4f8a2/attachment.bin
Подробная информация о списке рассылки Devel