Debian Testing, Installation Iceweasel(Firefox Fork) Browser From Unstable

Page content

Community is doing great job supporting and contributing to Debian, guys are making as-stable-as-possible product for server installs. (Actually, I have never seen live production server running Debian, lol, but I think it should work well)

But if you’re using Debian on local box, as me, you can find it a bit too stable: at the moment Iceweasel 10.0.12 is in stable repo, 17.0.9 in testing, 24 in unstable.

I have lot of add-ons for Iceweasel installed and some of them (for example, Vimperator) don’t support Iceweasel 17 so I have to install Iceweasel from unstable.

Configuring apt pinning and adding repo

There are few options: if you have balls you can upgrade whole system to unstable, but mommy says you may be screwed up. In case if you’re afraid of loosing your StarTrek porn collection due to some software gotcha you should use apt pinning to update only particular packages.

You can find detailed information here, there is just slightly adapted version of this guide below.

The ‘preferences’ file is where the actual pinning takes place. Here’s an example:

# cat /etc/apt/preferences

Package: *
Pin: release a=testing
Pin-Priority: 900

Package: *
Pin: release a=unstable
Pin-Priority: 800

Package defaults to any, as specified by the asterisk. Pin specifies the release (testing and unstable). Pin-Priority specifies the priority level. ‘apt-get’ defaults to something along the lines of “highest package version wins”. The above restructures this priority so that packages in testing are given a higher priority.

Then, we’ll add unstable repo to sources list (you should use the closest mirror, of course):

# cat /etc/apt/sources.list

deb testing main non-free contrib
deb-src testing main non-free contrib

deb unstable main non-free contrib
deb-src unstable main non-free contrib

deb testing/updates main contrib non-free
deb-src testing/updates main contrib non-free

Installing from unstable

We can check now which package versions we have in different repos, for example, “iceweasel”:

 # apt-get update
 # apt-cache policy iceweasel
  Installed: 10.0.12esr-1+nmu1
date = ""
  Version table:
     24.1.0esr-1 0
        600 unstable/main amd64 Packages
     17.0.9esr-1~deb7u1 0
        700 testing/main amd64 Packages
 *** 10.0.12esr-1+nmu1 0
        100 /var/lib/dpkg/status

Let’s assume that we’re running testing and we want to try Iceweasel from unstable. There are basically two methods for installing:

# apt-get install iceweasel/unstable
# apt-get -t unstable install iceweasel

The first will not attempt to upgrade any packages on your system, so if specific dependencies are not met, the install will fail. The second method will attempt to install/upgrade any dependencies. Of course, given the above example, ‘apt-get’ will ask you before proceeding.

That’s all so far, folks.