All software for FreeWRT is available as a IPKG package. IPKG is a package manager very similar to Debian's dpkg/apt-get utilities. It is specially designed for embedded systems and is widely used. The FreeWRT project use a special version, which is embedded to the busybox binary. Normally the command line tool ipkg is pre-installed.
IPKG uses a configuration file similar to /etc/apt/sources.list, which contains a list of software repositories available via HTTP or FTP. The configuration file /etc/ipkg.conf contains the official FreeWRT 1.0 repository for your board and kernel version.
To update the list of available packages execute following command as root:
[label=update list of available packages] # ipkg update
This command requires a working internet connection, because it will fetch a package list from every repository declared in /etc/ipkg.conf.
To install a new package use following command:
[label=example installation of \app{tcpdump}]
# ipkg install tcpdump
This will install the package tcpdump and all dependencies onto the flash. Where the data is saved depends on the root filesystem you decided to use while installing FreeWRT. If you use jffs2 as root filesystem, then the package is installed on the big linux partition. If you use squashfs-overlay, then the package is installed on the mini-fo overlay filesystem which writes its data to the jffs2 data partition. If you use a squashfs-symlinks filesystem, then the package data is directly install into the jffs2 data partition, containing symlinks to the read-only squashfs partition.
You can also remove packages, but this is only useful if you are using jffs2 as root filesystem:
[label=example removal of \app{tcpdump}]
# ipkg remove tcpdump
This will not remove any dependencies, installed earlier. For example, libpcap is still installed after executing this command. On jffs2 root filesystem you should never remove any essential packages like busybox, fwcf or uclibc, otherwise you make the embedded system unusable.
Nearly the same as for removing packages, counts for ipkg upgrade. Please never ever use ipkg upgrade to update your embedded system. This command is only useful to upgrade single packages on a jffs2 rootfilesystem or data partition.