Adding Additional Software Repositories (Xandros)

This section of the wiki explains how to add additional sources from which to find and install new software. If you come to the Eee’s Xandros Linux architecture from a Windows background, then this system might at first seem strange. However it is a very logical and precise method of sourcing and installing software.

Xandros Adding Additional Software Repositories

There is a lot of information below explaining the reasons for pinning and listing of various sources (repositories) of software (packages). As long as you copy and paste the sources and preferences files carefully, and follow the advice given, you will successfully download and install many packages with ease.

Disclaimer: Do everything on this page, or do none of it. If you do it all, including the pinning part, you can install most packages with safety. If you do only part of it, you risk causing problems to your EEE, possibly necessitating an f9/DVD restore.

The only sure safe repositories are those from Asus update, and some other community repos dedicated to the EeePC including xepc.org, download.tuxfamily.org/eeepcrepos, etc. However the list of main sources, and use of pinning has proven to be efficient, and safe.

The most important piece of advice is this: if you are installing a certain program and synaptic or apt-get is asking you to upgrade or remove a very long list of programs to fulfill dependencies, then you’d better stop, and consider the outcome!

Xandros is a fork of Debian. The people at Xandros took the Debian distribution source code and recompiled it and tweaked it to suit their needs. As a result of the forking process Xandros is not considered to be completely Debian compatible. Downloading packages or adding the Debian software archives to the Xandros operating system might, eventually, break something important. The Eee version of Xandros is further modified for Asus, but it’s closest blood relatives are Xandros Server 2.0 and Xandros Desktop 4.5 and are all based on Debian Etch.

All variants uses Xandros’ “enhanced” KDE 3.4.2. Any repositories for Debian Etch based distributions can theoretically be used. Please be aware that the KDE libraries used in the Eee version of Xandros are specifically compiled for this version, you need to avoid KDE 3.5.X packages. Do not try to upgrade any latest KDE libraries from Xandros 4. It will break your system.

The official word from Xandros is that adding Debian repositories will break Xandros. This is true in some instances and while a package may appear to install, it does not guarantee that it will run, nor break your system. In order to add additional software to the Eee Xandros Distribution you will need to use Xandros packages and the Xandros Networks (Xandros’ name for a software repository). The following forum post by Doctore, in the Xandros Support Forums, lists many repositories that you can add and download software from. However the main list suggested in this article contains the majority of packages you will ever require.

Editing the List of Sources

The following instructions will add a number of additional repositories to your machine, to enable it to get software from a greater number of sources, thus improving your choice. They have been in use for some time, and should provide a safe source of new packages, covering just about everything you will require.

1) Open /etc/apt/sources.list for editing, by running the kwrite text editor (or your preferred text editor) in the terminal (Ctl + Alt + T):

sudo kwrite /etc/apt/sources.list

In your text editor you should now see a list of repositories (starting with “deb”). Depending on your Eee model it will be one or more of the following. (This is not necessarily an all inclusive list).

# deb http://update.eeepc.asus.com/p701/ p701 main # deb http://update.eeepc.asus.com/p900/ p900 main # deb http://update.eeepc.asus.com/1.6/ p901 main # deb http://update.eeepc.asus.com/1.6/ p904 main # deb http://update.eeepc.asus.com/1.6/ p904hd main # deb http://update.eeepc.asus.com/1.6/ p1000 main # deb http://update.eeepc.asus.com/1.6/ p1000h main # deb http://update.eeepc.asus.com/1.6/ p1000hd main

2) Copy (Ctl + C) and paste (Ctl-Paste) the following list of repositories (eg all of the lines in the box below starting with ”#Add the…”) into the blank area at the bottom of the file:

#Add the existing repos specific to your model below this line # Original Asus 701 repos, do not change the reference to the 701! deb http://update.eeepc.asus.com/p701/ p701 main deb http://update.eeepc.asus.com/p701/en/ p701 main # Community repos, good for conky. Do not change the reference to the 701 deb http://download.tuxfamily.org/eeepcrepos/ p701 main etch # Xandros repos deb http://xnv4.xandros.com/xs2.0/upkg-srv2/ etch main contrib non-free deb http://www.geekconnection.org/ xandros4 main deb http://xnv4.xandros.com/4.0/pkg/ xandros4.0-xn main contrib non-free # XEPC repo, specifically compiled for the eee! deb http://updates.xepc.org/ p701 main # XEPC alternative repo, if main repo down # deb http://download.tuxfamily.org/xepcrepo/ p701 main # Debian repos now listed as etch and oldstable which are both currently identical. #deb http://http.us.debian.org/debian/ etch main contrib non-free #deb http://ftp.us.debian.org/debian/ etch main non-free contrib deb http://www.debian-multimedia.org/ oldstable main # Edit the line below for your local server eg http://ftp.de or http://ftp.it etc deb ftp://ftp.uk.debian.org/debian/ etch main contrib non-free

Your sources list, depending on model might now look something like the image below (taken from my 701):

Adding Additional Software Repositories (Xandros)

this is how my 900 looks.

Xandros linux repos

3) Advanced use only: If you want to be able to compile software from debian source. You can also add the following list of repositories (starting with “deb-src”) into the above file:

For 701:

deb-src http://asusxntest.xandros.com/asus-source/p7xx/1.0.4/ v104 main contrib non-free deb-src http://asusxntest.xandros.com/asus-source/p7xx/1.0.6/ v106 main contrib non-free deb-src http://cle.linux.org.tw/EeePC/1.0.6 v106 main contrib non-free deb-src http://wine.budgetdedicated.com/apt etch main

For 900/901 etc:

deb-src http://cle.linux.org.tw/EeePC/1.1 v1.1 main

(requires further citation) And for special ASUS EEE/Xandros repository by kost

deb-src http://ftp.linux.hr/asuseee/xandros/ source/

4) Save the sources.list file:

Ctl + S

(Or click file, then save)

5) Exit Kwrite:

Alt + F4

(or file, then exit)

Notes on the Repositories

You’ll notice some of the repositories listed above have a # symbol in front of them. This makes them temporarily unavailable as a source. Many experienced Eee users choose to use this as a method of controlling the sourcing of software, instead of using the pinning method below. This is done by adding a # in front of all but the original Asus update repositories, and enabling others on a ‘need to use’ basis. This is a careful and judicious method of installing packages, that avoids some possible mistakes, yet keeps sources quickly available. Many other Eee users use the pinning method below. Both are acceptable and safe practice. Each time you change the sources and pinning, you need to issue

sudo apt-get update

in order for apt to see the changes. The advantage of the pinning method below, is that it is relatively maintenance free.

The repositories have ‘keys’ available. They are like certificates of authenticity. It is not compulsory to install them, but if you don’t then apt will report warnings, (not errors), like this:

W: GPG error: http://xnv4.xandros.com etch Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY A3CCB76FA8BCF0C9

You can install the keys with the following codes:

wget http://download.tuxfamily.org/eeepcrepos/key.asc && sudo apt-key add key.asc wget http://updates.xepc.org/dists/p701/xepc-pubkey.txt && sudo apt-key add xepc-pubkey.txt wget http://xnv4.xandros.com/xs2.0/pkg/pool/main/xandros/xandros-archive-keyring_1.0-3_all.deb && sudo dpkg -i xandros-archive-keyring_1.0-3_all.deb wget http://ftp.tw.debian.org/debian-multimedia/pool/main/d/debian-multimedia-keyring/debian-multimedia-keyring_2008.10.16_all.deb && sudo dpkg -i debian-multimedia-keyring_2008.10.16_all.deb wget -q http://wine.budgetdedicated.com/apt/387EE263.gpg && sudo apt-key add 387EE263.gpg wget http://ftp.uk.debian.org/debian/pool/main/d/debian-archive-keyring/debian-archive-keyring_2007.02.19_all.deb && sudo dpkg -i debian-archive-keyring_2007.02.19_all.deb

Note: Xandros Server 2.0 is the closest to EeePC Xandros as it is the only other Xandros OS that is based on Debian Etch; however, it has a lower version of KDE than Debian Etch uses, therefore all KDE apps from the apt repo will not work.

Pinning the System

When having multiple repositories it’s not unusual that same package exists in more than one of those repositories, but with different version numbers. The default behaviour in an unpinned system is to install the one with the highest version number.

When mixing Xandros with repositories from other sites this is not the behaviour we want. Instead, what we want is to always install packages from Xandros repositories no matter what version they have, and only if packages do not exist in Xandros repositories or we explicitly says so shall packages be installed from other repositories.

