Revision: 68652
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at February 4, 2015 22:41 by teterkin
Initial Code
#!/bin/sh # Aix71extras.sh version 0.1 beta # Copyleft (c) 2015 - Alexander Teterkin - [email protected] # http://www.gnu.org/licenses/gpl-3.0.txt # VARS HOST=www.oss4aix.org USER=anonymous [email protected] DIR=rpmdb/deplists/aix71 DIR2=/everything/RPMS TEMPDIR=TEMP SOFTDIR=SOFT LOG=$0.log DOWNLOADS=$TEMPDIR/downloads.deps MAJORVS=""; # Files to Install: FILES=" bash-4.3-12.aix5.1.ppc gcc-4.8.3-1.aix7.1.ppc less-466-1.aix5.1.ppc mc-4.7.0.4-2.aix5.1.ppc screen-4.2.1-1.aix5.1.ppc unzip-6.0-2.aix5.1.ppc wget-1.16-1.aix5.1.ppc bzip2-1.0.5-3.aix5.3.ppc " # FUNCTIONS makecmdlist() { echo "ftp -inv $HOST << EOF"; echo "user $USER $PASS"; echo "cd $DIR"; echo "lcd $TEMPDIR"; echo "$FILES" | while read LINE; do if [ "$LINE" != "" ]; then echo "get $LINE.deps"; fi done echo "bye"; echo "EOF"; } makecmdlist2() { echo "ftp -inv $HOST << EOF"; echo "user $USER $PASS"; echo "cd $DIR2"; echo "lcd $SOFTDIR"; echo "bin"; cat $DOWNLOADS | while read LINE; do if [ "$LINE" != "" ]; then echo "get $LINE"; fi done echo "bye"; echo "EOF"; } makecmdlist3() { echo "ftp -inv $HOST << EOF"; echo "user $USER $PASS"; echo "cd $DIR2"; echo "lcd $SOFTDIR"; echo "bin"; echo "$FILES" | while read LINE; do if [ "$LINE" != "" ]; then echo "get $LINE.rpm"; fi done echo "bye"; echo "EOF"; } doline() { echo ====================== } removeduplicates() { FILELIST=`ls -1 | grep rpm`; PCKGLIST=$(echo "$FILELIST" | while read LINE; do PCKG=`echo $LINE | awk -F "[0-9]" '{ print $1 '}`; echo $PCKG; done | sort | uniq ); echo $PCKGLIST echo "$PCKGLIST" | while read LINE; do HM=`echo "$FILELIST" | grep -c ^$LINE[0-9];`; if [ "$HM" -gt 1 ]; then echo "Found duplicates: $LINE ($HM):"; doline; # It was sorted, but we sort again by the 3rd column SORTED=`echo "$FILELIST" | grep ^$LINE[0-9] | sort -t- +2 -n;`; echo "$SORTED"; MAJORV=`echo "$SORTED" | tail -1`; MAJORVS="$MAJORVS""$MAJORV\n" doline; fi done MAJORVS=`echo "$MAJORVS"| grep -v ^$`; echo echo "Major versions:" echo "$MAJORVS"; echo echo "Duplicates:"; echo "$MAJORVS" | while read LINE; do PCKG=`echo $LINE | awk -F "[0-9]" '{ print $1 '}`; DUP=`echo "$FILELIST" | grep $PCKG | grep -v "$LINE";`; echo "Moving $DUP to TEMP folder..."; mv $DUP TEMP && echo "Done."; done } # MAIN mkdir $TEMPDIR mkdir $SOFTDIR CMDS=$(makecmdlist); echo "$CMDS" > $TEMPDIR/$0.temp; sh $TEMPDIR/$0.temp cd $TEMPDIR cat *.deps | sort | uniq > ../$DOWNLOADS cd .. CMDS2=$(makecmdlist2); echo "$CMDS2" > $TEMPDIR/$0.temp2; sh $TEMPDIR/$0.temp2 CMDS3=$(makecmdlist3); echo "$CMDS3" > $TEMPDIR/$0.temp3; sh $TEMPDIR/$0.temp3 cd $SOFTDIR mkdir TEMP removeduplicates; ls -1 | grep rpm | awk -F "[0-9]" {' print $1 '} | while read LINE; do if rpm -qa | grep "$LINE" 2>&1 > /dev/null; then echo "$LINE exists. Skipping..."; else echo "Installing $LINE..."; SN=`ls -1 | grep $LINE`; rpm -Uhv $SN; fi; done cd ..
Initial URL
Initial Description
AIX does not have Package Manager like YUM for Open Source Software. So I made a script to automatically install RPM packages on AIX box by downloading it from www.oss4aix.org site via ftp . It is very first version, it does not have all the necessary checks, but I do not have too much time to polish it. Actually it works. It downloads and installs all the necessary software and it dependencies ( thanks to Michael Perzl http://www.perzl.org/aix/index.php?n=FAQs.FAQs#rpm-dependency-hell ). I saw similar thing here: http://earth2baz.net/rpmplus/ But it downloads entire Repository. I do not need that. So made my own script. Actually it is for Korn Shell wich is deffault on AIX.
Initial Title
Download and Install necessary OSS RPMs on IBM AIX box
Initial Tags
download
Initial Language
Bash