On Wed, 2004-08-04 at 18:14, Satish Balay wrote: > On Wed, 4 Aug 2004, Enrique Perez-Terron wrote: > > > On Wed, 2004-08-04 at 06:46, Daniel Gagnon wrote: > > > I was wondering if there was a way for a user of Fedora Core 2 with > > > only a 56K modem to download update on a computer that have a > > > broadband connexion (but unfortunately, Windows) and carry them (on > > > CDs, probably) to the computer with the slow connexion. > > > > > > And how can yum be used in the process ? > > > > I suggest you use "yum list update" and then carry the listed rpms on a > > CD. > > > > However, it would be nice if yum had the option > > yum list updates --with-dependencies > > Actually you'll need something like '--dump-url-list' - which prints > the urls for all required pacakges (perhaps into a file) - wich can > be directly be fed to wget. > > yum --dump-url-list upgrade Could something like this do? #!/bin/bash # Simple way out for now basearch=i386 releasever=2 # Expect "Exiting on user command." in /tmp/yum-errors #while :; do echo n; done | yum update > /tmp/yum-data 2>/tmp/yum-errors # The resulting list has a slash between name and version-release, and no ".rpm" rpm_list=$(sed -n 's/^\[\(install\|update\): \([^ ]*\) \(.*\)\]/\2\/\3/p' < /tmp/yum-data) cd /var/cache/yum # Determine what rpms are in what repo. # Associate repo name with each repo for repo in * do [ -d "$repo" ] || continue pushd "$repo/headers" >/dev/null || continue for rpm in $rpm_list do # Some versions are of the form 0:2.6.6..., and some are not. # The files in headers directories have either 0- in front of the version, # or the colon changed into '-'. name=${rpm%/*} version=${rpm#*/} nogen=${version#[0-9]:} if [ "$nogen" = "$version" ] then [ -r $name-0-$version.hdr ] || continue rpm=$name-$version else gen=${version%:*} version=$nogen [ -r $name-$gen-$version.hdr ] || continue rpm=$name-$version fi # Newline embedded in the list. Do not indent!! repo_rpm_list="$repo_rpm_list $repo/$rpm" continue done popd >/dev/null done # From the config file, determine the baseurl's # associated with each repo while read line do : $line case "$line" in \[*) repo=${line#\[} repo=${repo%\]*} do_urls=true ;; baseurl\=*) [ "$do_urls" ] || continue url="${line#baseurl=}" eval "url=\"$url\"" echo "$repo_rpm_list" | sed -n "s|^$repo/\(.*\)|$url/Fedora/RPMS/\1.rpm|p" >> /tmp/yum-url-list do_urls= ;; esac done < /etc/yum.conf -Enrique