If you want to use these tarballs but also manage them in the same way you do the rest of your OS you had to deal with jumping through the hoops required of the package management systems used by your distribution. That is until now, thanks to a wonderful little utility called CheckInstall.
Developed and maintained by Felipe Eduardo Sánchez Díaz Durán, CheckInstall consists of a collection of shell scripts and a library. With it, you can build an .rpm or .deb or .tgz package that will install using the associated packaging tools.
The easiest way to use CheckInstall is in place of the "make install" portion of a typical build process. Executing CheckInstall will run "make install" using the installwatch script. This script keeps track of the "make install", then feeds the results info to CheckInstall in order for it to build the package. These tools allow for the ability to build and manage any self-made packages as easily as any binary package you might download from the net. They give you great flexibility in how you build the package, and even how dependencies are managed.
Let's see what a typical run of CheckInstall might look like:
Please choose the packaging method you want to use. Slackware [S], RPM [R] or Debian [D]? R This package will be built according to these values: 1 - Summary: [ libcgi 1.0 ] 2 - Name: [ libcgi ] 3 - Version: [ 1.0 ] 4 - Release: [ 1 ] 5 - License: [ GPL ] 6 - Group: [ Applications/System ] 7 - Architecture: [ i386 ] 8 - Source location: [ libcgi-1.0 ] 9 - Alternate source location: [ ] 10 - Provides: [ ] 11 - Requires: [ ] Enter a number to change any of them or press ENTER to continue:
As you can see, CheckIinstall allows you to edit all of the basic fields that describe a package, in this case an RPM package. The fields are pre-filled with reasonable data, however you can change any of the fields to new values. It's likely that you'll want to change #6 and possibly #5, #7 and #11. You also have the ability to run pre and post install scripts as well as pre and post removal scripts.
There are a few things you need to do to get setup for building a package with CheckInstall. First, you'll need a file named "description-pak" which should contain the program name and version, followed by a description. You should also create a subdirectory named "doc-pak" in which you can put the text files like README, ChangeLog and the like.
One very nice thing you can do with CheckInstall is tell it to run a specific program or script for the software installation. For example, you might find a very good program that is only released in binary format with a script called "setup" that's used to install it. You can build a package for it by telling CheckInstall to use the "setup" script for the install portion.
An example command might look like this:
$ checkinstall -R --install=yes ./setup
This command line will build and install an RPM but using the setup script to do the actual installing. By default CheckInstall builds the package but doesn't install it. The "--install=yes" option causes CheckInstall to perform the package installation. You can also use the switch "--rpmu" to do an upgrade of a package that is already installed.
Once a package is made using CheckInstall it is virtually impossible to tell it apart from a package built with a hand-generated spec file. There's even a nice feature for saving the spec file that checkinstall makes in order to build the packages. This generated spec file is normally deleted after the package has been built but if you pass the switch "--delspec=no", it will leave the spec file behind. With this as a starting point, you can easily ramp up your skill at hand building spec files.
Lastly, whenever you install a package with CheckInstall, it will automatically make a backup tarball of the currently installed package, if one exists. You'll find a file named: "backup-<datetime>-pre-<packagename>-<version>.tgz" in the directory from which you built the package. Should anything go wrong with the newly created package, you can roll back to the previous version using a command like: "tar xzvf backup-<datetime>-pre-<packagename>-<version>.tgz -C /".
As for the future direction of CheckInstall development, Felipe said this:
If he is able to get this functionality into CheckInstall, it will become an even more required tool for systems administrators, along with yum and apt.
Bottom line: CheckInstall is a fantastic tool that should be on every administrators and developers need-to-have list.
Audio ProjectsALSA Site. latest changes from the Planet CCRMA audio utility packaging project include new versions of Specimen, Rosegarden 4, and Cinelerra.
Database SoftwareThis version adds full Oracle support, and now runs on the AMD64 platform under Allegro CL."
Librarieslibgdamm is now usable, with actual working examples." This is another development release in the road to 1.2, which will be the next stable release, and which shows a preview of the new features getting into the 1.2 final release. It is not intended for production use, but by people wanting to experiment with the new features and to help on the development."
Mail SoftwareI have released perdition 1.15. This includes a fix to the ldap code which resolves various errors including bogus usernames being returned when username_from_database is in effect. This change was included in 1.15beta1. The other changes are minor packaging and documentation fixes."
Networking Toolsan announcement for the first beta-level tarball release of the Linux InfiniBand Project.
"The InfiniBand Architecture (IBA) is an industry standard that defines a new high-speed switched fabric subsystem designed to connect processor nodes and I/O nodes to form a system area network. This new interconnect method moves away from the local transaction-based I/O model across busses to a remote message-passing model across channels. The architecture is independent of the host operating system (OS) and the processor platform."discusses netpipes on O'Reilly. "Netpipes is a suite of utilities for shell-script writers that builds on the idea of conventional pipes to allow different processes to communicate and share data using both TCP and Unix domain-based sockets across the network! Not only does it duplicate the pipe's behavior, but it uses a novel technique called Session Control Protocol (SCP) that provides a simple mechanism for creating multiple, lightweight connections over a single TCP session connection. You can have many datastreams at the same time instead of just one."
Printinghas been announced. "CUPS 1.1.21 is primarily a bug fix and performance tuning release and includes fixes for the IPP, LPD, parallel, serial, and USB backends, authentication and status processing issues in the CUPS API, and various PostScript and PDF printing issues. The new release also adds support for Zebra label printers and IPP device URI options."
Web Site Developmentan article that shows how to run the Apache web server in a protected filesystem. "The chroot daemon allows you to run a program and have it see a given directory as the root (/) directory. This effectively locks the process into its very own filesystem ("chroot jail") isolated from the real / filesystem. In this article we will look at how to install the Apache Web server in such an environment." I proudly announce the release of ht://Check 1.2.3, which introduces important new features regarding Web accessibility." has been announced. "This will likely be the last release in the 1.2.x series, as we work on finishing up 1.3.0. MediaWiki is the collaborative editing software that runs Wikipedia, the free encyclopedia, and other projects. It's designed to handle a large number of users and pages without imposing too rigid a structure or workflow." Zope X3 is the next major Zope release and has been written from scratch based on the latest software design patterns and the experiences of Zope 2. The "X" in the name stands for "experimental", since this release does not try to provide any backward-compatibility to Zope 2." ZopeMag Weekly News is out with the latest Zope web development platform news. "This is Issue 32. Full of Plone tips and tricks mined from the Mailinglists."
AccessibilityGnopernicus has now an improved behaviour with gdm."
CADThe fourteenth release builds on the undo/redo work added in the previous release. The undo/redo abilities of the program in regards to entity addition and removal have been made more significantly more robust. Also, the ability to undo or redo entity splitting, moving, mirroring have been both added and enhanced. The ability to undo or redo entity transfers between image layers is now available. Changing the various entity properties now has more undo and redo features."
Desktop EnvironmentsBag of Software for the GNOME desktop. "New releases of Gnotify, Drivel, MVideo, gThumb and Gnomoradio are now available." A lot of translations have been committed lately so I thought I would get them out to the masses. This release also fixes an annoying bug with GTK+ 2.4 where the applet shows up without anti-aliasing." KDE-CVS-Digest is online, here's the content summary: "Code folding and syntax highlighting improvements in Kate. Kdevelop has a new file template system. KGeography adds more maps and flags. Digikam improves EXIF tag editing and display. KMail adds detailed new mail notification and anti-virus tool support. Kontact adds support for SUSE Linux OpenExchange Server. Konqueror adds spring loading Folders. KMyFirewall adds rule plugins." Some notes about Xfce 4.2 has been published, it details some of the development directions that Xfce 4.2 will be taking.
ElectronicsGerber Viewer (gerbv), an application for viewing electronic CAD files, is out. The main new feature is support for projects, see the release announcement for more information. has been announced "Many improvements have been made in the program as well as additions and improvements to the footprint library." is available. Changes include bug fixes and distribution library updates.
Financial Applicationsthe announcement for the initial release (version 0.5) of MyBudget, a personal finance application. "The aim of the program is to make it as easy as possible for people to do their own personal budgets and keep track of their finances."
Gamesis available from the WorldForge game project. "New features in this version are support for Mercator terrain, oriented box collision detection, IPv6 support, improved security, variable sight ranges, world persistence and a complete new default world map. Performance and reliability are massively improved since the last stable release." Mostly this is because I get a kick out of having the largest version number, but it is also because Jon McCann has made blackjack resizeable." Version 1.6.1 was also released this week, it features a fix for a bug that was found in version 1.6. is available. "StepMania is a music/rhythm game. The player presses different buttons in time to the music and to note patterns that scroll across the screen. Features 3D graphics, visualizations, support for gamepads/dance pads, a step recording mode, and more!"
GUI PackagesChanges since the last release include support for Qt v3.3.2, and the provision of an evaluation version for Windows to be used with the evaluation version of Qt." wxWidgets GUI Toolkit is available. "Amongst other improvements, sizers are working properly again in 2.5.2, and wxMac has come on leaps and bounds."
Instant Messaginghas been announced. "Version 0.78 fixes all kinds of WYSIWYG formatting bugs, MSN bugs, restores compatibility with Gtk 2.0, adds support for the SILC protocol, among many other things. Oh yeah, and preferences should be less confusing now!"
Music ApplicationsMusE MIDI and audio sequencer is available with a long list of changes and bug fixes. This release is primarily focused on bugfix, performance and usability improvements over 0.9.7, including significant optimisations to the main editing canvas, sequencer and GUI memory leak fixes, faster and better notation editing and printing, and dozens of other fixes. It also contains a handful of new features including MIDI mixer window, ottava and fingering marks in notation, and a redesigned audio segment manager."
Office SuitesThis package contains Desktop integration work for OpenOffice.org, several back-ported features & speedups, and a much simplified build wrapper, making an OO.o build / install possible for the common man. It is a staging ground for up-streaming patches to stock OO.o."
PDA Softwarehas been released. "Included in this release are the jSyncManager Core Application Set, the jSyncManager API, the jSyncManager jConduits plug-ins bundle, and a special Jar Bundle version for systems running Mac OS X."
Peer to Peeris out. "This long-awaited Azureus 2.1 series release brings many new features and bug fixes to the java bittorrent client, as well as major usability enhancements for plugin writers." is available. "This version supports download rate limitation, access control list based on ip range, network name (taken from whois), and country, and many bugs fixed."
Web BrowsersGaleon browser is available. The release announcement says: "As promised, here's the first gtk+ 2.4 based release. We also made a bunch of other updates - the most significant of which is a serious overhaul of the downloading subsystem - most significantly meaning it doesn't crash all the time :-) In the feature restoration department, we see the return of the off-line mode and user stylesheets."
Word ProcessorsAbiWord Weekly News has been published. It starts off with a request for help: "Attention Indic and Arabic users! We need more of you to attempt to use and report bugs on CVS Head. As we continue to improve the glyph-shaping engine, we will need to know what is working and what is not."
Miscellaneous3dFB is out. "3dFB is a 3d File Manager. 2d file managers work nicely, but with 3d you can display much more information. The aim of this project is to make a viable, workable, 3d file manager that is not a hog on resources and can actually be usable."
Languages and Tools
ErlangThis is mainly a bugfix release and user can safely upgrade their development environment. It fixes many small bugs regarding all the aspects of the Erlang/OTP distribution."
JavaJJack is a framework for the Java programming language that allows creating and running portable audio processor clients for the JACK Audio Connection Kit." works with Java graphics on IBM's developerWorks. "Most Java developers agree that there's only one domain where Swing/AWT is superior to the Eclipse platform's Standard Widget Toolkit, and that's Java 2D. Until now there has been no easy way to integrate the time-saving features of Java 2D with the superior portability, functionality, and performance of SWT's user interface components, but that's all about to change. In this follow up to his popular tutorial on migrating Swing applications to SWT, Java developer and Eclipse enthusiast Yannick Saillet shows you how easy it can be to paint Java 2D images on your SWT components and Draw2D figures." part three in a series by Robert Simmons, Jr. on Java nested classes. "Kn this third and final installment on nested classes, excerpted from Hardcore Java, author Robert Simmons covers static nested classes, double nested classes, and nested classes in interfaces." has been announced "In this version, we synchronized sablevm-classpath with the latest GNU Classpath CVS (as of May 29, 2004.), we improved the support for Ant 1.6, we switched to using libtool handling to find the right library suffixes (this helps some platforms like OpenBSD and Cygwin), we fixed a corner case problem with class loading, and we made some other small bug fixes." examines SSS on O'Reilly. "Teaching Java is complicated both by the language's syntax and the huge number of classes in its standard libraries. According to Alper Coskun, one solution might be "Small Simple Safe" (SSS), which tries to alleviate this by giving the user an opportunity to create and relate objects in a very simple GUI."
PerlThis Week on perl5-porters is available. "This week, you'll read in this summary more about the uninitialized warning plans for 5.8.($n+1), some XS tricks, intriguing bugs, and the different types of UIDs." This Week on Perl 6 has been published. "Yes. I know. This week's summary is a week late. So it's a summary of the last two weeks. So let's get straight to perl6-internals shall we?"
PHPPHP Weekly Summary for May 25, 2004 is available. Topics include: "var_dump() change, gif support, PHP 5 release schedule, PDO design and more.."
Pythonintroduces PEAK on IBM's developerWorks. "PEAK is a Python framework for rapidly developing and reusing application components. While Python itself is already a very high-level language, PEAK provides even higher abstractions, largely through the clever use of metaclasses and other advanced Python techniques. In many ways, PEAK does for Python what J2EE does for the Java language. Part of the formalization in PEAK comes in the explicit specification of protocols, specifically in the separately available package, PyProtocols."
ShellsPySH is a command line shell that allows you to use Python-style commands. uses a bash shell script to calculate train schedules. "In order to save time, I decided to write a shell script that would fetch the train arrival information for my station and display it in a colored ASCII table on stdout. It should accept station codes for any arbitrary trip but use defaults specified in a per-user configuration file. I did not want to write the schedule analysis code, so I decided to perform a screen scrape of the BART trip planner. wget would submit the trip planner form, and the resulting Web page would be formatted with various tools."
MiscellaneousVersion 1.25 adds more rules for finding security flaws involving cuserid, getlogin, getpass, mkstemp, getpw, memalign, gsignal, ssignal, ulimit, and usleep. Flawfinder now has 137 rules that it checks automatically. Its documentation now has lengthy text to explain exactly how to use flawfinder with vim and emacs." Extensible Programming. The Daily Python-URL has a summary of the article: "This article argues that next-generation programming systems will [allow programmers to add entirely new kinds of information to programs, and to control how that information is processed] by combining three specific technologies: compilers, linkers, debuggers, and other tools will be plugin frameworks, rather than monolithic applications; programmers will be able to extend the syntax of programming languages; and programs will be stored as XML documents, so that programmers can represent and process data and meta-data uniformly." discuss Service-Oriented Architecture and Design on IBM's developerWorks. "Experience from first Service-Oriented Architecture (SOA) implementation projects suggest that existing development processes and notations such as Object-Oriented Analysis and Design (OOAD), Enterprise Architecture (EA) frameworks, and Business Process Modeling (BPM) only cover part of what is required to support the architectural patterns currently emerging under the SOA umbrella; hence, there is a need for an enhanced interdisciplinary service modeling approach."
Page editor: Forrest Cook
Next page: Linux in the news>>
Copyright © 2004, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds