* sadece paket kaldırıldığı zaman /var/lib/pisi altından da siliniyordu,

upgrade ve downgradelerde de eski versiyon klasörü silinsin
This commit is contained in:
Faik Uygur
2005-11-14 19:12:54 +00:00
parent ac8aed20d4
commit e86b20cddb
2 changed files with 13 additions and 6 deletions
+7 -3
View File
@@ -177,6 +177,7 @@ class Install(AtomicOperation):
# schedule for reinstall
self.old_files = ctx.installdb.files(pkg.name)
self.old_path = ctx.installdb.pkg_dir(pkg.name, iversion, irelease)
self.reinstall = True
Remove(pkg.name).run_preremove()
@@ -228,6 +229,7 @@ class Install(AtomicOperation):
if self.reinstall:
Remove(self.metadata.package.name).remove_db()
Remove.remove_pisi_files(self.old_path)
# installdb
ctx.installdb.install(self.metadata.package.name,
@@ -322,7 +324,7 @@ class Remove(AtomicOperation):
self.remove_file(fileinfo)
self.remove_db()
self.remove_pisi_files()
self.remove_pisi_files(self.package.pkg_dir())
ctx.ui.status()
ctx.ui.notify(pisi.ui.removed, package = self.package, files = self.files)
@@ -360,8 +362,10 @@ class Remove(AtomicOperation):
# TODO: store this somewhere
pass
def remove_pisi_files(self):
util.clean_dir(self.package.pkg_dir())
def remove_pisi_files(path):
util.clean_dir(path)
remove_pisi_files = staticmethod(remove_pisi_files)
def remove_db(self):
ctx.installdb.remove(self.package_name)
+6 -3
View File
@@ -28,6 +28,7 @@ import pisi.context as ctx
import pisi.lockeddbshelve as shelve
from pisi.files import Files
import pisi.util as util
from pisi.util import join_path as join
class InstallDBError(pisi.Error):
@@ -75,15 +76,14 @@ class InstallDB:
def __init__(self):
self.d = shelve.LockedDBShelf('install')
self.dp = shelve.LockedDBShelf('configpending')
self.files_dir = pisi.util.join_path(ctx.config.db_dir(), 'files')
self.files_dir = join(ctx.config.db_dir(), 'files')
def close(self):
self.d.close()
self.dp.close()
def files_name(self, pkg, version, release):
from pisi.util import join_path as join
pkg_dir = join(ctx.config.lib_dir(), pkg + '-' + version + '-' + release)
pkg_dir = self.pkg_dir(pkg, version, release)
return join(pkg_dir, ctx.const.files_xml)
def files(self, pkg):
@@ -93,6 +93,9 @@ class InstallDB:
files.read(self.files_name(pkg,pkginfo.version,pkginfo.release))
return files
def pkg_dir(self, pkg, version, release):
return join(ctx.config.lib_dir(), pkg + '-' + version + '-' + release)
def is_recorded(self, pkg):
pkg = str(pkg)
return self.d.has_key(pkg)