* 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:
@@ -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
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user