Mailinglist Archive: zypp-devel (50 mails)

< Previous Next >
Re: [zypp-devel] How to Use libzypp Repositories Within Installation/Upgrade
  • From: Lukas Ocilka <lukas.ocilka@xxxxxxx>
  • Date: Thu, 27 Sep 2007 12:33:44 +0200
  • Message-id: <46FB8708.6070609@xxxxxxx>
Michael Andres wrote:
> On Wed, Sep 26, Lukas Ocilka wrote:
> 
>> Solution?
>> A very quick but very dirty hack would be to remove all sources from
>> /etc/zypp/repos.d/ before storing the actual set of sources to the target.
> 
> AFAIK we always just disabled the sources located on the old system.
> Until we are able to make some intelligent guess we should leave it 
> to the user to finaly delete them.
> 
> 
>   // old system root
>   Pathname mgrdir_r( "/mnt" );
> 
>   // prefix paths with /mnt
>   // (we should add a convenience ctor for that)
>   RepoManagerOptions mgropt;
>   mgropt.repoCachePath    = mgrdir_r/mgropt.repoCachePath;
>   mgropt.repoRawCachePath = mgrdir_r/mgropt.repoRawCachePath;
>   mgropt.knownReposPath   = mgrdir_r/mgropt.knownReposPath";
> 
>   // load old systems repos...
>   RepoManager oldrepoManager( mgropt );
>   RepoInfoList oldrepos = oldrepoManager.knownRepositories();
> 
>   // ...and disable them.
>   for_( it, oldrepos.begin(), oldrepos.end() )
>   {
>     oldrepoManager.modifyRepository( it->alias(), it->setEnabled( false ) );
>   }

Thanks,

Hmm, and are Pkg Bindings able to do that?
Libzypp is already initialized in inst-sys, I'd need to reinitialize it
in the /mnt chroot, disable those sources and close the /mnt again...

This would be partly a solution, but it doesn't solve the whole problem.
Imagine the situation:

* There are old sources in /mnt -> now disabled (as MA suggests)
* Newly added sources (the same as found in /mnt) will be stored
  after SaveAll function call (some enabled, the other disabled).

This leads into having the old sources twice...

L.

< Previous Next >
List Navigation
Follow Ups