[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Debian package downloader for win32



On Thu, Oct 21, 2004 at 10:13:31AM -0400, Chad Kiser wrote:
...
> Here is what I'm requesting, an app on debian which will output my
> installed package database and possible sources.list into a file. Then
> a win32 program that will read that file, look at my sources.list and
> present me with a list of upgradeable packages, then allow me to
> select packages to upgrade and download those for me.  

If you install cygwin under windows, then you will get a
somewhat-sensible working environment. That can then be leveraged
further.

> I don't know anything about coding so I can't do something like this
> for myself, and I'm sure there are other people out there in a similar
> situation that something like this would benefit.  Would someone be
> willing to tackle such a project?

I took a different approach
- Install cygwin at work
- On my linux box, connect up and perform apt-get update (not install)
- on the linux box use the attached script to prepare the download e.g.:
    # cygwin-apt-get upgrade > deb-upgrade.sh
  (same syntax as apt-get)
- transport (e.g. via mail) the deb-upgrade.sh script to the cygwin box
  and run it there. This will download the necesary .deb's
- transport the .debs back home (USB keyfob, CD, whatever)
- Copy the .debs to /var/cache/apt/archives on the debian box
- (finally!!) apt-get upgrade
- Relax. Coffee. Order Pizza. Take over the world. Get Broadband.

Hope this helps

PS: the script can probably be improved to no end - GPL applies here.
-- 
Karl E. Jørgensen
karl@jorgensen.com   http://karl.jorgensen.com
==== Today's fortune:
Two is company, three is an orgy.
#!/bin/sh

set -e

cat <<"!"
#!/bin/sh

getfile()
{
    url=$1
    localname=$2
    md5sum=$3
    len=$4

    if [ ! -f $localname ]
    then
        echo Fetching $url into $localname
        if wget --continue --non-verbose --tries=3 --output-document ${localname}.new $url ; then
            mv ${localname}.new ${localname}
            echo Got ${localname} - $len bytes
        fi
    else
	echo Skipping $localname - already fetched
    fi
}

!

apt-get --print-uris --download-only --yes "$@" | 
    grep \^\'http | tr -d \' | 
    sort -n -k3 -r | 
    while read url localname len md5sum 
do
    echo getfile $url $localname $md5sum $len
done

Attachment: signature.asc
Description: Digital signature


Reply to: