* 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 # schedule for reinstall
self.old_files = ctx.installdb.files(pkg.name) self.old_files = ctx.installdb.files(pkg.name)
self.old_path = ctx.installdb.pkg_dir(pkg.name, iversion, irelease)
self.reinstall = True self.reinstall = True
Remove(pkg.name).run_preremove() Remove(pkg.name).run_preremove()
@@ -228,6 +229,7 @@ class Install(AtomicOperation):
if self.reinstall: if self.reinstall:
Remove(self.metadata.package.name).remove_db() Remove(self.metadata.package.name).remove_db()
Remove.remove_pisi_files(self.old_path)
# installdb # installdb
ctx.installdb.install(self.metadata.package.name, ctx.installdb.install(self.metadata.package.name,
@@ -322,7 +324,7 @@ class Remove(AtomicOperation):
self.remove_file(fileinfo) self.remove_file(fileinfo)
self.remove_db() self.remove_db()
self.remove_pisi_files() self.remove_pisi_files(self.package.pkg_dir())
ctx.ui.status() ctx.ui.status()
ctx.ui.notify(pisi.ui.removed, package = self.package, files = self.files) ctx.ui.notify(pisi.ui.removed, package = self.package, files = self.files)
@@ -360,8 +362,10 @@ class Remove(AtomicOperation):
# TODO: store this somewhere # TODO: store this somewhere
pass pass
def remove_pisi_files(self): def remove_pisi_files(path):
util.clean_dir(self.package.pkg_dir()) util.clean_dir(path)
remove_pisi_files = staticmethod(remove_pisi_files)
def remove_db(self): def remove_db(self):
ctx.installdb.remove(self.package_name) ctx.installdb.remove(self.package_name)
+6 -3
View File
@@ -28,6 +28,7 @@ import pisi.context as ctx
import pisi.lockeddbshelve as shelve import pisi.lockeddbshelve as shelve
from pisi.files import Files from pisi.files import Files
import pisi.util as util import pisi.util as util
from pisi.util import join_path as join
class InstallDBError(pisi.Error): class InstallDBError(pisi.Error):
@@ -75,15 +76,14 @@ class InstallDB:
def __init__(self): def __init__(self):
self.d = shelve.LockedDBShelf('install') self.d = shelve.LockedDBShelf('install')
self.dp = shelve.LockedDBShelf('configpending') 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): def close(self):
self.d.close() self.d.close()
self.dp.close() self.dp.close()
def files_name(self, pkg, version, release): def files_name(self, pkg, version, release):
from pisi.util import join_path as join pkg_dir = self.pkg_dir(pkg, version, release)
pkg_dir = join(ctx.config.lib_dir(), pkg + '-' + version + '-' + release)
return join(pkg_dir, ctx.const.files_xml) return join(pkg_dir, ctx.const.files_xml)
def files(self, pkg): def files(self, pkg):
@@ -93,6 +93,9 @@ class InstallDB:
files.read(self.files_name(pkg,pkginfo.version,pkginfo.release)) files.read(self.files_name(pkg,pkginfo.version,pkginfo.release))
return files return files
def pkg_dir(self, pkg, version, release):
return join(ctx.config.lib_dir(), pkg + '-' + version + '-' + release)
def is_recorded(self, pkg): def is_recorded(self, pkg):
pkg = str(pkg) pkg = str(pkg)
return self.d.has_key(pkg) return self.d.has_key(pkg)