Install / Upgrade Firefox 3.5.3 In Ubuntu (Linux) | Jaxov

Mozilla has released an update for Firefox 3.5.2. Previously we shared tutorial about how you can update Firefox to version 3.5.2. In this tutorial, i will assume that you have already installed Mozilla Firefox 3.5.2 and you want to upgrade it to version 3.5.3. In case you have Ubuntu’s version of Firefox (you haven’t upgraded in past) then you have to skip only one command in the steps below. The rest of the procedure is same for all versions.

Upgrade To Firefox 3.5.3

  1. Open Mozilla Firefox and check its current version by navigating to Help->About Mozilla Firefox
  2. Firefox-3.5.2 DetectedFirefox-3.5.2 Detected
  3. Download Firefox 3.5.3 and save firefox-3.5.3.tar.bz2 to your desktop. And close all windows of Firefox
  4. Save Firefox-3.5.3.tar.bz2Save Firefox-3.5.3.tar.bz2
  5. Now this is important step. If you have Firefox version 3.5.1, 3.5.2 or any other version 3.5.x installed on your system then use the command below. If you have already Ubuntu’s version of Firefox then skip the following command
  6. sudo rm /usr/bin/firefox && sudo dpkg-divert --rename --remove /usr/bin/firefox && sudo rm -r /opt/firefox

    Reverting Back To Ubuntus FirefoxReverting Back To Ubuntu’s Firefox

    The command above will downgrade your current version of Mozilla Firefox to the Ubuntu’s default Firefox version which is necessary for all those who have upgraded their Firefox for at least once in past. After you will execute the above command, you will notice that your Firefox will be restored to its default version i-e Firefox 3.0.8 in Ubuntu 9.04.

    Ubuntu Version of FirefoxUbuntu’s Version of Firefox
  7. Right-click on firefox-3.5.3.tar.bz2 and choose Cut/Copy
  8. Cut Firefox-3.5.3.tar.bz2Cut Firefox-3.5.3.tar.bz2
  9. Go to your home directory by navigating to Places->Home and paste it there
  10. Open Home FolderOpen Home Folder
    Paste Firefox-3.5.3.tar.bz2Paste Firefox-3.5.3.tar.bz2
  11. Open Terminal by navigating to Applications->Accessories->Terminal and paste the following command
  12. if [[ ! -f /usr/bin/firefox ]]; then sudo apt-get update && sudo apt-get install firefox; fi && if [[ -e ~/.mozilla ]]; then cp -R ~/.mozilla ~/.mozilla.backup; fi && sudo tar -jxvf firefox-3*.tar.bz2 -C /opt && rm firefox-3*.tar.bz2 && sudo mv /opt/firefox/plugins /opt/firefox/plugins.backup && sudo ln -s /usr/lib/xulrunner-addons/plugins /opt/firefox/plugins && sudo dpkg-divert --divert /usr/bin/firefox.ubuntu --rename /usr/bin/firefox && sudo ln -s /opt/firefox/firefox /usr/bin/firefox

    Final Command To Install FirefoxFinal Command To Install Firefox
  13. After the above command will be executed completely, restart Mozilla Firefox
  14. Firefox-3.5.3 InstalledFirefox-3.5.3 Installed
  15. You can now check its version by again navigating to Help->About Mozilla Firefox.. Now it will be version 3.5.3 :)
  16. Firefox-3.5.3 UpdatedFirefox-3.5.3 Updated

Ian's Thoughts: How To: Change The Menu Icon In Ubuntu 9.04

ne of the first things most people do after installing a Linux distribution is to tweak settings and customize the desktop interface. One of the things I normally do in customizing the desktop interface is change the panel icon. Up until now I have been doing this by fiddling around in /usr/share/icons/$icon_theme and I never liked replacing system files even if the change was easy to revert. This tutorial was completed on an Ubuntu 9.04 system but the instructions may work on other distros.

I’m going to show you an easy way to change the menu icon for a menu bar panel applet in Ubuntu 9.04 without having to use sudo or tamper with the system icons. Why use sudo when you don’t have to?

This tutorial is organized into three steps:

  1. Creating a directory
  2. Creating an icon
  3. Restarting the panel

This is the default menu bar icon installed by the Ubuntu 9.04 system:

The default themes and colors included with Ubuntu 9.04 are very nice, but I’m not a fan of the colors orange or brown.

This is what my menu bar panel applet looks like after following this tutorial:

I’ve always been a fan of the Bluecurve theme included in Red Hat and earlier Fedora distributions so I will choose the old Fedora menu icon to match this beautiful theme:

Step 1: Create the necessary directory
This step is going to partially mirror the directory tree of a /usr/share/icons icon theme in ~/.icons. I like this method because it’s easy to change icons for any icon theme without having to escalate privileges. However, this method only works on a per-user basis. If you don’t want to have to perform these steps for every user on the system, then it’s probably best to make changes in /usr/share/icons/$icon_theme.

Creating the directory – command line method:

$ mkdir -p ~/.icons/$(gconftool-2 –get /desktop/gnome/interface/icon_theme)/24×24/places

Creating the directory – file browser method:
Create the following directory:

Where icon-theme-name is the name of your chosen icon theme.

This will create a directory used to store an icon that looks good in a panel that is 24 to 32 pixels in height. You should create other directories for panels which are different sizes (ie. 26×26, 32×32, 48×48 etc.) if you want the size of your menu icon to increase with the panel height. This will also require that you create different icons sized to match each directory that you create.

Step 2: Create an icon
Now that the necessary directory is in place, you should find yourself an appropriate icon. There are many icon themes locate here and here and any of these icons can be used. This icon can be in almost any format but may need to be resized to match the folder size that you created in Step 1.

Resizing the icon using The GIMP:

  1. Launch The GIMP.
  2. In the File menu click File > Open and browse to your desired image and click the Open button.
  3. In the Image menu click Image > Scale Image.
  4. In the Scale Image dialog choose your desired Image Size (I recommend choosing an image size that is equal to or smaller than your desired panel height). Click the Scale button.
  5. After your image is scaled, go to the File menu and choose File > Save As… to save the image as a .png file with the filename start-here.png in the places folder you created in “Step 1: Create the necessary directory”. You will need to repeat steps 2 through 5 for each directory you created in “Step 1: Create the necessary directory”. It is vital that the image be renamed to start-here.png or it will not be displayed on the menu bar.

Step three – restart the panel:
The gnome panel needs to be restarted in order to display the new icon in the menu bar.

GUI method:
Log out and back in

Command line method:

$ killall gnome-panel

The gnome-panel will respawn and you should see your shiny new menu icon.

Server Team 20090908 meeting minutes « Ubuntu Server Blog

Here are the minutes of the meeting. They can also be found online
with the irc logs here.

UEC images

There was a discussion on how to track bugs affecting UEC images. The outcome was to use the “uec-images” tag. ubuntu-bug and apport should also use it when filling bugs from an UEC image.

Test cases have been updated to include an EC2 test of the UEC images. That should be enough for now to make sure the UEC images are working correctly.

ACTION: smoser to tag existing UEC image bugs with “uec-images”

ACTION: mdz to follow up on ubuntu-bug/apport for uec images


The release process for EC2 images was reviewed in view of Alpha6 scheduled for next week.

ACTION: soren to ensure that smoser can update the UEC publishing scripts

ACTION: smoser to add MD5SUMs for UEC images

ACTION: soren to add manifest files for UEC images

ACTION: smoser to open dialog with IS about automated publishing to EC2 and agree on a plan

ACTION: soren to automate updating of ec2-version-query

ACTION: soren to publish ec2-version-query in a more appropriate place

The state of the EC2 kernel was also discussed. zul reported that a 2.6.31-rc6 kernel based on the Xen patches had been successfully booted on ec2. Merging the patch into the karmic tree was under way.

ACTION: mdz to confirm ec2 kernel status for alpha 6

ACTION: smoser to add ec2-images tag to the relevant bugs

ACTION: mdz to see that bug documentation is updated for uec-images, ec2-images tags

ACTION: nijaba to fold #ubuntu-ec2 and #ubuntu-cloud into #ubuntu-server

Packaging and integration of Eucalyptus 1.6

As agreed with the Eucalyptus team relevant bugs should be tagged with ‘eucalyptus’. soren announced that Eucalyptus 1.6 had landed in Karmic. The installer experience has been reviewed by the Eucalyptus team and bugs have been filed. cjwatson is looking at them.

ACTION: soren to triage all eucalyptus bugs, and use the ‘eucalyptus’ tag for bugs which should be escalated to the eucalyptus team

Alfresco appliance

The main blocker to produce an appliance was the dependency on Sun jdk. Its EULA needs to be accepted by the end user when deploying the appliance.

ACTION: kirkland to build a proof of concept alfresco appliance

Appliance store

niemeyer reported that most of the code had been written. The store UI has already been integrated in Eucalyptus 1.6.

ACTION: mathiaz to get niemeyer’s proxy code packaged

Canonical application support

ACTION: zul to ensure rabbitmq-server gets reviewed and promoted

Directory items

2.4.18 has been released on Sunday and the FF Exception has been granted.

ACTION: mathiaz to upload openldap 2.4.18


mathiaz reported the spec was implemented. More testing is welcome.

KVM-QEMU testing

kirkland noted that most of the bugs on kvm / qemu were reported after RC. He asked for ways to increase the testing of kvm in the development release.

ACTION: kirkland to speak with marjo about how to get qemu-kvm tested prior to release (and more generally server applications like it)

Server developer team in LP for ArchiveReorganisation

Package sets are available in Launchpad, and cjwatson was looking for the appropriate teams to have privileges on them. But there didn’t seem to be an appropriate team for Server Edition. If the server team wants to take advantage of the ability to provide upload privileges for server bits without requiring core-dev, somebody will need to sort it out.

ACTION: mathiaz to get a server dev team set up in LP and work with cjwatson to get it set up for archive reorg

Assigned and to-be-assigned bugs

The list will be used to keep track of active bugs in the team. The list needs to be reviewed and kept up-to-date.

Progress on Roadmap

The ServerTeam Roadmap is not up-to-date.

ACTION: ttx to update server team Roadmap to reflect current projects


The Debian VOIP hasn’t responded yet.

ACTION: Daviey to call for testing of Asterisk 1.6

SRU review

ACTION: mathiaz to produce a list of accepted bugs for packages related to the ubuntu-server team.

Agree on next meeting date and time

Next meeting will be on Tuesday, September 15th at 15:00 UTC in #ubuntu-meeting.

Hacker Runs Ubuntu Linux on Amazon's Kindle 2

Amazon’s Kindle family of e-book readers has changed the game on e-books and e-book distribution, by making an intuitive, easy to use e-paper reader into a mass-market publishing platform. Books are now sold on many websites as “Hardcover, Paperback, Kindle”, referencing the format of the book’s publication in varying editions. Now, a hacker has put a variation of Linux on a Kindle 2, raising the question as to what Amazon might do to enhance the device’s range of operative capabilities.

Other e-book readers using e-paper displays are now on the market, and Sony has created a touch-enabled e-paper display, in collaboration with e-Ink, the same firm that produces Amazon’s Kindle monitors. But the Kindle, in part due to the book-publishing focus of its designers and marketers —the device is meant to be as much like reading a book (meaning you don’t search Google on the same page, just because someone whispered something in your ear while you were reading)—, is the paradigm marker.

There is a clear vested interest in not turning the Kindle into a mobile computing platform, because that would make free reading widely available and possibly further undermine Amazon’s sales of hard-copy text, something the Kindle is meant to counter. But Sony’s Reader devices will now make available community library texts and Google Books free copies, and Apple’s iPhone and anticipated touchscreen tablet will put pressure on Amazon to make the Kindle more dynamic and web-ready.

With a hacker successfully running Ubuntu Linux on a Kindle 2, there is an experimental precedent that could lead to new product directions for the Kindle family of devices. Amazon is already experimenting with a very rudimentary web browser, best for text-only viewing, which could benefit from significant optimization in terms of processing power and speed, as well as coordination with web-site and coding designers to make more websites instantly and comfortably text-only.

Privileging text is something the Kindle is designed to do, but making its relationship with non-Kindle media more dynamic, so that the text-first platform Amazon is aiming for can capitalize on the power of the information age. Not aiming for at least that level of interactivity seems, at this point, a bad choice for Amazon.

