installing packages using setup.exe from the command line (e.g., remotely)

Max Bowsher maxb@ukf.net
Thu Aug 19 22:21:00 GMT 2004


Christopher Cobb wrote:
> Max Bowsher <maxb <at> ukf.net> writes:
>
>>
>> setup isn't really designed for use from the command line. It doesn't 
>> take
>> package names as arguments, for example. You could, I suppose, munge
>> /etc/setup/installed.db to fool setup into thinking that a really old 
>> (e.g.
>> version 0) version of a package is installed, so that it would updated -
>> it's a messy way to do it, but there is no better way.
>>
>> Max.
>
> Thanks Max for the idea.  Here is a quick hack/shell script which worked 
> on
> the (small handful) of packages that I tried with it.

>    pkgFileName=`
> awk < $SETUP_INI '
> /@ / {
>    pkgName=$2
> }
> /version: / && pkg == pkgName {
>    pkgVer=$2
> }
> /install: / && pkg == pkgName {
>    num=split($2,arrFile,"/")
>    pkgFile=arrFile[num]
>    hyphenOffset=index(pkgFile,"-")
>    if (hyphenOffset != 0)
>    {
>        pkgPrefix=substr(pkgFile, 0, hyphenOffset)
>        verLength=index(pkgFile,".tar.bz2") - hyphenOffset
>        ver=substr(pkgFile, hyphenOffset+1, verLength - 1)
>        pkgSuffix=substr(pkgFile, hyphenOffset + verLength)
>        pkgFile=pkgPrefix "" gensub(/[0-9]/,"0","g",ver) "" pkgSuffix
>        print pkgFile
>        pkgPrinted="true"
>        exit
>    }
> }
> END{
>    if (pkgPrinted != "true") print pkgFile
> }
> ' pkg=$pkgName
> `

Actually, this should suffice:

pkgFileName="$pkgName-0.tar.bz2"

Much shorter! :-)

Max.


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list