You can't install progs to SD or CF from the command line and run them effectively, since the ipkg doesn't ipkg link them after installing them to the SD. The qipkg does the linking for you.
You need to manually link the files then. Meanie has an xipkg script in his ipkg-tools package that does the linking. I have found it not to my liking. So I use this script:
#!/bin/sh
TEMP=/tmp
HDD=/mnt/card
for FILE in $*
do
ipkg -d h install $FILE
PROGRAM=`basename $FILE | sed 's/_.*//'`
echo "Linking $PROGRAM files..."
sed 's/\(^[^\/]\)/\/\1/' < $HDD/usr/lib/ipkg/info/$PROGRAM.list > $TEMP/list1
LIST=`cat $TEMP/list1`
for LINE in $LIST
do
if [ -d $HDD$LINE ]
then
mkdir -p $LINE
elif [ -f $HDD$LINE ]
then
if [ -e $LINE ]
then
rm $LINE
fi
ln -s $HDD$LINE $LINE
elif [ -h $HDD$LINE ]
then
if [ -e $LINE ]
then
rm $LINE
fi
cp $HDD$LINE $LINE
fi
done
sed 's/\(.*\)/\/hdd3\/installroot\1/' < $TEMP/list1 > $TEMP/list2
cat $TEMP/list1 >> $TEMP/list2
cp $TEMP/list2 /usr/lib/ipkg/info/$PROGRAM.list
rm $TEMP/list1
rm $TEMP/list2
rm $HDD/usr/lib/ipkg/info/$PROGRAM.list
sed 's/\/hdd3\/installroot/\//' < $HDD/usr/lib/ipkg/status >> /usr/lib/ipkg/status
rm $HDD/usr/lib/ipkg/status
touch $HDD/usr/lib/ipkg/status
if [ -e $HDD/usr/lib/ipkg/info/$PROGRAM.* ]
then
mv $HDD/usr/lib/ipkg/info/* /usr/lib/ipkg/info/
fi
echo "Done."
done
Run it as sudo ipk the_ipkg_name
and it'll install the packages to sd and link them, so you can use them later.
Regarding the error with not enough space that you get, you need enough space in your internal memory to unpack the full ipk. So if you're installing something big, though to an SD, it unpacks it in Temp somewhere to internal memory. Check Meanie's site on how to set the TMP or TEMP variable, so it doesn't unpack to internal and you don't get the not-enough-storage-space error.