One blog commenter called the Ubuntu hack for the Kindle “Probably the lowest power netbook in the world”. The comment is telling, because it points out a very important fact of the Kindle paradigm: the e-paper monitor, because it does not require backlighting to operate, only needs power to change what it displays, not to display content, and consumers are aware of this benefit, because it both reduces energy consumption and extends battery life.

E-paper is fundamentally different from LCD and plasma monitors, far less energy intensive, and has its own appeal for a wide range of consumers and industry interests. Creating a fully functional e-paper netbook or handheld computer could be a major breakthrough not only for the device’s producer, but for the direction of publishing and communications technologies.

There is interest, for instance, in using low-energy e-paper to redirect processing power and achieve dramatically higher processing speeds for major computing and web functions (at least where video is not part of the function). Amazon may be ideally positioned to test the ability of e-paper devices to function across computational and web-communications platforms for most communicative functions.

Set Cron in Ubuntu (Linux)

What is Cron?

Cron is a daemon used for scheduling tasks to be executed at a certain time. Each user has a crontab file, allowing them to specify actions and times that they should be executed. There is also a system crontab, allowing tasks such as log rotation and locate database updating to be done regularly.

The following directions tell you how to set up scheduled tasks the traditional way using the command line, but it is much easier to use the Gnome Scheduled tasks tool in System –> Preferences

What is Crontab?

A crontab is a simple text file that holds a list of commands that are to be run at specified times. These commands, and their related run times, are controlled by the cron daemon and are executed in the system’s background. More information can be found by viewing the crontab’s man page.

Using Cron

To use cron, simply add entries to your crontab file.

Crontab Sections

Each of the sections is separated by a space, with the final section having one or more spaces in it. No spaces are allowed within Sections 1-5, only between them. Sections 1-5 are used to indicate when and how often you want the task to be executed. This is how a cron job is laid out:

minute (0-59), hour (0-23, 0 = midnight), day (1-31), month (1-12), weekday (0-6, 0 = Sunday), command

01 04 1 1 1 /usr/bin/somedirectory/somecommand

The above example will run /usr/bin/somedirectory/somecommand at 4:01am on January 1st plus every Monday in January. An asterisk (*) can be used so that every instance (every hour, every weekday, every month, etc.) of a time period is used. Code:

01 04 * * * /usr/bin/somedirectory/somecommand

The above example will run /usr/bin/somedirectory/somecommand at 4:01am on every day of every month.

Comma-seperated values can be used to run more than one instance of a particular command within a time period. Dash-seperated values can be used to run a command continuously. Code:

01,31 04,05 1-15 1,6 * /usr/bin/somedirectory/somecommand

The above example will run /usr/bin/somedirectory/somecommand at 01 and 31 past the hours of 4:00am and 5:00am on the 1st through the 15th of every January and June.

The “/usr/bin/somedirectory/somecommand” text in the above examples indicates the task which will be run at the specified times. It is recommended that you use the full path to the desired commands as shown in the above examples. Enter which somecommand in the terminal to find the full path to somecommand. The crontab will begin running as soon as it is properly edited and saved.

Crontab Options

  • The -l option causes the current crontab to be displayed on standard output.
  • The -r option causes the current crontab to be removed.
  • The -e option is used to edit the current crontab using the editor specified by the EDITOR environment variable.

After you exit from the editor, the modified crontab will be checked for accuracy and, if there are no errors, installed automatically. The file is stored in /var/spool/cron/crontabs but should only be edited via the crontab command.

Further Considerations

The above commands are stored in a crontab file belonging to your user account and executed with your level of permissions. If you want to regularly run a command requiring a greater level of permissions, set up a root crontab file using:

sudo crontab -e

Depending on the commands being run, you may need to expand the root users PATH variable by putting the following line at the top of their crontab file:


It is sensible to test that your cron jobs work as intended. One method for doing this is to set up the job to run a couple of minutes in the future and then check the results before finalising the timing. You may also find it useful to put the commands into script files that log their success or failure, eg:

echo "Nightly Backup Successful: $(date)" >> /tmp/mybackup.log

