New Projects - Fresh from the Labs
One of my chief bug bears of Linux systems over the last eight years or so is the high level of dependence on Net connectivity and the constant assumption that you even have a connection in the first place. “I'm trying to compile MPlayer, but there are dependency problems.” “Just install it with apt, it's easy.” “I don't have the Net.” Blank stare. My twin brother, for example, is a loyal Linux user and lives in a flat where it's hard to get a connection, and as a musician, it's very hard for him to stay in Linux to do his work, because the programs he needs have niggling dependencies. These can take a day to resolve when he has to go to an Internet café, grabbing random .deb files and hoping they work.
Well for all you Net-deprived people, I feel your pain, and so does Chris Oliver, with his new program Keryx. Keryx is a free, open-source application for updating Ubuntu. The Keryx Project started as a way for users with dial-up or low-bandwidth Internet to be able to download and update packages on their Debian-based distribution of Linux. Mainly built for Ubuntu, Keryx allows users to select packages to install and check for updates and download those packages onto a USB key. The packages are saved onto the device and then can be taken back to the Linux box to be installed. Because of the design, Keryx can be run on any OS that has Python, GTK and PyGTK installed. For Ubuntu (GNOME) users, everything is pre-installed. Windows users also will have no software to install, because Keryx and everything it depends on will be made to run portably off a USB Flash drive.
If you've got a standard Ubuntu system, you're set. If you have a variant of some sort, make sure you install all of the standard GTK, Python and PyGTK libraries before continuing. Head to the Web site, grab the latest tarball, extract it somewhere locally and open a terminal in the main keryx directory. And, that's it.
In the main keryx folder, enter the following command:
$ python keryx.py
You'll be greeted by the main screen where the first thing you need to do is start a new project with the aptly titled New Project button. Each project is designed to keep track of a different computer's packages, meaning you can take care of multiple machines with the one USB stick. Once you've entered your project name, you'll be prompted to choose between Local Files or Internet. Local Files is meant for those without any connection at all, but at this point, there's no technical difference between either Local Files or Internet. At this stage, Keryx will appear to hang, but it isn't, it's just processing a whole bunch of repository information—things about local files and so on. Give it a minute or two, and it should be back with you.
Once Keryx has sprung back to life, you'll be presented with a long list of packages, Synaptic style. For choosing packages to install, the interface is a little quirky. Those tick boxes won't let you choose a package; they just tell you whether it's installed already. To install a package, click on the actual name of the package, and if you want multiple packages, Ctrl-click or Shift-click the same way you would in any modern file manager. When you're ready to download the packages, click Download Selected at the top-right of the screen. Keryx will download everything and save any downloaded packages to the packages folder in the main keryx directory.
From here, you'll have to install these packages yourself manually, either by command line with dpkg or with a package management program under X. It's a bit of pain, I'll admit. However, this project is very young, the interface is still very much in its infancy, and adding the option to install the packages from within Keryx should take only a few GUI shortcuts to some pretty basic commands. It's in its early days, but it does genuinely look promising, with a planned Mac port even in the works once the project becomes more stable. Poor Linux enthusiasts without the Net rejoice. In the near future, your savior may be arriving in the form of Keryx!
John Knight is the New Projects columnist for Linux Journal.
Special Reports: DevOps
Have projects in development that need help? Have a great development operation in place that can ALWAYS be better? Regardless of where you are in your DevOps process, Linux Journal can help!
With deep focus on Collaborative Development, Continuous Testing and Release & Deployment, we offer here the DEFINITIVE DevOps for Dummies, a mobile Application Development Primer, advice & help from the experts, plus a host of other books, videos, podcasts and more. All free with a quick, one-time registration. Start browsing now...
- Hash Tables—Theory and Practice
- The Ubuntu Conspiracy
- Making a PHP Site on Linux Work with a Microsoft SQL Server Database
- A First Look at IBM's New Linux Servers
- Vigilante Malware
- Disney's Linux Light Bulbs (Not a "Luxo Jr." Reboot)
- Vagrant Simplified
- System Status as SMS Text Messages
- Dealing with Boundary Issues
- Bluetooth Hacks