[Kimchi-devel] [PATCH] bug fix: instantiate the Yum manager when update the yum packages list
Sheldon
shaohef at linux.vnet.ibm.com
Mon Mar 17 05:27:31 UTC 2014
On 03/15/2014 12:23 AM, Sheldon wrote:
> On 03/14/2014 10:52 PM, shaohef at linux.vnet.ibm.com wrote:
>> From: ShaoHe Feng <shaohef at linux.vnet.ibm.com>
>>
>> an instance just refresh packagekit once.
> But there maybe another problem.
> When software update, the yum will be locked.
> will' not get the Package Lists?
> Need to try.
Have try:
YumBase().doPackageLists("updates") do not need to get the lock.
1. install a package.
$sudo yum install xxxx
2. can not check-update.
$ sudo yum check-update
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: yum
Memory : 68 M RSS (384 MB VSZ)
Started: Mon Mar 17 12:54:36 2014 - 31:16 ago
State : Sleeping, pid: 10459
3. but doPackageLists can work, it does not need to get the lock of yum.
$ sudo PYTHONPATH=src python -c '
> from yum import YumBase
> YumBase().doPackageLists("updates")
> '
>>
>> for example:
>> $ sudo PYTHONPATH=src python -c '
>>> from yum import YumBase
>>> YumBase().doPackageLists("updates")
>>> _yb = YumBase()
>>> _yb.doPackageLists("updates")
>>> _yb.doPackageLists("updates")
>>> '
>> Loaded plugins: langpacks, refresh-packagekit
>> Loaded plugins: langpacks, refresh-packagekit
>>
>> you can seen the second _yb.doPackageLists will not refresh packagekit.
>>
>> The apt manager may also has the same problem.
>> But not test it on ubuntu, will send a patch later after I have check.
>>
>> Signed-off-by: Aline Manera <alinefm at br.ibm.com>
>> Signed-off-by: ShaoHe Feng <shaohef at linux.vnet.ibm.com>
>> ---
>> src/kimchi/swupdate.py | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/src/kimchi/swupdate.py b/src/kimchi/swupdate.py
>> index ff5c9d1..dc48153 100644
>> --- a/src/kimchi/swupdate.py
>> +++ b/src/kimchi/swupdate.py
>> @@ -136,14 +136,14 @@ class YumUpdate(object):
>> """
>> def __init__(self):
>> self._pkgs = {}
>> - self._yb = getattr(__import__('yum'), 'YumBase')()
>> + self._yb = getattr(__import__('yum'), 'YumBase')
>> self.update_cmd = ["yum", "-y", "update"]
>>
>> def _refreshUpdateList(self):
>> """
>> Update the list of packages to be updated in the system.
>> """
>> - self._pkgs = self._yb.doPackageLists('updates')
>> + self._pkgs = self._yb().doPackageLists('updates')
>>
>> def getPackagesList(self):
>> """
>
>
--
Thanks and best regards!
Sheldon Feng(冯少合)<shaohef at linux.vnet.ibm.com>
IBM Linux Technology Center
More information about the Kimchi-devel
mailing list