On 29 October 2012 13:03, Guillaume Rousse <[email protected]> wrote: > I'm trying to port febootstrap to mageia (I need libguestfs, and it's a > mandatory dependency). I need to be able to resolve dependencies and > download packages, without root privileges. I see two solutions here: > > 1) use 'urpmq --requires-recursive --sources' first to get the list of > packages, then check against already installed packages, then use another > tool (curl, wget, whatever) to download the missing ones.
Which would mean reinventing urpmi logic for computing full URIs :-( > 2) modify urpmi to allow it to be used without root privileges to just > download files. > > I'm currently trying to achieve solution 2. The attached patch relax the > process uid check when --no-install option is used, provided an explicit > download directory is used, through --download-all option. However, I'm > facing multiple issues here: > > - first, --download-all doesn't just change download-directory, its main > effect is to change urpmi behaviour from interleaved download/install steps > to download everything first. It doesn't matter very much here, but distinct > --download-all and --download-dir options would have been a clearer > interface. > > - second, --noclean seems to be useless when using something an alternative > download directory > > - last, the default downloader (aria, I presume) doesn't specify which files > it is currently downloading, meaning I'll have to post-process download > directory to retrieve the list of packages, whereas I'd prefered to just > parse urpmi output. I had to use --downloader wget to get a more verbose > output. > > urpmi maintainer(s) opinion welcome here. This is not the right approach. What's more the download-all packages only affect downloading packages before transactions, and is restricted to urpm::main_loop. I would just add a download-dir option the attached patch way (untested), and not warn if no-install is used (second (untested) patch). Together with --no-install, it's what you want.
download-dir.diff
Description: Binary data
only_warn_if_not_using_no-install.diff
Description: Binary data
