[devel] apt-python

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Пт Май 23 17:05:21 MSD 2008


On Fri, May 23, 2008 at 03:47:35PM +0400, Alexey Shabalin wrote:
> 23 мая 2008 г. 15:23 пользователь Alexey Tourbin написал:
> > Я также посмотрел код PackageKit, и у меня сложилось предварительное
> > мнение, что даже если эти байндинги в текущем их виде починить, то
> > PackageKit всё равно не заработает.
> 
> Жаль. Хотелось бы его видеть в сизифе работающим.

backends/apt/helpers/aptBackend.py:
   449      def install_files (self, inst_files):
   450          '''
   451          Implement the {backend}-install_files functionality
   452          Install the package containing the inst_file file
   453          '''
   454          if not exists(inst_file):
   455              self.error(ERROR_PACKAGE_NOT_FOUND,"Can't find %s"%inst_file)
   456              return
   457          deb = DebPackage(inst_file)
   458          deps = {}
   459          for k in ["Depends","Recommends"]:
   460              if not deb._sections.has_key(k):
   461                  continue
   462              for items in apt_pkg.ParseDepends(deb[k]):
   463                  assert len(items) == 1,"Can't handle or deps properly yet"
   464                  (pkg,ver,comp) = items[0]
   465                  if not deps.has_key(pkg):
   466                      deps[pkg] = []
   467                  deps[pkg].append((ver,comp))
   468          for n in deps.keys():
   469             p = Package(self,self._apt_cache[n],version=deps[n])
   470             if not p.isInstalled:
   471                 p.markInstall()
   472          assert self._apt_cache.getChanges()==[],"Don't handle install changes yet"
   473          # FIXME: nasty hack. Need a better way in
   474          ret = system("dpkg -i %s"%inst_file)
   475          if ret!=0:
   476              self.error(ERROR_UNKNOWN,"Can't install package")

В каждом шкафу есть свой скелет.

Есть вообще сомнения, что этот код работает (даже с дебиановским аптом).
Обратите внимание на разницу между inst_files в аргументе и inst_file
в теле функции.  Просто питон отвалит в момент вызова этого кода и всё.

Впрочем, можно надеяться, что этот код будет вызываться не всякий раз.
Чего, так сказать, Вам желаю.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 197 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20080523/ff462b11/attachment-0002.bin>


Подробная информация о списке рассылки Devel