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 в теле функции. Просто питон отвалит в момент вызова этого кода и всё. Впрочем, можно надеяться, что этот код будет вызываться не всякий раз. Чего, так сказать, Вам желаю.