|
tools useful for A-A-P
The intention for A-A-P is to use existing tools as much as possible. To find
out which tools can be used this overview has been compiled.
Some tools cannot be used directly, but function as an example or can be
invoked by A-A-P (e.g., commercial tools and programs which are not portable).
Unless noted otherwise, tools are open-source.
If you find a tool that would be useful for A-A-P but is not listed here, or
when information is incorrect, send a message to
Bram AT a-a-p.org.
Note: this list is not intended to be complete. Information that is
irrelevant for A-A-P is omitted.
Script languages
Build
Install
Issue Tracking
Version control
Browse
IDEs
Various
Installing and package management
Many systems already exist for installing and managing packages. A-A-P
intents to support the existing systems. Additionally, a preference is given
for future projects.
This is only about installing from compiled binaries. Before sources can be
installed they need to be compiled, see Build
for that.
Included here are tools for deployment, e.g., to update a web site.
The preferred installer should have these properties:
- Portable over many operating systems
- Fit in with the "normal" way to install programs on each system
- Handle updating to a new version
- Handle keeping several versions of one program
- Can update a remote system
- Can be run both by the administrator and a user
- Cache downloaded files for repeated installation
- Clean up temporary files when done
Overview (more interesting first):
- Fink
-
Looks like a very good example of how A-A-P could work (including format
for recipes). Unfortunately, it's specific for Mac OS X.
Inspired by FreeBSD ports system.
Based on Debian dpkg and apt-get.
Written in Perl, doesn't depend on BSD Make.
Suports both binary and source packages (thus you might call this a build
tool as well).
Supports upgrading.
This project is working together with DarwinPorts in
Metapkg.
- RPM
-
Package system used on many Linux systems. Only works on Unix, although
MS-Windows ports do exist.
Can contain binaries and sources.
Can download the whole package, but doesn't do downloading of individual
items.
Maintains a database of installed packages and individual files.
It's widely used, thus A-A-P should support it.
It does have limitations though. Perhaps the "embrace and extend" approuch
can be used.
Related items:
- gnorpm
-
Gnome app for handling RPM packages. Used by RedHat. Looks nice.
- krpm
-
KDE app for handling RPM packages. Still unstable. Also see kpackage.
- xrpm
-
Python/Tk app for handling RPM packages. A bit simplistic.
- rpmfind
-
RPM finder. Appears to be useful, it search for packages on the
Internet and checks dependencies.
- grab
-
RPM installation tool used for searching, downloading, and dependancy
resolution of RPM packages residing on FTP servers. GRAB will read a
config file and cache a database of all the available RPMS on the net.
- rpmsearch
-
RPM finder. Requires Perl and Oracle. Not in production, use rpmfind.
- rust
-
RPM creation with sandbox. Both GUI and command-line versions.
The sandbox idea is worth looking into for A-A-P.
- Yup
-
Yellowdog Update Program. Designed to be similar in function to apt-get.
Uses RPM files.
Also on sourceforge.
- rpm-pkgbuild
-
RPM package builder; GUI for creating and testing spec files.
Development appears to have stopped Jan 2001.
- rpmproc
-
RPM package builder with uploading. Sends an e-mail when making an
update. Written in Perl.
The uploading part may be interesting for A-A-P.
- harvester
-
Python script to search for newer RPM files. By Eric S. Raymond.
- swup
-
SoftWare UPdater, base on ideas from Debian apt. No web page...
- Debian APT
-
Advanced Packaging Tool.
Most people say it's better than RPM, and the attempts to make apt work
with RPM files and ports to other systems confirms this.
Downloads packages (but not individual files or patches).
Handles dependencies. Supports upgrading.
Uses a private database to keep track of which packages are installed.
A-A-P should be able to use APT on Debian systems. Otherwise, it contains
good ideas. But it requires reading the manual to make it work.
- APT-RPM
-
Port of Debian APT for using RPM files instead of dpkg. By Connectiva.
- Synaptic
-
GUI frontend for APT. Easy to use. By Connectiva.
- kpackage
-
KDE tool for installing, viewing and uninstalling packages. The formats
supported include RPM, Debian, Slackware and BSD package manager.
For A-A-P it's interesting to see how they managed to support several
package formats. Unfortunately it's not very portable.
- gnupdate
-
Package management for Linux.
Supports Debian and RPM packages, but uses its own database.
Automatic updating of packages.
Can update a local CVS.
Converts package files to other formats.
Not stable yet, the database format is being rewritten.
Looks interesting. Should provide ideas and perhaps some code for A-A-P.
- DarwinPorts
-
Ports and packaging system for Darwin, Mac OS X.
Providing a package system is not done yet.
Based on TCL. Examples show that shell script is also used, which
restricts the portability despite the use of TCL.
Jordan Hubbard, the "father of BSD ports", is one of the developers.
Currently only works on Mac OS X 10.2 (Jaguar). A port to FreeBSD is under
way.
Very interesting for A-A-P, well thought out.
Still under development.
This project is working together with Fink in
Metapkg.
- Open Packages
-
Ports and packaging system for Unix, replacement for FreeBSD ports system
and similar *BSD systems.
Interesting for A-A-P, has a few goals in common.
Still under development. Did not make much progress since July 2001.
In October 2002 decided to team up with DarwinPorts.
- openPKG
-
Packaging system for Unix, RPM based. Supports installing on multiple
systems
Interesting for A-A-P, has a few goals in common.
- nsbd - Not So Bad Distribution
-
Secure system for distribution. Uses signatures and restricts which files
can be updated. Unix only. Written in Tcl/Tk and C.
The security features could be insteresting for A-A-P.
- Alien
-
Package converter, converts between the rpm, dpkg, stampede slp, and
slackware tgz file formats. Perl script. Still in an experimental stage.
- vainstall
-
Installer in Java. Looks nice and also supports console install.
Runs on MS-Windows, Unix and any system that has Java 1.3. Basically
gathers files into a package and unpacks them in various places on the
destination system.
- chimpinstall
-
Creates and edits Microsoft Installer (msi) files.
- relink
-
Package management system. Uses Perl. Unix only.
- Meta packager - mpkg
-
Generate different types of packages from one description file.
- MPKG
-
Appears to be different from Meta packager.
Similar to the *BSD ports systems, but with more features.
It was reported to be NetBSD's pkgsrc, ported to GNU make and changed to
install each version of each application in its own directory.
Therefore it cannot be used mixed with the native ports/package system.
Does make it easy to uninstall a package.
Does not appear to be actively developed or used.
- Encap package manager - epkg
-
Packaging, supports running multiple versions of the same package.
Uses symlinks to point from /usr/local to where the package was actually
installed.
Unix only. Uses Perl.
- slaktool
-
Slackware package management tools. Better than pkgadd. Unix shell
script, not portable. Still very new, not widely used.
- pkgadd
-
Slackware package system. Does not handle dependencies, not as useful as
RPM. Solaris has a similar program.
- sf-upload
-
Sourceforge release system. Written in Perl.
- CheckInstall
-
Keeps track of files installed by a "make install".
Generates a package (RPM, Slackware, Debian) from this and adds it to the
installed pacakage database.
Can perhaps be used for ideas.
- stow
-
GNU package program. Implemented in Perl. Uses symbolic links to keep
installed files in one place (thus Unix only).
Not interesting for A-A-P.
Related:
- stowES
-
Perl script which tries to easy the use of Stow.
Not interesting for A-A-P.
- graft
-
Manage multiple packages.
Inspired by Stow and Depot.
Not interesting for A-A-P.
- sfsetup
-
Sourceforge installer for Win32. Sets up SSH and CVS.
Not interesting for A-A-P.
- python-apt
-
Python binding for Debian apt-get. Still very new.
- sourcer
-
Install a package using sources.
Could be interesting. Not very advanced though.
- buildpkg
-
Generate a package in several formats from a template.
Shell script.
- spoon installer
-
Creates install .exe. Easy to use, with compression.
- NSIS
-
Uses a script to create a small installable .exe file. Works well.
This is used to create the installer for Vim.
- coolsetup
-
Multiplatform installation system for MS-Windows and Linux.
Can't find relevant info in English.
- autoinstaller
-
Automatic install and uninstall. MS-DOS and Linux. Written in C and C++.
Uses plugins.
|
|