To achieve this we pin our system by adding the lines below to /etc/apt/preferences (if a file called preferences does not exist, the following will create it). You do NOT need to edit anything, the asterisk is not asking you to provide any info. All you have to do is copy the code below in its entirety.

1) Open a terminal (Ctl + Alt + T) and issue the command:

sudo kwrite /etc/apt/preferences

2) Copy and paste the following into kwrite:

Package: * Pin: origin update.eeepc.asus.com Pin-Priority: 950 Package: * Pin: origin updates.xepc.org Pin-Priority: 935 Package: * Pin: origin Pin-Priority: 925 Package: * Pin: origin download.tuxfamily.org Pin-Priority: 900 Package: * Pin: origin xnv4.xandros.com Pin-Priority: 850 Package: * Pin: origin www.geekconnection.org Pin-Priority: 750 Package: * Pin: release a=stable Pin-Priority: 700 Package: * Pin: release a=testing Pin-Priority: 650 Package: * Pin: release a=unstable Pin-Priority: 600 Package: *

3) Save the sources.list file:

Ctl + S

(Or click file, then save)

4) Exit Kwrite:

Alt + F4

(or file, then exit)

Very Important! Now complete the procedure updating the packet manager with :

sudo apt-get update

You are now ready to install a huge range of packages from a number of different sources, in a safe and efficient manner! If you didn’t install the keys you will get W warnings. (Errors are denoted by E) If you get errors like: E: Invalid record… or E: Can’t stat…, then check you have copied and pasted the code correctly!

Notes on Pinning

Pinning gives various sources different priorities. Sources are recognized by their release information (requires a release file), origin or version number. In the above example we only use origin and release archive (release a=xxx) as identifiers.

This is what the pinning above does:

  • First entry is to give the Asus Eee PC repositories priority to protect important base system packages.

  • Second gives xepc priority, dedicated eee packages

  • Third entry gives local repositories (CD, HD, USB memory etc.) the next highest priority (925). Those are recognized as being from an unknown origin (an empty string). It is possible to assign local repositories their own release files, which pinning can be based on. But that is out of scope for this discussion and not really necessary

  • Fourth gives tuxfamily priority, dedicated eee packages

  • Fifth and sixth entries gives Xandros supported and unsupported sites priority (850 and 750). Those are pinned on the origin rather than release archive since Xandros does not provide proper release files.

  • The remaining entries are for download from Debian.

  • Repositories not mentioned will have priority 500.

  • Repositories with release archive name APT::Default-Release will have priority 990. We don’t use this. We will however later on show how one can temporary assign an APT::Default-Release to a system to override the pinning.

If you add Xandros, Debian plus some local repositories you can use apt-cache policy to see the priority order.

Additional Available Repos

The following repos either have specific uses, or are less used or more specialised. They are included for completeness, but aren’t included in the main list.

deb http://ftp.linux.hr/asuseee/xandros/ binary/

Also http://www.archlug.org/apt/ looks to be online again. This repo has been offline recently, but is back up and can be added to the sources list if specifically required. Use with caution.

#archlug was offline for a while! deb http://www.archlug.org/apt xandros4 archlug deb http://www.archlug.org/apt xandros4 redrum deb http://www.archlug.org/apt xandros4 xorid/andrew deb http://www.archlug.org/apt xandros4 xorid/matty deb http://www.archlug.org/apt xandros4 xorid/uploads

Wine etch installs are available from

deb http://wine.budgetdedicated.com/apt/ etch main deb http://www.lamaresh.net/apt/ etch main

There is no real reason to use the available 1.0.1 to 1.1.15, as they are no better than the xepc stable version, or the 1.1.21 beta compile.

Opera also has an etch repo, which can be added to install the Opera browser.

deb http://deb.opera.com/opera/ etch non-free

Note that opera also adds an entry in /etc/apt/sources.list.d so that it may update itself. To be extra safe you can change this from stable to etch too!

The etch backports repo can be added if specifically required too

deb http://www.backports.org/debian etch-backports main contrib non-free

All backports are deactivated by default. If you want to install something from backports run: apt-get -t etch-backports install xxxx (citation required) , where xxxx is the name of the package.

Notes About apt on the Eee

The main debian repo in the suggested list above is still commented out. The local ftp server has most required packages. Sudo apt-get update produced MMap ran out of memory errors since Debian lenny became stable as of 14/02/09. Testing proved that apt on the eee had too small a cache for all these repos to be active at once.

Related content