Ubuntu – How to remove the “For Purchase” section from the Software Center

software-center

The Software Center has a section of For Purchase programs —see screenshot below—,
which is annonying me every time I want to install something.

Is there any way to remove or hide these programs from the Software Center?

Links to answers:

For 13.10 and higher
For 13.04
For 12.10
For 12.04
For 11.10 and lower
Please leave a comment or send a mail to jmendeth@gmail.com
if it's not working for you or you're having trouble!

The 'For purchase' section of the Ubuntu Software Center.

Best Answer

For 12.04

Derived from Pavlos G. answer and inspiration from Darmien answer.
Different version? Go to the list.
See the end of the post if you are in trouble and want to revert the changes.


1. Ignore the purchasable apps

Open a terminal (Ctrl + Alt + T) and type:

gksu gedit /usr/share/software-center/softwarecenter/db/update.py

And press Enter. You'll be prompted for your password.
Then an editor will appear. Locate the following lines (hint: Ctrl + F may help):

        doc = make_doc_from_parser(parser, cache)
        if not doc:
            LOG.debug("make_doc_from_parser() returned '%s', ignoring" % doc)
            return
        term_generator.set_document(doc)
        name = doc.get_data()

Immediately after those lines, paste the following (including the spaces!):

        if doc.get_value(XapianValues.PRICE) not in (""): return

Note: if you want to keep stuff that doesn't cost money, but has to be "purchased"
(like trials, magazines and other propietary stuff), replace ("") with ("0.00", "").

Save the file (Ctrl + S), open the Software Center and… voila!
There are no commercial programs!
You can close the editor and the terminal now.

2. Remove the "For purchase" channel (optional)

To also remove that "For purchase" item in the menu, open a terminal and type:

gksu gedit /usr/share/software-center/softwarecenter/backend/channel_impl/aptchannels.py

Locate these lines:

        if get_distro().PURCHASE_APP_URL:
            channels.append(for_purchase_channel)

And disable them by putting a # in front of every line:

        #if get_distro().PURCHASE_APP_URL:
        #    channels.append(for_purchase_channel)

Save and enjoy a software center without ads!

 


Side notes: The. files. are. packaged.

What does this mean, you ask? This means that,
whenever you upgrade your Software Center, the changes
will be reverted and you'll have to do this steps again.

Undo the modifications

If you want to restore the original state of the files,
open a terminal and type:

sudo apt-get install --reinstall software-center && exit

Again, you will be prompted for your password, this time on the terminal.
Type it and press ENTER. Don't worry if nothing appears when you type, it's to hide your password.
The terminal will automatically close when finished.