[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