How to upgrade single package with their
dependencies on Debian and Ubuntu Linux
Are you a Debian System Administrator and you recently run
apt-get upgrade && apt-get upgrade finding out there
are plenty of new packagesfor upgrade? Do you need only a
pre-selected number of packages to upgrade with apt?
I run
apt-get update && apt-get upgrade on one of
our company
Debian servers, just to see there are a number
of packages to be upgraded among which there was some I didn't
wanted to upgrade. Here is a little paste output from
apt-get
upgrade:
debian:~# apt-get update && apt-get upgrade
Hit http://security.debian.org squeeze/updates Release.gpg
...
Hit http://security.debian.org squeeze/updates/main amd64
Packages
Fetched 128 kB in 0s (441 kB/s)
Reading package lists... Done
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be upgraded:
at imagemagick libdbd-pg-perl libfreetype6 libmagickcore3
libmagickcore3-extra libmagickwand3 libmysqlclient16
mysql-client
mysql-client-5.1 mysql-common mysql-server mysql-server-5.1
mysql-server-core-5.1
Do you want to continue [Y/n]
14 upgraded, 0 newly installed, 0 to remove and 0 not
upgraded.
From first sight it seems logical to issue
apt-get upgrade
packagename to upgrade only single package with its package
dependencies, instead of the whole group the above packs. However
doing:
apt-get upgrade imagemagick will still try to upgrade all
the packages instead of just
imagemagick and its dependency
package deb
libmagickcore3
debian:~# apt-get upgrade imagemagick
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be upgraded:
at imagemagick libdbd-pg-perl libfreetype6 libmagickcore3
libmagickcore3-extra libmagickwand3 libmysqlclient16
mysql-client
mysql-client-5.1 mysql-common mysql-server mysql-server-5.1
mysql-server-core-5.1
14 upgraded, 0 newly installed, 0 to remove and 0 not
upgraded.
Do you want to continue [Y/n]
Doing all package,upgrade is not a good idea in my case, since
upgrading
mysql-server will require a MySQL server restart
(something which we cannot afford to do right now) on this
production server.
MySQL server restart during upgrade is never a good idea especially
on productive busy (heavy loaded) SQL servers.
A restart of the MySQL server serving thousands of requests per
second could lead often to crashed tables and hence temporary
server downtime etc.
Still it is a good idea to upgrade the rest of packages with their
newer versions. For exmpl. to upgrade;
imagemagick,
at ,
libfreetype6 and so on.
In order to upgrade only this 3 ones and their respective package
dependencies, issue:
debian:~# apt-get --yes install imagemagick at
libfreetype6
Repeat the
apt-get install command with passing all the
single package name you want to be upgraded and voila you're done
:).
Be sure the
apt-get install packagename upgrade
doesn't require also upgrade of
myssql-server, mysql-client,
mysql-common or mysql-server-core-5.1 or any of the package
name you want to preserve from upgrading.