Linux Certification, System Administration, Programming, Networking Books
Running RPM upgrade question

RH 8.0

Following gcc packages are running on the
OS;
# rpm -qa gcc*
gcc-3.2-7
gcc-c++-3.2-7
gcc-g77-3.2-7
gcc-java-3.2-7
gcc-objc-3.2-7
gcc-gnat-3.2-7

I need to upgrade all of them to;
gcc-3.2.2-5.i386.rpm
gcc-c++-3.2.2-5.i386.rpm
gcc-g77-3.2.2-5.i386.rpm
gcc-gnat-3.2.2-5.i386.rpm
gcc-java-3.2.2-5.i386.rpm
gcc-objc-3.2.2-5.i386.rpm

However they need following dependencies;
libgcj-3.2.2-5.i386.rpm
libgcj-devel-3.2.2-5.i386.rpm
libgnat-3.2.2-5.i386.rpm
libobjc-3.2.2-5.i386.rpm
libstdc++-3.2.2-5.i386.rpm
libstdc++-devel-3.2.2-5.i386.rpm
libf2c-3.2.2-5.i386.rpm

That means they are all inter-related.
Therefore I'm not allowed to upgrade them individually.

Can I perform upgrade collectively, i.e.

# rpm -Uvh gcc-3.2.2-5.i386.rpm
gcc-c++-3.2.2-5.i386.rpm
gcc-g77-3.2.2-5.i386.rpm
gcc-gnat-3.2.2-5.i386.rpm
gcc-java-3.2.2-5.i386.rpm
gcc-objc-3.2.2-5.i386.rpm
libgcj-3.2.2-5.i386.rpm
libgcj-devel-3.2.2-5.i386.rpm
libgnat-3.2.2-5.i386.rpm
libobjc-3.2.2-5.i386.rpm
libstdc++-3.2.2-5.i386.rpm
libstdc++-devel-3.2.2-5.i386.rpm
libf2c-3.2.2-5.i386.rpm

If OK, I will keep all of them in a folder namely
'/home/gcc_pkg/' and run

# rpm -Uvh --test /home/gcc_pkg/*

to perform test-installation first and then

# rpm -Uvh /home/gcc_pkg/*

OR is there any other solution
 

You can install multiple RPMs in one command, or you could use the --nodeps and --force switches, or as you are using redhat you could use yum or apt-get to automatically resolve the dependencies for you. Then all you would need to do is type somethingg like:
# apt-get upgrade gcc
 

Tks for your advice.

Have upgraded all gcc packages including relevant dependencies with

# rpm -Fvh /home/gcc_pkg/*.rpm

They are running without problem, at least up-to-now. The packages were downloaded from RH9

What will be the difference in function between
--nodeps (option)
and
--force (option)

I have been considering
# apt-get upgrade gcc

but have no confidence whether all gcc packages will be upgraded to above gcc-3.2.2 version which is needed.

One further question is there anyway to roll back in case of need without going through

# rpm -e gcc_new_pkg
# rpm -ivh gcc_old_pkg
 

--nodeps just skips dependency checking where as --force replaces the files even if the package is already installed.
# apt-get upgrade gcc-3.2.2
might work....? I don't know as I no longer use RPMs. You can roll back using the force switch.
 

Noted with thanks

Quick Links:
Do you have a Linux Question?

Linux Home: Linux System Administration Hints and Tips