I don't know the particular reason why your attempt failed (it might be related to APT conf, etc.), but I managed to install openjdk7 on squeeze quite easily without any noticeable side effects so far.
A word of warning is due here: mixing packages from different releases (e.g. stable and testing) is risky. A package installed from another release may not be compatible with the others and might even break other packages. It's especially risky to upgrade critical packages like libc, which will be upgraded in this case.
Firstly, you need to setup package priorities so that APT does not start pulling in everything from testing. For more information you can refer to apt_preferences(5) manual page and The Debian Administrator's Handbook.
Include wheezy in the sources.list (I assume you have already done that)
Setup priorities
Set squeeze as the default release
$ cat /etc/apt/apt.conf.d/local
APT::Default-Release "squeeze";
This effectively sets priority 990 for squeeze packages.
By doing a simulated upgrade I noticed APT is trying to upgrade some packages from testing. apt-cache policy
explained this is happening for packages which are installed from backports (installed package priority 100 vs 500 for packages available in testing). Not sure if that's the best thing to do, but to resolve this (avoid upgrading packages from backports with versions from testing) I minimized testing priority (you don't have to do this if you don't use backports)
$ cat /etc/apt/preferences.d/wheezy
Package: *
Pin: release n=wheezy
Pin-Priority: 10
"10" is just an arbitrary number I chose, which is less than 100. I guess with this pin security updates won't be fetched for packages installed from testing (haven't tested yet), would be interesting to resolve this as well.
Install the openjdk7 selecting wheezy as the target release
# apt-get install -t wheezy openjdk-7-jdk
As essential libraries will be upgraded in the process be ready to restart some services (will be restarted automatically with your agreement). And I wouldn't recommend doing it in a graphical session - I was instructed to stop my display manager before upgrading libc.
For the most part it's painless as normal.
For the 'big move' it's best to have just the main repository of the version you are upgrading to. Remove any other repos including old ones of the same lineage.
You don't need to remove any packages from 'other' repositories, however, unless you pin them they may get upgraded. The configuration files are linked to packages not repositories so there's no problem there.
It's normally best to ensure that apt-get
and dpkg
are updated early.
Always CHECK before you let the apt-get dist-upgrade
do it's stuff. Occasionally it'll get confused and decide it's best move is to remove large numbers of packages (annoying). If you manually install (upgrade) a few important packages first it'll normally get better. If you find it wants to remove half the system when you upgrade a particular package the best thing to try is something like:
apt-get install packageyouwanttoinstall packageyoudontwantremoved
Usually apt-get
will then try something different.
One of the dangerous this this time is the replacement of init
by systemd
. You may want to put a rejection of systemd
into your preferences file until the rest of the upgrade is done so this change can happen with all new initscripts.
Obviously, make sure you have backups before you try this and you know how to restore them!
Oh, and read the Release notes
Edit:
To "reject systemd" you can add a section to your /etc/apt/preferences
file. Though generally, you don't want anything in there during the upgrade and you should remove this afterwards. If you do this you will have to install systemd
explicitly as it'll assume you have chosen no to do the switch.
Package: systemd
Pin: release o=debian
Pin-Priority: -1
Edit2:
On a related note, I've just upgraded aother server from squeeze
to jessie
.
Rule one don't skip wheezy, it go so confused I ended up using my backups.
It's a more generic server so it had different packages; the samba
, squid
and apache2
packages are of note. Samba has been upgraded to V4, this will probably break a custom configuration, everything seems to still be there, just a little different. The Debian standards for Apache's configuration files have changed; if you don't upgrade all the config files it'll break; you should have followed the rules when you did your customisations. Once I moved them to the "right" files it was fine. If you haven't already upgraded to squid3
the old squid
package doesn't exist in jessie
you will continue to run happily on the wheezy
version but you should upgrade to squid3
soon.
Oh, and udev
whinged what the kernel was too old. (I forgot to reboot after upgrading to wheezy
)
Best Answer
Strangely this isn't well documented or possibly I just did a poor job finding the docs but I had to change
/etc/ganglia/gmond.conf
to this, restart everything, and now it works just fine:Hopefully this helps anyone else who was setting up a single node and master!
PS in the same file don't forget to change
mcast_join = 127.0.0.1
tohost = 127.0.0.1