Ipkg (tutorial)
From DD-WRT Wiki
You are here: Main Page/DD-WRT Docu (EN)/ipkg
Contents |
Introduction
Brainslayer is working hard to merge the code base of DD-WRT with the OpenWRT firmware. This means that, for the most part, OpenWRT's package management system, ipkg, is available for DD-WRT. This allows for an easy way to add features not already in the DD-WRT firmware. Since ipkg is a command line program, you will need to either Telnet or SSH into your router to run this utility. You also need the JFFS File System enabled.
Commandline Structure
Usage
usage: ipkg [options...] sub-command [arguments...]
Options
-d <dest_name> or Install, upgrade, or remove package from <dest_name> -dest <dest_name> where <dest_name> is '''either''' a folder path '''or''' a pre-defined path in /etc/ipkg.conf by default, ipkg on DD-WRT supports these pre-defined names: root /jffs ram /tmp -o <offline_root> Use <offline_root> as the root for offline installation. -offline <offline_root> where <offline_root> is a path -force-depends Make dependency checks warnings instead of errors -force-defaults Use default options for questions asked by ipkg. (no prompts). Note that this will not prevent package installation scripts from prompting.
Sub Commands
update Update list of available packages from <src> defined in /etc/ipkg.conf upgrade Upgrade all installed packages to latest version install <pkg> Download and install <pkg> (and dependencies) remove <pkg> Remove package <pkg> list List available packages and descriptions files <pkg> List all files belonging to <pkg> search <file> Search for a packaging providing <file> info [pkg [<field>]] Display all/some info fields for <pkg> or all status [pkg [<field>]] Display all/some status fields for <pkg> or all depends <pkg> Print uninstalled package dependencies for <pkg> - <pkg> may be a package name, or a URI to the *.ipk or *.deb file - arguments displayed in [ ] are optional
Finding Packages
OpenWRT.org hosts a list of Official Packages, as well as a Package Tracker and openwrt.alphacore.net listing all known packages. Packages from the tracker will usually have to be installed by using <pkg> as a URI rather than a package name, unless you've updated your /etc/ipkg.conf file to point to a different repository.
Another source of software for the wrt is here ipkg.nslu2-linux.org, most of the files in this directory works fine on DD-WRT.
Installing ipkg packages
The general steps for installing ipkg modules are as follows
-Pick a location to install to. Currently available locations are:
ram (/tmp)
root (the flash partition at /jffs)
mmc (/mmc)
smbfs (/tmp/smbshare)
Then from the command line, run the following commands:
- 'ipkg update' ....pulls latest list of package listing from the default sites.
- 'ipkg list' .....gives the list of ipkg's available
- 'ipkg -d <location> install <packagename>' ....installs the package of your choice
If the package you want is not in the list, substitute the URI of the package for the <packagename> you want to install.
Packages installed to ram will be deleted on reboot. There is more ram than flash space, however.
jffs must be configured and initialized before packages can be install to root
Ex: to install the noip package to ram
~# ipkg update ~# ipkg list
Since noip is not in the list, see Finding Packages
~# ipkg -d ram install http://www.ramereth.net/openwrt/ipkg/noip_1.6.0_mipsel.ipk
What if your jffs partition is full (routers with NO JFFS space avail)
You have to enable jffs anyway even if it is useless... and to create some required directory in your SAMBA share:
~# mkdir -p /tmp/smbshare/tmp/ipkg
Download then the packages directly to your SAMBA share and type:
~# ipkg -d smbfs install /tmp/smbshare/directory/package.ipk
or download and install at the same time with the same command:
~# ipkg -d smbfs install http://www.ramereth.net/openwrt/ipkg/noip_1.6.0_mipsel.ipk
You should see some warning messages like these ones:
ERROR: File not found: //jffs/usr/lib/ipkg/lists/whiterussian You probably want to run `ipkg update' ERROR: File not found: //jffs/usr/lib/ipkg/lists/non-free You probably want to run `ipkg update'
which you can safely ignore.
Installing an ipkg on startup
Since the available RAM is larger, is it possible to set up a startup script to install an ipkg? That way, each time it's rebooted the router will automatically download and install the ipkg we need.
One way to accomplish this is to write a startup script
External Resources
Guide for installing maiu IRC bouncer on the WRT using ipkg
You are here: Main Page/DD-WRT Docu (EN)/ipkg