For more information, see the man pages
for cron and crontab (man is detailed on the BasicCommands page). If your machine is regularly switched off, you may also be interested in at and anacron, which provide other approaches to scheduled tasks. For example, anacron offers simple system-wide directories for running commands hourly, daily, weekly, and monthly. Scripts to be executed in said times can be placed in /etc/cron.hourly/, /etc/cron.daily/, /etc/cron.weekly/, and /etc/cron.monthly/. All scripts in each directory are run as root, and a specific order to running the scripts can be specified by prefixing the scripts’ filenames with numbers (see the man page for run-parts for more details). Although the directories contain periods in their names, run-parts will not accept a file name containing one and will fail silently when encountering them (bug #38022). Either rename the file or use a symlink (without a period) to it instead.

Advanced Crontab

The Crontabs discussed above are user crontabs. Each of the above crontabs is associated with a user, even the system crontab which is associated with the root user. There are two other types of crontab.

Firstly, as mentioned above anacron uses the run-parts command and /etc/cron.hourly, /etc/cron.weekly, and /etc/cron.monthly directories. However anacron itself is invoked from the /etc/crontab file. This file could be used for other cron commands, but probably shouldn’t be. Here’s an example line from a ficticious /etc/crontab:

00 01 * * * rusty /home/rusty/

This would run Rusty’s command script as user rusty from his home directory. However, it is not usual to add commands to this file. While an experienced user should know about it, it is not recommended that you add anything to /etc/crontab. Apart from anything else, this could cause problem if the /etc/crontab file is affected by updates! Rusty could lose his command.

The second type of crontab is to be found in /etc/cron.d. Within the directory are small named crontabs. The directory is often used by packages, and the small crontabs allows a user to be associated with the commands in them.

Instead of adding a line to /etc/crontab which Rusty knows is not a good idea, Rusty might well add a file to /etc/cron.d with the name rusty, containing his cron line above. This would not be affected by updates but is a well known location.

When would you use these alternate crontab locations? Well, on a single user machine or a shared machine such as a school or college server, a user crontab would be the way to go. But in a large IT department, where several people might look after a server, then /etc/cron.d is probably the best place to install crontabs – it’s a central point and saves searching for them!

You may not need to look at /etc/crontab or /etc/cron.d, let alone edit them by hand. But an experienced user should perhaps know about them and that the packages that he/she installs may use these locations for their crontabs.


crontab -e uses the EDITOR environment variable. to change the editor to your own choice just set that. You may want to set EDITOR in you .bashrc because many commands use this variable. Let’s set the EDITOR to nano a very easy editor to use:

export EDITOR=nano

There are also files you can edit for system-wide cron jobs. The most common file is located at /etc/crontab, and this file follows a slightly different syntax than a normal crontab file. Since it is the base crontab that applies system-wide, you need to specify what user to run the job as; thus, the syntax is now:

minute(s) hour(s) day(s)_of_month month(s) day(s)_of_week user command

It is recommended, however, that you try to avoid using /etc/crontab unless you need the flexibility offered by it, or if you’d like to create your own simplified anacron-like system using run-parts for example. For all cron jobs that you want to have run under your own user account, you should stick with using crontab -e to edit your local cron jobs rather than editting the system-wide /etc/crontab.

It is possible to run gui applications via cronjobs. This can be done by telling cron which display to use.

00 06 * * * env DISPLAY=:0. gui_appname

The env DISPLAY=:0. portion will tell cron to use the current display (desktop) for the program “gui_appname”.

And if you have multiple monitors, don’t forget to specify on which one the program is to be run. For example, to run it on the first screen (default screen) use :

00 06 * * * env DISPLAY=:0.0 gui_appname

The env DISPLAY=:0.0 portion will tell cron to use the first screen of the current display for the program “gui_appname”.

Crontab Example

Below is an example of how to setup a crontab to run updatedb, which updates the slocate database: Open a term, type “crontab -e” (without the double quotes) and press enter. Type the following line, substituting the full path of the application you wish to run for the one shown below, into the editor:

45 04 * * * /usr/bin/updatedb

Save your changes and exit the editor.

Crontab will let you know if you made any mistakes. The crontab will be installed and begin running if there are no errors. That’s it. You now have a cronjob setup to run updatedb, which updates the slocate database, every morning at 4:45.

Note: The double-ampersand (&&) can also be used in the “command” section to run multiple commands consecutively.

45 04 * * * /usr/sbin/chkrootkit && /usr/bin/updatedb

The above example will run chkrootkit followed by updatedb at 4:45am daily – providing you have all listed apps installed.